UI: Make resultant-acl banner dismissable (#25106)

This commit is contained in:
Chelsea Shaw
2024-01-26 14:17:35 -06:00
committed by GitHub
parent 5933768ca5
commit dc9d1e275d
4 changed files with 41 additions and 21 deletions

3
changelog/25106.txt Normal file
View File

@@ -0,0 +1,3 @@
```release-note:bug
ui: Allows users to dismiss the resultant-acl banner.
```

View File

@@ -3,7 +3,14 @@
SPDX-License-Identifier: BUSL-1.1 SPDX-License-Identifier: BUSL-1.1
~}} ~}}
<Hds::Alert @type="inline" @color="critical" data-test-resultant-acl-banner as |A|> {{#unless this.hideBanner}}
<Hds::Alert
@type="inline"
@color="critical"
@onDismiss={{fn (mut this.hideBanner) true}}
data-test-resultant-acl-banner
as |A|
>
<A.Title>Resultant ACL check failed</A.Title> <A.Title>Resultant ACL check failed</A.Title>
<A.Description> <A.Description>
{{if {{if
@@ -22,4 +29,5 @@
data-test-resultant-acl-reauthenticate data-test-resultant-acl-reauthenticate
/> />
{{/if}} {{/if}}
</Hds::Alert> </Hds::Alert>
{{/unless}}

View File

@@ -5,10 +5,12 @@
import { service } from '@ember/service'; import { service } from '@ember/service';
import Component from '@glimmer/component'; import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
export default class ResultantAclBannerComponent extends Component { export default class ResultantAclBannerComponent extends Component {
@service namespace; @service namespace;
@service router; @service router;
@tracked hideBanner = false;
get ns() { get ns() {
return this.namespace.path || 'root'; return this.namespace.path || 'root';

View File

@@ -5,7 +5,7 @@
import { module, test } from 'qunit'; import { module, test } from 'qunit';
import { setupRenderingTest } from 'vault/tests/helpers'; import { setupRenderingTest } from 'vault/tests/helpers';
import { render } from '@ember/test-helpers'; import { click, render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars'; import { hbs } from 'ember-cli-htmlbars';
module('Integration | Component | resultant-acl-banner', function (hooks) { module('Integration | Component | resultant-acl-banner', function (hooks) {
@@ -44,4 +44,11 @@ module('Integration | Component | resultant-acl-banner', function (hooks) {
.dom('[data-test-resultant-acl-reauthenticate]') .dom('[data-test-resultant-acl-reauthenticate]')
.hasText('Log into root namespace', 'Shows reauth link with default namespace'); .hasText('Log into root namespace', 'Shows reauth link with default namespace');
}); });
test('it goes away when dismiss button clicked', async function (assert) {
await render(hbs`<ResultantAclBanner />`);
assert.dom('[data-test-resultant-acl-banner]').exists('Shows banner initially');
await click('.hds-dismiss-button');
assert.dom('[data-test-resultant-acl-banner]').doesNotExist('Hides banner after dismiss');
});
}); });