`);
@@ -170,7 +152,7 @@ module('Integration | Component | date-dropdown', function (hooks) {
test('selecting year first: it enables all months when past year is selected', async function (assert) {
assert.expect(12);
await render(hbs`
-
+
`);
diff --git a/ui/tests/integration/components/download-button-test.js b/ui/tests/integration/components/download-button-test.js
index 7dff1d21b764..e5f67ccf4ccf 100644
--- a/ui/tests/integration/components/download-button-test.js
+++ b/ui/tests/integration/components/download-button-test.js
@@ -6,7 +6,6 @@
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { click, render, resetOnerror, setupOnerror } from '@ember/test-helpers';
-import { isPresent } from 'ember-cli-page-object';
import hbs from 'htmlbars-inline-precompile';
import sinon from 'sinon';
@@ -28,25 +27,23 @@ module('Integration | Component | download button', function (hooks) {
test('it renders', async function (assert) {
await render(hbs`
-
-
- Download
-
- `);
- assert.dom(SELECTORS.button).hasClass('button');
- assert.ok(isPresent(SELECTORS.icon), 'renders yielded icon');
- assert.dom(SELECTORS.button).hasTextContaining('Download', 'renders yielded text');
+
`);
+ assert.dom(SELECTORS.icon).exists('renders download icon');
+ assert.dom(SELECTORS.button).hasText('Download', 'renders default text');
+ });
+
+ test('it renders passed args', async function (assert) {
+ await render(hbs`
+
`);
+ assert.dom(SELECTORS.icon).doesNotExist('hides icon');
+ assert.dom(SELECTORS.button).hasText('I do something', 'renders passed text');
});
test('it downloads with defaults when only passed @data arg', async function (assert) {
assert.expect(3);
await render(hbs`
-
- Download
-
+
`);
await click(SELECTORS.button);
const [filename, content, extension] = this.downloadSpy.getCall(0).args;
@@ -59,16 +56,13 @@ module('Integration | Component | download button', function (hooks) {
assert.expect(3);
await render(hbs`
-
- Download
-
+ />
`);
-
await click(SELECTORS.button);
const [filename, content, extension] = this.downloadSpy.getCall(0).args;
assert.ok(filename.includes(`${this.filename}-`), 'filename added to ISO string');
@@ -80,9 +74,7 @@ module('Integration | Component | download button', function (hooks) {
assert.expect(3);
this.fetchData = () => 'this is fetched data from a parent function';
await render(hbs`
-
- Download
-
+
`);
await click(SELECTORS.button);
@@ -103,7 +95,7 @@ module('Integration | Component | download button', function (hooks) {
});
this.fetchData = () => 'this is fetched data from a parent function';
await render(hbs`
-
+
`);
resetOnerror();
});
diff --git a/ui/tests/integration/components/keymgmt/key-edit-test.js b/ui/tests/integration/components/keymgmt/key-edit-test.js
index eefb8a1c6c47..019cdb2fe7a4 100644
--- a/ui/tests/integration/components/keymgmt/key-edit-test.js
+++ b/ui/tests/integration/components/keymgmt/key-edit-test.js
@@ -45,9 +45,7 @@ module('Integration | Component | keymgmt/key-edit', function (hooks) {
// TODO: Add capabilities tests
test('it renders show view as default', async function (assert) {
assert.expect(8);
- await render(
- hbs`
`
- );
+ await render(hbs`
`);
assert.dom('[data-test-secret-header]').hasText('Unicorns', 'Shows key name');
assert.dom('[data-test-keymgmt-key-toolbar]').exists('Subnav toolbar exists');
assert.dom('[data-test-tab="Details"]').exists('Details tab exists');
@@ -71,9 +69,7 @@ module('Integration | Component | keymgmt/key-edit', function (hooks) {
this.set('mode', 'edit');
this.set('model', model);
- await render(
- hbs`
`
- );
+ await render(hbs`
`);
assert.dom('[data-test-secret-header]').hasText('Edit Key', 'Shows edit header');
assert.dom('[data-test-keymgmt-key-toolbar]').doesNotExist('Subnav toolbar does not exist');
assert.dom('[data-test-tab="Details"]').doesNotExist('Details tab does not exist');
@@ -86,9 +82,7 @@ module('Integration | Component | keymgmt/key-edit', function (hooks) {
this.set('mode', 'create');
this.set('model', model);
- await render(
- hbs`
`
- );
+ await render(hbs`
`);
assert.dom('[data-test-secret-header]').hasText('Create Key', 'Shows edit header');
assert.dom('[data-test-keymgmt-key-toolbar]').doesNotExist('Subnav toolbar does not exist');
assert.dom('[data-test-tab="Details"]').doesNotExist('Details tab does not exist');
@@ -100,9 +94,7 @@ module('Integration | Component | keymgmt/key-edit', function (hooks) {
const store = this.owner.lookup('service:store');
this.model = store.createRecord('keymgmt/key');
this.set('mode', 'create');
- await render(
- hbs`
`
- );
+ await render(hbs`
`);
assert.dom('[data-test-input="type"]').hasValue('rsa-2048', 'Has type rsa-2048 by default');
});
});
diff --git a/ui/tests/integration/components/kubernetes/page/configure-test.js b/ui/tests/integration/components/kubernetes/page/configure-test.js
index b171a8a4154d..7d1b922e837a 100644
--- a/ui/tests/integration/components/kubernetes/page/configure-test.js
+++ b/ui/tests/integration/components/kubernetes/page/configure-test.js
@@ -199,14 +199,13 @@ module('Integration | Component | kubernetes | Page::Configure', function (hooks
await render(
hbs`
-
-
+
`,
{ owner: this.engine }
);
await click('[data-test-config-save]');
assert
- .dom('.modal-card-body')
+ .dom('[data-test-edit-config-body]')
.hasText(
'Making changes to your configuration may affect how Vault will reach the Kubernetes API and authenticate with it. Are you sure?',
'Confirm modal renders'
diff --git a/ui/tests/integration/components/ldap/accounts-checked-out-test.js b/ui/tests/integration/components/ldap/accounts-checked-out-test.js
index 3cee95c68e0f..5613d44af63d 100644
--- a/ui/tests/integration/components/ldap/accounts-checked-out-test.js
+++ b/ui/tests/integration/components/ldap/accounts-checked-out-test.js
@@ -44,8 +44,7 @@ module('Integration | Component | ldap | AccountsCheckedOut', function (hooks) {
this.renderComponent = () => {
return render(
hbs`
-
-
{
- return render(
- hbs``,
- {
- owner: this.engine,
- }
- );
+ return render(hbs``, {
+ owner: this.engine,
+ });
};
this.transitionStub = sinon.stub(this.owner.lookup('service:router'), 'transitionTo');
});
diff --git a/ui/tests/integration/components/ldap/page/library/details/accounts-test.js b/ui/tests/integration/components/ldap/page/library/details/accounts-test.js
index add8a8a69113..c75779f7c977 100644
--- a/ui/tests/integration/components/ldap/page/library/details/accounts-test.js
+++ b/ui/tests/integration/components/ldap/page/library/details/accounts-test.js
@@ -41,8 +41,7 @@ module('Integration | Component | ldap | Page::Library::Details::Accounts', func
this.renderComponent = () => {
return render(
hbs`
-
-
+
`,
{
owner: this.engine,
diff --git a/ui/tests/integration/components/link-status-test.js b/ui/tests/integration/components/link-status-test.js
index a97a98157ba9..a0852cdd0b88 100644
--- a/ui/tests/integration/components/link-status-test.js
+++ b/ui/tests/integration/components/link-status-test.js
@@ -10,6 +10,14 @@ import { hbs } from 'ember-cli-htmlbars';
import { setupMirage } from 'ember-cli-mirage/test-support';
import { statuses } from '../../../mirage/handlers/hcp-link';
+const SELECTORS = {
+ modalOpen: '[data-test-link-status] button',
+ modalClose: '[data-test-icon="x"]',
+ bannerConnected: '.hds-alert [data-test-icon="info"]',
+ bannerWarning: '.hds-alert [data-test-icon="alert-triangle"]',
+ banner: '[data-test-link-status]',
+};
+
module('Integration | Component | link-status', function (hooks) {
setupRenderingTest(hooks);
setupMirage(hooks);
@@ -22,31 +30,28 @@ module('Integration | Component | link-status', function (hooks) {
test('it does not render banner when status is not present', async function (assert) {
await render(hbs`
-
`);
- assert.dom('.link-status').doesNotExist('Banner is hidden for missing status message');
+ assert.dom(SELECTORS.banner).doesNotExist('Banner is hidden for missing status message');
});
test('it does not render banner in oss version', async function (assert) {
this.owner.lookup('service:version').set('version', '1.13.0');
await render(hbs`
-
`);
- assert.dom('.link-status').doesNotExist('Banner is hidden in oss');
+ assert.dom(SELECTORS.banner).doesNotExist('Banner is hidden in oss');
});
test('it renders connected status', async function (assert) {
await render(hbs`
-
`);
- assert.dom('.link-status').hasClass('connected', 'Correct banner class renders for connected state');
+ assert.dom(SELECTORS.bannerConnected).exists('Success banner renders for connected state');
assert
.dom('[data-test-link-status]')
.hasText('This self-managed Vault is linked to HCP.', 'Banner copy renders for connected state');
@@ -58,11 +63,10 @@ module('Integration | Component | link-status', function (hooks) {
test('it should render error states', async function (assert) {
// disconnected error
await render(hbs`
-
`);
- assert.dom('.link-status').hasClass('warning', 'Correct banner class renders for error state');
+ assert.dom(SELECTORS.bannerWarning).exists('Warning banner renders for error state');
assert
.dom('[data-test-link-status]')
.hasText(
@@ -70,7 +74,7 @@ module('Integration | Component | link-status', function (hooks) {
'Banner copy renders for error state'
);
- await click('[data-test-link-status] button');
+ await click(SELECTORS.modalOpen);
assert
.dom('[data-test-link-status-timestamp]')
.hasText('2022-09-21T11:25:02.196835-07:00', 'Timestamp renders');
@@ -78,20 +82,23 @@ module('Integration | Component | link-status', function (hooks) {
.dom('[data-test-link-status-error]')
.hasText('unable to establish a connection with HCP', 'Error renders');
+ await click(SELECTORS.modalClose);
// connecting error
await render(hbs`
-
`);
+ await click(SELECTORS.modalOpen);
assert
.dom('[data-test-link-status-error]')
.hasText('principal does not have the permission to register as a provider', 'Error renders');
+ await click(SELECTORS.modalClose);
// this shouldn't happen but placeholders should render if disconnected/connecting status is returned without timestamp and/or error
await render(hbs`
-
`);
+ await click(SELECTORS.modalOpen);
+
assert.dom('[data-test-link-status-timestamp]').hasText('Not available', 'Timestamp placeholder renders');
assert.dom('[data-test-link-status-error]').hasText('Not available', 'Error placeholder renders');
});
diff --git a/ui/tests/integration/components/masked-input-test.js b/ui/tests/integration/components/masked-input-test.js
index 7ddaba8bf584..c651640072bb 100644
--- a/ui/tests/integration/components/masked-input-test.js
+++ b/ui/tests/integration/components/masked-input-test.js
@@ -51,8 +51,7 @@ module('Integration | Component | masked input', function (hooks) {
});
test('it renders a download button when allowDownload is true', async function (assert) {
- await render(hbs`
-`);
+ await render(hbs` `);
assert.ok(component.downloadIconIsPresent);
await click('[data-test-download-icon]');
diff --git a/ui/tests/integration/components/mfa/method-form-test.js b/ui/tests/integration/components/mfa/method-form-test.js
index 30cc1bd94a29..490a461ca618 100644
--- a/ui/tests/integration/components/mfa/method-form-test.js
+++ b/ui/tests/integration/components/mfa/method-form-test.js
@@ -27,8 +27,7 @@ module('Integration | Component | mfa-method-form', function (hooks) {
@model={{this.model}}
@hasActions="true"
/>
-
- `);
+ `);
assert.dom('[data-test-input="issuer"]').exists(`Issuer field input renders`);
assert.dom('[data-test-input="period"]').exists('Period field ttl renders');
assert.dom('[data-test-input="key_size"]').exists('Key size field input renders');
@@ -53,8 +52,7 @@ module('Integration | Component | mfa-method-form', function (hooks) {
@model={{this.model}}
@onSave={{fn (mut this.didSave) true}}
/>
-
- `);
+ `);
await fillIn('[data-test-input="issuer"]', 'Vault');
await click('[data-test-mfa-save]');
@@ -76,8 +74,7 @@ module('Integration | Component | mfa-method-form', function (hooks) {
@hasActions="true"
@model={{this.model}}
/>
-
- `);
+ `);
assert.dom('[data-test-input="issuer"]').hasValue('Vault', 'Issuer input is populated');
assert.dom('[data-test-ttl-value="Period"]').hasValue('30', 'Period input ttl is populated');
const checkedAlgorithm = this.element.querySelector('input[name=algorithm]:checked');
diff --git a/ui/tests/integration/components/modal-test.js b/ui/tests/integration/components/modal-test.js
deleted file mode 100644
index c318000993e4..000000000000
--- a/ui/tests/integration/components/modal-test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Copyright (c) HashiCorp, Inc.
- * SPDX-License-Identifier: BUSL-1.1
- */
-
-import { module, test } from 'qunit';
-import { setupRenderingTest } from 'ember-qunit';
-import sinon from 'sinon';
-import { click, render } from '@ember/test-helpers';
-import hbs from 'htmlbars-inline-precompile';
-
-module('Integration | Component | modal', function (hooks) {
- setupRenderingTest(hooks);
- const closeAction = sinon.spy();
-
- hooks.beforeEach(function () {
- this.set('onClose', closeAction);
- });
-
- test('it renders', async function (assert) {
- await render(
- hbs``
- );
-
- assert.dom(this.element).hasText('', 'renders without interior content');
- assert.dom('[data-test-modal-div]').hasAttribute('class', 'modal is-active');
- assert.dom('[data-test-modal-close-button]').doesNotExist('does not render close modal button');
-
- // Template block usage:
- await render(hbs`
-
- template block text
-
-
- `);
-
- assert.dom(this.element).hasText('template block text', 'renders with interior content');
- assert.dom('[data-test-modal-close-button]').exists({ count: 1 }, 'renders close modal button');
- assert.dom('[data-test-modal-glyph]').doesNotExist('Glyph is not rendered by default');
- await click('[data-test-modal-close-button]');
- assert.true(closeAction.called, 'executes passed in onConfirm function');
- });
-
- test('it adds the correct type class', async function (assert) {
- await render(hbs`
-
- template block text
-
-
- `);
-
- assert.dom('.modal.is-highlight').exists('Modal exists with is-highlight class');
- assert.dom('[data-test-modal-glyph]').exists('Glyph is rendered');
- });
-});
diff --git a/ui/tests/integration/components/oidc/client-form-test.js b/ui/tests/integration/components/oidc/client-form-test.js
index d40bb63bdc50..94c8fce87c76 100644
--- a/ui/tests/integration/components/oidc/client-form-test.js
+++ b/ui/tests/integration/components/oidc/client-form-test.js
@@ -208,16 +208,15 @@ module('Integration | Component | oidc/client-form', function (hooks) {
@onCancel={{this.onCancel}}
@onSave={{this.onSave}}
/>
-
- `);
+ `);
await click('[data-test-oidc-radio="limited"]');
await clickTrigger();
await fillIn('.ember-power-select-search input', 'test-new');
await searchSelect.options.objectAt(0).click();
- assert.dom('[data-test-modal-div]').hasClass('is-active', 'modal with form opens');
+ assert.dom('.hds-modal#search-select-modal').exists('modal with form opens');
assert.dom('[data-test-modal-title]').hasText('Create new assignment', 'Create assignment modal renders');
await click(SELECTORS.assignmentCancelButton);
- assert.dom('[data-test-modal-div]').doesNotExist('modal disappears onCancel');
+ assert.dom('.hds-modal#search-select-modal').doesNotExist('modal disappears onCancel');
});
test('it should render fallback for search select', async function (assert) {
diff --git a/ui/tests/integration/components/oidc/scope-form-test.js b/ui/tests/integration/components/oidc/scope-form-test.js
index 36619bb582b6..866861428e34 100644
--- a/ui/tests/integration/components/oidc/scope-form-test.js
+++ b/ui/tests/integration/components/oidc/scope-form-test.js
@@ -35,7 +35,6 @@ module('Integration | Component | oidc/scope-form', function (hooks) {
@onCancel={{this.onCancel}}
@onSave={{this.onSave}}
/>
-
`);
assert.dom('[data-test-oidc-scope-title]').hasText('Create Scope', 'Form title renders');
@@ -87,7 +86,6 @@ module('Integration | Component | oidc/scope-form', function (hooks) {
@onCancel={{this.onCancel}}
@onSave={{this.onSave}}
/>
-
`);
assert.dom('[data-test-oidc-scope-title]').hasText('Edit Scope', 'Form title renders');
@@ -122,7 +120,6 @@ module('Integration | Component | oidc/scope-form', function (hooks) {
@onCancel={{this.onCancel}}
@onSave={{this.onSave}}
/>
-
`);
await click(SELECTORS.scopeCancelButton);
@@ -141,8 +138,7 @@ module('Integration | Component | oidc/scope-form', function (hooks) {
@onCancel={{this.onCancel}}
@onSave={{this.onSave}}
/>
-
- `);
+ `);
await fillIn('[data-test-input="description"]', 'changed description attribute');
await click(SELECTORS.scopeCancelButton);
@@ -154,8 +150,8 @@ module('Integration | Component | oidc/scope-form', function (hooks) {
});
test('it should show example template modal', async function (assert) {
- assert.expect(8);
-
+ assert.expect(5);
+ const MODAL = (e) => `[data-test-scope-modal="${e}"]`;
this.model = this.store.createRecord('oidc/scope');
// formatting here is purposeful so that it matches formatting in the template modal
@@ -174,23 +170,17 @@ module('Integration | Component | oidc/scope-form', function (hooks) {
@onCancel={{this.onCancel}}
@onSave={{this.onSave}}
/>
-
`);
- assert.dom('[data-test-modal-div]').doesNotHaveClass('is-active', 'Modal is hidden');
await click('[data-test-oidc-scope-example]');
- assert.dom('[data-test-modal-div]').hasClass('is-active', 'Modal is shown');
- assert.dom('[data-test-modal-title]').hasText('Scope template', 'Modal title renders');
- assert
- .dom('[data-test-modal-text]')
- .hasText('Example of a JSON template for scopes:', 'Modal text renders');
- assert.dom('[data-test-copy-button]').exists('Modal copy button renders');
+ assert.dom(MODAL('title')).hasText('Scope template', 'Modal title renders');
+ assert.dom(MODAL('text')).hasText('Example of a JSON template for scopes:', 'Modal text renders');
assert
- .dom('[data-test-modal-div] [data-test-copy-button]')
+ .dom('#scope-template-modal [data-test-copy-button]')
.hasAttribute('data-clipboard-text', exampleTemplate, 'Modal copy button copies the example template');
assert.dom('.cm-string').hasText('"username"', 'Example template json renders');
await click('[data-test-close-modal]');
- assert.dom('[data-test-modal-div]').doesNotHaveClass('is-active', 'Modal is hidden');
+ assert.dom('.hds#scope-template-modal').doesNotExist('Modal is hidden');
});
test('it should render error alerts when API returns an error', async function (assert) {
@@ -203,7 +193,6 @@ module('Integration | Component | oidc/scope-form', function (hooks) {
@onCancel={{this.onCancel}}
@onSave={{this.onSave}}
/>
-
`);
await fillIn('[data-test-input="name"]', 'test-scope');
await click(SELECTORS.scopeSaveButton);
diff --git a/ui/tests/integration/components/pki/page/pki-tidy-status-test.js b/ui/tests/integration/components/pki/page/pki-tidy-status-test.js
index 4fc4654afef1..610d91bd2dc4 100644
--- a/ui/tests/integration/components/pki/page/pki-tidy-status-test.js
+++ b/ui/tests/integration/components/pki/page/pki-tidy-status-test.js
@@ -58,7 +58,7 @@ module('Integration | Component | Page::PkiTidyStatus', function (hooks) {
test('shows the correct titles for the alert banner based on states', async function (assert) {
await render(
- hbs` ,`,
+ hbs``,
{ owner: this.engine }
);
// running state
@@ -68,35 +68,35 @@ module('Integration | Component | Page::PkiTidyStatus', function (hooks) {
// inactive state
this.tidyStatus.state = 'Inactive';
await render(
- hbs` ,`,
+ hbs``,
{ owner: this.engine }
);
assert.dom(SELECTORS.hdsAlertTitle).hasText('Tidy is inactive');
// finished state
this.tidyStatus.state = 'Finished';
await render(
- hbs` ,`,
+ hbs``,
{ owner: this.engine }
);
assert.dom(SELECTORS.hdsAlertTitle).hasText('Tidy operation finished');
// error state
this.tidyStatus.state = 'Error';
await render(
- hbs` ,`,
+ hbs``,
{ owner: this.engine }
);
assert.dom(SELECTORS.hdsAlertTitle).hasText('Tidy operation failed');
// cancelling state
this.tidyStatus.state = 'Cancelling';
await render(
- hbs` ,`,
+ hbs``,
{ owner: this.engine }
);
assert.dom(SELECTORS.hdsAlertTitle).hasText('Tidy operation cancelling');
// cancelled state
this.tidyStatus.state = 'Cancelled';
await render(
- hbs` ,`,
+ hbs``,
{ owner: this.engine }
);
assert.dom(SELECTORS.hdsAlertTitle).hasText('Tidy operation cancelled');
@@ -105,7 +105,7 @@ module('Integration | Component | Page::PkiTidyStatus', function (hooks) {
this.tidyStatus.time_started = null;
this.tidyStatus.time_finished = null;
await render(
- hbs` ,`,
+ hbs``,
{ owner: this.engine }
);
assert.dom(SELECTORS.timeStartedRow).exists();
diff --git a/ui/tests/integration/components/pki/pki-issuer-details-test.js b/ui/tests/integration/components/pki/pki-issuer-details-test.js
index a1c883ea0dc1..b38f8e804703 100644
--- a/ui/tests/integration/components/pki/pki-issuer-details-test.js
+++ b/ui/tests/integration/components/pki/pki-issuer-details-test.js
@@ -26,8 +26,7 @@ module('Integration | Component | page/pki-issuer-details', function (hooks) {
await render(
hbs`
-
- `,
+ `,
this.context
);
@@ -56,8 +55,7 @@ module('Integration | Component | page/pki-issuer-details', function (hooks) {
@canSignIntermediate={{this.canSignIntermediate}}
@canConfigure={{this.canConfigure}}
/>
-
- `,
+ `,
this.context
);
@@ -85,8 +83,7 @@ module('Integration | Component | page/pki-issuer-details', function (hooks) {
await render(
hbs`
-
- `,
+ `,
this.context
);
@@ -127,8 +124,7 @@ module('Integration | Component | page/pki-issuer-details', function (hooks) {
await render(
hbs`
-
- `,
+ `,
this.context
);
@@ -156,8 +152,7 @@ module('Integration | Component | page/pki-issuer-details', function (hooks) {
await render(
hbs`
-
- `,
+ `,
this.context
);
@@ -185,8 +180,7 @@ module('Integration | Component | page/pki-issuer-details', function (hooks) {
await render(
hbs`
-
- `,
+ `,
this.context
);
diff --git a/ui/tests/integration/components/policy-form-test.js b/ui/tests/integration/components/policy-form-test.js
index e57bad53529c..72f3d61d9955 100644
--- a/ui/tests/integration/components/policy-form-test.js
+++ b/ui/tests/integration/components/policy-form-test.js
@@ -366,8 +366,7 @@ module('Integration | Component | policy-form', function (hooks) {
@onSave={{this.onSave}}
@renderPolicyExampleModal={{true}}
/>
-
- `);
+ `);
assert.dom(SELECTORS.exampleButton).exists({ count: 1 }, 'Modal for the policy example exists');
assert.dom(SELECTORS.exampleButton).exists({ count: 1 }, 'Button for the policy example modal exists');
});
@@ -380,8 +379,7 @@ module('Integration | Component | policy-form', function (hooks) {
@onSave={{this.onSave}}
@renderPolicyExampleModal={{true}}
/>
-
- `);
+ `);
await click(SELECTORS.exampleButton);
assert.dom(SELECTORS.exampleModalTitle).hasText('Example ACL Policy');
});
@@ -396,8 +394,7 @@ module('Integration | Component | policy-form', function (hooks) {
@onSave={{this.onSave}}
@renderPolicyExampleModal={{true}}
/>
-
- `);
+ `);
await click(SELECTORS.exampleButton);
assert.dom(SELECTORS.exampleModalTitle).hasText('Example RGP Policy');
});
@@ -412,8 +409,7 @@ module('Integration | Component | policy-form', function (hooks) {
@onSave={{this.onSave}}
@renderPolicyExampleModal={{true}}
/>
-
- `);
+ `);
await click(SELECTORS.exampleButton);
assert.dom(SELECTORS.exampleModalTitle).hasText('Example EGP Policy');
});
diff --git a/ui/tests/integration/components/replication-action-generate-token-test.js b/ui/tests/integration/components/replication-action-generate-token-test.js
index 9762c72499c3..cc2d6b5d56c0 100644
--- a/ui/tests/integration/components/replication-action-generate-token-test.js
+++ b/ui/tests/integration/components/replication-action-generate-token-test.js
@@ -19,8 +19,7 @@ module('Integration | Component | replication-action-generate-token', function (
test('it renders with the expected elements', async function (assert) {
await render(hbs`
-
- {{replication-action-generate-token}}
+ {{replication-action-generate-token}}
`);
assert.dom('h4.title').hasText('Generate operation token', 'renders default title');
assert.dom('[data-test-replication-action-trigger]').hasText('Generate token', 'renders default CTA');
diff --git a/ui/tests/integration/components/replication-actions-test.js b/ui/tests/integration/components/replication-actions-test.js
index 9cc1f56effe3..27f39d27006c 100644
--- a/ui/tests/integration/components/replication-actions-test.js
+++ b/ui/tests/integration/components/replication-actions-test.js
@@ -8,7 +8,7 @@ import { resolve } from 'rsvp';
import Service from '@ember/service';
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
-import { click, fillIn, blur, render } from '@ember/test-helpers';
+import { click, fillIn, render } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
import sinon from 'sinon';
@@ -71,13 +71,13 @@ module('Integration | Component | replication actions', function (hooks) {
['disable', 'secondary'],
false,
],
- ['dr', 'primary', 'recover', 'Recover', () => confirmInput('Disaster Recovery'), ['recover'], false],
- ['performance', 'primary', 'recover', 'Recover', () => confirmInput('Performance'), ['recover'], false],
- ['performance', 'secondary', 'recover', 'Recover', () => confirmInput('Performance'), ['recover'], false],
+ ['dr', 'primary', 'recover', 'Recover', null, ['recover'], false],
+ ['performance', 'primary', 'recover', 'Recover', null, ['recover'], false],
+ ['performance', 'secondary', 'recover', 'Recover', null, ['recover'], false],
- ['dr', 'primary', 'reindex', 'Reindex', () => confirmInput('Disaster Recovery'), ['reindex'], false],
- ['performance', 'primary', 'reindex', 'Reindex', () => confirmInput('Performance'), ['reindex'], false],
- ['performance', 'secondary', 'reindex', 'Reindex', () => confirmInput('Performance'), ['reindex'], false],
+ ['dr', 'primary', 'reindex', 'Reindex', () => null, ['reindex'], false],
+ ['performance', 'primary', 'reindex', 'Reindex', () => null, ['reindex'], false],
+ ['performance', 'secondary', 'reindex', 'Reindex', () => null, ['reindex'], false],
[
'dr',
@@ -109,8 +109,6 @@ module('Integration | Component | replication actions', function (hooks) {
'Promote cluster',
async function () {
await fillIn('[name="primary_cluster_addr"]', 'cluster addr');
- await blur('[name="primary_cluster_addr"]');
- await confirmInput('Performance');
},
['promote', 'secondary', { primary_cluster_addr: 'cluster addr' }],
false,
@@ -122,25 +120,14 @@ module('Integration | Component | replication actions', function (hooks) {
'Update primary',
async function () {
await fillIn('#secondary-token', 'token');
- await blur('#secondary-token');
await fillIn('#primary_api_addr', 'addr');
- await blur('#primary_api_addr');
- await confirmInput('Performance');
},
['update-primary', 'secondary', { token: 'token', primary_api_addr: 'addr' }],
false,
],
];
- for (const [
- replicationMode,
- clusterMode,
- action,
- headerText,
- fillInFn,
- expectedOnSubmit,
- oldVersion,
- ] of testCases) {
+ for (const [replicationMode, clusterMode, action, headerText, fillInFn, expectedOnSubmit] of testCases) {
test(`replication mode ${replicationMode}, cluster mode: ${clusterMode}, action: ${action}`, async function (assert) {
assert.expect(1);
const testKey = `${replicationMode}-${clusterMode}-${action}`;
@@ -171,8 +158,7 @@ module('Integration | Component | replication actions', function (hooks) {
this.set('storeService.capabilitiesReturnVal', ['root']);
await render(
hbs`
-
-
`
);
-
- const selector = oldVersion ? 'h3' : `[data-test-${action}-replication] h3`;
assert
- .dom(selector)
- .hasText(headerText, `${testKey}: renders the correct component header (${oldVersion})`);
+ .dom(`[data-test-${action}-replication] h3`)
+ .hasText(headerText, `${testKey}: renders the ${action} component header`);
- if (oldVersion) {
- await click('[data-test-confirm-action-trigger]');
- await click('[data-test-confirm-button]');
- } else {
- await click('[data-test-replication-action-trigger]');
- if (typeof fillInFn === 'function') {
- await fillInFn.call(this);
- }
- await blur('[data-test-confirmation-modal-input]');
- await click('[data-test-confirm-button]');
+ await click(`[data-test-replication-action-trigger="${action}"]`);
+ if (typeof fillInFn === 'function') {
+ await fillInFn.call(this);
}
+ await click('[data-test-confirm-button]');
});
}
});
diff --git a/ui/tests/integration/components/replication-header-test.js b/ui/tests/integration/components/replication-header-test.js
index ea0c784a4396..3f375e0e745b 100644
--- a/ui/tests/integration/components/replication-header-test.js
+++ b/ui/tests/integration/components/replication-header-test.js
@@ -34,8 +34,7 @@ module('Integration | Component | replication-header', function (hooks) {
test('it renders', async function (assert) {
await render(hbs`
-
-
+
`);
assert.dom('[data-test-replication-header]').exists();
@@ -43,8 +42,7 @@ module('Integration | Component | replication-header', function (hooks) {
test('it renders with mode and secondaryId when set', async function (assert) {
await render(hbs`
-
-
+
`);
assert.dom('[data-test-secondaryId]').includesText(SECONDARY_ID, `shows the correct secondaryId value`);
@@ -58,8 +56,7 @@ module('Integration | Component | replication-header', function (hooks) {
this.set('secondaryId', noId);
await render(hbs`
-
-
+
`);
assert.dom('[data-test-secondaryId]').doesNotExist();
@@ -68,8 +65,7 @@ module('Integration | Component | replication-header', function (hooks) {
test('it does not show tabs when showTabs is not set', async function (assert) {
await render(hbs`
-
-
+
`);
assert.dom('[data-test-tabs]').doesNotExist();
diff --git a/ui/tests/integration/components/search-select-with-modal-test.js b/ui/tests/integration/components/search-select-with-modal-test.js
index 2675cd75e110..6395caab878a 100644
--- a/ui/tests/integration/components/search-select-with-modal-test.js
+++ b/ui/tests/integration/components/search-select-with-modal-test.js
@@ -74,8 +74,7 @@ module('Integration | Component | search select with modal', function (hooks) {
@excludeOptions={{array "root"}}
@subText="Some modal subtext"
/>
-
- `);
+ `);
assert.dom('[data-test-search-select-with-modal]').exists('the component renders');
assert.dom('[data-test-modal-subtext]').hasText('Some modal subtext', 'renders modal text');
assert.strictEqual(component.labelText, 'Policies', 'label text is correct');
@@ -127,8 +126,7 @@ module('Integration | Component | search select with modal', function (hooks) {
@fallbackComponent="string-list"
@modalFormTemplate="modal-form/policy-template"
/>
-
- `);
+ `);
await clickTrigger();
assert.strictEqual(component.options.length, 4, 'dropdown renders all options');
@@ -146,7 +144,7 @@ module('Integration | Component | search select with modal', function (hooks) {
);
await component.selectOption();
- assert.dom('[data-test-modal-div]').hasAttribute('class', 'modal is-info is-active', 'modal is active');
+ assert.dom('.hds-modal#search-select-modal').exists('modal is active');
assert.dom('[data-test-empty-state-title]').hasText('No policy type selected');
assert.ok(this.onChange.notCalled, 'onChange is not called');
});
@@ -175,8 +173,7 @@ module('Integration | Component | search select with modal', function (hooks) {
@fallbackComponent="string-list"
@modalFormTemplate="modal-form/policy-template"
/>
-
- `);
+ `);
await clickTrigger();
await typeInSearch('acl-test-new');
assert.strictEqual(
@@ -228,8 +225,7 @@ module('Integration | Component | search select with modal', function (hooks) {
@fallbackComponent="string-list"
@modalFormTemplate="modal-form/policy-template"
/>
-
- `);
+ `);
assert.dom('[data-test-search-select-with-modal]').exists('the component renders');
assert.dom('[data-test-component="string-list"]').doesNotExist('does not render fallback component');
@@ -266,8 +262,7 @@ module('Integration | Component | search select with modal', function (hooks) {
@fallbackComponent="string-list"
@modalFormTemplate="modal-form/policy-template"
/>
-
- `);
+ `);
assert.dom('[data-test-component="string-list"]').exists('renders fallback component');
assert.false(component.hasTrigger, 'does not render power select trigger');
await fillIn('[data-test-string-list-input="0"]', 'string-list-policy');
diff --git a/ui/tests/integration/components/sidebar/frame-test.js b/ui/tests/integration/components/sidebar/frame-test.js
index cafb90b2af64..e310988a3f6f 100644
--- a/ui/tests/integration/components/sidebar/frame-test.js
+++ b/ui/tests/integration/components/sidebar/frame-test.js
@@ -37,7 +37,7 @@ module('Integration | Component | sidebar-frame', function (hooks) {
`);
- assert.dom('.link-status').exists('Link status component renders');
+ assert.dom('[data-test-link-status]').exists('Link status component renders');
assert.dom('[data-test-component="console/ui-panel"]').exists('Console UI panel renders');
assert.dom('.page-container').exists('Block yields for app content');
});
diff --git a/ui/tests/integration/components/sidebar/nav/tools-test.js b/ui/tests/integration/components/sidebar/nav/tools-test.js
index b0c57f3414d7..3dc6e6513017 100644
--- a/ui/tests/integration/components/sidebar/nav/tools-test.js
+++ b/ui/tests/integration/components/sidebar/nav/tools-test.js
@@ -14,8 +14,7 @@ import { capitalize } from '@ember/string';
const renderComponent = () => {
return render(hbs`
-
-
+
`);
};
diff --git a/ui/tests/integration/components/transit-key-actions-test.js b/ui/tests/integration/components/transit-key-actions-test.js
index 5f3ace403264..766197d6dd0b 100644
--- a/ui/tests/integration/components/transit-key-actions-test.js
+++ b/ui/tests/integration/components/transit-key-actions-test.js
@@ -51,9 +51,7 @@ module('Integration | Component | transit key actions', function (hooks) {
test('it requires `key`', async function (assert) {
const promise = waitForError();
render(hbs`
- {{transit-key-actions}}
-
- `);
+ {{transit-key-actions}}`);
const err = await promise;
assert.ok(err.message.includes('`key` is required for'), 'asserts without key');
});
@@ -61,15 +59,12 @@ module('Integration | Component | transit key actions', function (hooks) {
test('it renders', async function (assert) {
this.set('key', { backend: 'transit', supportedActions: ['encrypt'] });
await render(hbs`
- {{transit-key-actions selectedAction="encrypt" key=this.key}}
-
- `);
+ {{transit-key-actions selectedAction="encrypt" key=this.key}}`);
assert.dom('[data-test-transit-action="encrypt"]').exists({ count: 1 }, 'renders encrypt');
this.set('key', { backend: 'transit', supportedActions: ['sign'] });
await render(hbs`
- {{transit-key-actions selectedAction="sign" key=this.key}}
- `);
+ {{transit-key-actions selectedAction="sign" key=this.key}}`);
assert.dom('[data-test-transit-action="sign"]').exists({ count: 1 }, 'renders sign');
});
@@ -77,9 +72,7 @@ module('Integration | Component | transit key actions', function (hooks) {
this.set('key', { backend: 'transit', supportsSigning: true, supportedActions: ['sign', 'verify'] });
this.set('selectedAction', 'sign');
await render(hbs`
- {{transit-key-actions selectedAction=this.selectedAction key=this.key}}
-
- `);
+ {{transit-key-actions selectedAction=this.selectedAction key=this.key}}`);
assert
.dom('[data-test-signature-algorithm]')
.doesNotExist('does not render signature_algorithm field on sign');
@@ -107,9 +100,7 @@ module('Integration | Component | transit key actions', function (hooks) {
test('it renders: rotate', async function (assert) {
this.set('key', { backend: 'transit', id: 'akey', supportedActions: ['rotate'] });
await render(hbs`
- {{transit-key-actions selectedAction="rotate" key=this.key}}
-
- `);
+ {{transit-key-actions selectedAction="rotate" key=this.key}}`);
assert.dom('*').hasText('', 'renders an empty div');
@@ -127,9 +118,7 @@ module('Integration | Component | transit key actions', function (hooks) {
this.set('selectedAction', 'encrypt');
this.set('storeService.keyActionReturnVal', { ciphertext: 'secret' });
await render(hbs`
- {{transit-key-actions selectedAction=this.selectedAction key=this.key}}
-
- `);
+ {{transit-key-actions selectedAction=this.selectedAction key=this.key}}`);
find('#plaintext-control .CodeMirror').CodeMirror.setValue('plaintext');
await click('button[type="submit"]');
@@ -149,7 +138,7 @@ module('Integration | Component | transit key actions', function (hooks) {
assert.strictEqual(find('[data-test-encrypted-value="ciphertext"]').innerText, 'secret');
// exit modal
- await click('[data-test-modal-background]');
+ await click('dialog button');
// Encrypt again, with pre-encoded value and checkbox selected
const preEncodedValue = encodeString('plaintext');
find('#plaintext-control .CodeMirror').CodeMirror.setValue(preEncodedValue);
@@ -179,9 +168,7 @@ module('Integration | Component | transit key actions', function (hooks) {
this.set('key', key);
this.set('storeService.keyActionReturnVal', { ciphertext: 'secret' });
await render(hbs`
- {{transit-key-actions selectedAction="encrypt" key=this.key}}
-
- `);
+ {{transit-key-actions selectedAction="encrypt" key=this.key}}`);
findAll('.CodeMirror')[0].CodeMirror.setValue('plaintext');
assert.dom('#key_version').exists({ count: 1 }, 'it renders the key version selector');
@@ -210,9 +197,7 @@ module('Integration | Component | transit key actions', function (hooks) {
this.set('key', key);
this.set('storeService.keyActionReturnVal', { ciphertext: 'secret' });
await render(hbs`
- {{transit-key-actions selectedAction="encrypt" key=this.key}}
-
- `);
+ {{transit-key-actions selectedAction="encrypt" key=this.key}}`);
// await fillIn('#plaintext', 'plaintext');
find('#plaintext-control .CodeMirror').CodeMirror.setValue('plaintext');
@@ -242,9 +227,7 @@ module('Integration | Component | transit key actions', function (hooks) {
validKeyVersions: [1],
});
await render(hbs`
- {{transit-key-actions key=this.key}}
-
- `);
+ {{transit-key-actions key=this.key}}`);
};
test('it can export a key:default behavior', async function (assert) {
@@ -278,9 +261,9 @@ module('Integration | Component | transit key actions', function (hooks) {
await setupExport.call(this);
await click('[data-test-toggle-label="Wrap response"]');
await click('button[type="submit"]');
- assert.dom('.modal.is-active').exists('Modal opens after export');
+ assert.dom('#transit-export-modal').exists('Modal opens after export');
assert.deepEqual(
- JSON.parse(find('.modal [data-test-encrypted-value="export"]').innerText),
+ JSON.parse(find('[data-test-encrypted-value="export"]').innerText),
response,
'prints json response'
);
@@ -294,9 +277,9 @@ module('Integration | Component | transit key actions', function (hooks) {
await click('#exportVersion');
await triggerEvent('#exportVersion', 'change');
await click('button[type="submit"]');
- assert.dom('.modal.is-active').exists('Modal opens after export');
+ assert.dom('#transit-export-modal').exists('Modal opens after export');
assert.deepEqual(
- JSON.parse(find('.modal [data-test-encrypted-value="export"]').innerText),
+ JSON.parse(find('[data-test-encrypted-value="export"]').innerText),
response,
'prints json response'
);
@@ -322,9 +305,7 @@ module('Integration | Component | transit key actions', function (hooks) {
validKeyVersions: [1],
});
await render(hbs`
- {{transit-key-actions key=this.key}}
-
- `);
+ {{transit-key-actions key=this.key}}`);
await fillIn('#algorithm', 'sha2-384');
await blur('#algorithm');
await fillIn('[data-test-component="code-mirror-modifier"] textarea', 'plaintext');
diff --git a/ui/tests/integration/components/upgrade-page-test.js b/ui/tests/integration/components/upgrade-page-test.js
index 7f7bc408d2fa..de97c5a34554 100644
--- a/ui/tests/integration/components/upgrade-page-test.js
+++ b/ui/tests/integration/components/upgrade-page-test.js
@@ -14,8 +14,7 @@ module('Integration | Component | upgrade page', function (hooks) {
test('it renders with defaults', async function (assert) {
await render(hbs`
{{upgrade-page}}
-
- `);
+ `);
assert.dom('.page-header .title').hasText('Vault Enterprise', 'renders default page title');
assert
@@ -33,8 +32,7 @@ module('Integration | Component | upgrade page', function (hooks) {
test('it renders with custom attributes', async function (assert) {
await render(hbs`
{{upgrade-page title="Test Feature Title" minimumEdition="Vault Enterprise Premium"}}
-
- `);
+ `);
assert.dom('.page-header .title').hasText('Test Feature Title', 'renders custom page title');
assert
diff --git a/ui/yarn.lock b/ui/yarn.lock
index 7e3f68c2d8fe..b510be8bb238 100644
--- a/ui/yarn.lock
+++ b/ui/yarn.lock
@@ -3822,11 +3822,11 @@ __metadata:
linkType: hard
"@babel/runtime@npm:^7.17.8":
- version: 7.21.0
- resolution: "@babel/runtime@npm:7.21.0"
+ version: 7.23.1
+ resolution: "@babel/runtime@npm:7.23.1"
dependencies:
- regenerator-runtime: ^0.13.11
- checksum: 7b33e25bfa9e0e1b9e8828bb61b2d32bdd46b41b07ba7cb43319ad08efc6fda8eb89445193e67d6541814627df0ca59122c0ea795e412b99c5183a0540d338ab
+ regenerator-runtime: ^0.14.0
+ checksum: 0cd0d43e6e7dc7f9152fda8c8312b08321cda2f56ef53d6c22ebdd773abdc6f5d0a69008de90aa41908d00e2c1facb24715ff121274e689305c858355ff02c70
languageName: node
linkType: hard
@@ -4393,15 +4393,19 @@ __metadata:
linkType: hard
"@ember/render-modifiers@npm:^2.0.0, @ember/render-modifiers@npm:^2.0.5":
- version: 2.0.5
- resolution: "@ember/render-modifiers@npm:2.0.5"
+ version: 2.1.0
+ resolution: "@ember/render-modifiers@npm:2.1.0"
dependencies:
"@embroider/macros": ^1.0.0
ember-cli-babel: ^7.26.11
ember-modifier-manager-polyfill: ^1.2.0
peerDependencies:
- ember-source: ^3.8 || ^4.0.0
- checksum: ebeb4d573968f46490f8f5618b9d85f2c7ca39cee5b854bb497a3aee7dee3d710ab02b9677df30f1e2a484e712dd89171045118da563d9d9a6c316ccdccc2671
+ "@glint/template": ^1.0.2
+ ember-source: ^3.8 || ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ "@glint/template":
+ optional: true
+ checksum: 6c4d617b67ee52e8e29e9a2b9f42a30e8ea333a7b7a4c5a61fdf5f15623da11f40d82218aeddfbe32bee1f508c569740e842a8233f4a372728d18b66bbc197d5
languageName: node
linkType: hard
@@ -4469,25 +4473,25 @@ __metadata:
languageName: node
linkType: hard
-"@embroider/addon-shim@npm:^1.0.0, @embroider/addon-shim@npm:^1.2.0, @embroider/addon-shim@npm:^1.5.0, @embroider/addon-shim@npm:^1.8.4":
- version: 1.8.4
- resolution: "@embroider/addon-shim@npm:1.8.4"
+"@embroider/addon-shim@npm:^1.0.0, @embroider/addon-shim@npm:^1.2.0, @embroider/addon-shim@npm:^1.8.3":
+ version: 1.8.6
+ resolution: "@embroider/addon-shim@npm:1.8.6"
dependencies:
- "@embroider/shared-internals": ^2.0.0
+ "@embroider/shared-internals": ^2.2.3
broccoli-funnel: ^3.0.8
semver: ^7.3.8
- checksum: 107220e97bbd46ead81dfbbfc6cf7daa61731096a6e81b989659a9a0b29b48b3c97ebdd446b6dc0636c4be369f3744e514b7f5e5c0fdc54c1c0e026f54404cc2
+ checksum: 63214fbc1b3f333b052791cdfc0c278c348dd6ca4ec2b53c96183150e3d5fe9882cdd3065853e3d6a2c964c962d718b87f2fd8a17414b53fc3a3997d5eedb30e
languageName: node
linkType: hard
-"@embroider/addon-shim@npm:^1.8.3":
- version: 1.8.6
- resolution: "@embroider/addon-shim@npm:1.8.6"
+"@embroider/addon-shim@npm:^1.8.4":
+ version: 1.8.4
+ resolution: "@embroider/addon-shim@npm:1.8.4"
dependencies:
- "@embroider/shared-internals": ^2.2.3
+ "@embroider/shared-internals": ^2.0.0
broccoli-funnel: ^3.0.8
semver: ^7.3.8
- checksum: 63214fbc1b3f333b052791cdfc0c278c348dd6ca4ec2b53c96183150e3d5fe9882cdd3065853e3d6a2c964c962d718b87f2fd8a17414b53fc3a3997d5eedb30e
+ checksum: 107220e97bbd46ead81dfbbfc6cf7daa61731096a6e81b989659a9a0b29b48b3c97ebdd446b6dc0636c4be369f3744e514b7f5e5c0fdc54c1c0e026f54404cc2
languageName: node
linkType: hard
@@ -4977,14 +4981,14 @@ __metadata:
languageName: node
linkType: hard
-"@hashicorp/design-system-components@npm:^2.9.0":
- version: 2.9.0
- resolution: "@hashicorp/design-system-components@npm:2.9.0"
+"@hashicorp/design-system-components@npm:^2.12.2":
+ version: 2.12.2
+ resolution: "@hashicorp/design-system-components@npm:2.12.2"
dependencies:
"@ember/render-modifiers": ^2.0.5
"@ember/test-waiters": ^3.0.2
- "@hashicorp/design-system-tokens": ^1.7.0
- "@hashicorp/ember-flight-icons": ^3.0.9
+ "@hashicorp/design-system-tokens": ^1.8.0
+ "@hashicorp/ember-flight-icons": ^3.1.3
dialog-polyfill: ^0.5.6
ember-a11y-refocus: ^3.0.2
ember-auto-import: ^2.6.3
@@ -4996,39 +5000,38 @@ __metadata:
ember-composable-helpers: ^4.5.0
ember-focus-trap: ^1.0.2
ember-keyboard: ^8.2.0
- ember-named-blocks-polyfill: ^0.2.5
ember-stargate: ^0.4.3
ember-style-modifier: ^3.0.1
ember-truth-helpers: ^3.1.1
sass: ^1.62.1
tippy.js: ^6.3.7
- checksum: b7fb3026f6c73f370dc34032d57b292081e5f3a89c16d5a884e9ce778fe77173c9a243ebe6bff76c4eadc0ebd2954169ab56eb181d504ac1204be796a72760cf
+ checksum: 064f54a290523c8421a9f5a9e52f5f88f6a8e88fe457216e5a30a4b27393c339ca9e886c7aeeb55c535badd4d0615096a1ed204beaca7f576eec4281cd71f43f
languageName: node
linkType: hard
-"@hashicorp/design-system-tokens@npm:^1.7.0":
- version: 1.7.0
- resolution: "@hashicorp/design-system-tokens@npm:1.7.0"
- checksum: fafddf1f4534d34dbe03ee3345064ddb19e06314a9a8b5fed074cc1b768ab56c72b477ab9a75a036ce521d883bf7e09e0509ecdc284556a9ffae418dcac8adbc
+"@hashicorp/design-system-tokens@npm:^1.8.0":
+ version: 1.8.0
+ resolution: "@hashicorp/design-system-tokens@npm:1.8.0"
+ checksum: 9cc65907defb1bb6e2d91a9f8c778d592c9aa391b186e38bbf14353b532fee2f018fd53138b514360eea857f440efb870ac1b264b56efc7a4766bd55ca83b5a8
languageName: node
linkType: hard
-"@hashicorp/ember-flight-icons@npm:^3.0.9":
- version: 3.0.9
- resolution: "@hashicorp/ember-flight-icons@npm:3.0.9"
+"@hashicorp/ember-flight-icons@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "@hashicorp/ember-flight-icons@npm:3.1.3"
dependencies:
- "@hashicorp/flight-icons": ^2.17.0
+ "@hashicorp/flight-icons": ^2.20.0
ember-auto-import: ^2.6.3
ember-cli-babel: ^7.26.11
ember-cli-htmlbars: ^6.2.0
- checksum: b909a45059fbb8bcabe59103a6fa323b0baee4f09ad97d9c7f92251da680704724de469031b3ea83517026ecd4c6754155f9d5f3160640ffac83841c5e0a00e0
+ checksum: 196dec75deb983cbfeae6738c5bba7482f645d8ad419b1ab79c0f12f64d0f06e9c7ffb01ce13540e80aabb5ceb490c05c6cd56a7b25ceb3413ebe8274889a298
languageName: node
linkType: hard
-"@hashicorp/flight-icons@npm:^2.17.0":
- version: 2.17.0
- resolution: "@hashicorp/flight-icons@npm:2.17.0"
- checksum: 7df3e08ac8d814a661ff39a81421d586279091c83a742434dfc24a7f5381d000bbfa9a6b10aefbe138e2543a17e0643aadea8fe1004128e989c59dd74bfdc9e6
+"@hashicorp/flight-icons@npm:^2.20.0":
+ version: 2.20.0
+ resolution: "@hashicorp/flight-icons@npm:2.20.0"
+ checksum: 4ec750e46cd780f007a5046e4cd2cf9e69f946ef131d30b3090c24616c2c0a407f327d0135ebbb0af6578cfdbbb65ab59b18c6ab95599ec04ed2a04827aa24ec
languageName: node
linkType: hard
@@ -5359,9 +5362,9 @@ __metadata:
linkType: hard
"@popperjs/core@npm:^2.9.0":
- version: 2.11.7
- resolution: "@popperjs/core@npm:2.11.7"
- checksum: 5b6553747899683452a1d28898c1b39173a4efd780e74360bfcda8eb42f1c5e819602769c81a10920fc68c881d07fb40429604517d499567eac079cfa6470f19
+ version: 2.11.8
+ resolution: "@popperjs/core@npm:2.11.8"
+ checksum: e5c69fdebf52a4012f6a1f14817ca8e9599cb1be73dd1387e1785e2ed5e5f0862ff817f420a87c7fc532add1f88a12e25aeb010ffcbdc98eace3d55ce2139cf0
languageName: node
linkType: hard
@@ -12348,16 +12351,16 @@ __metadata:
linkType: hard
"ember-arg-types@npm:^1.0.0":
- version: 1.0.0
- resolution: "ember-arg-types@npm:1.0.0"
+ version: 1.1.0
+ resolution: "ember-arg-types@npm:1.1.0"
dependencies:
"@embroider/macros": ^1.8.1
ember-auto-import: ^2.4.2
ember-cli-babel: ^7.26.11
ember-cli-typescript: ^5.1.1
ember-get-config: ^2.1.1
- prop-types: ^15.7.2
- checksum: 8313a4a2644daeedcbd6d097b9cbd1d19045117b76814d33552f207d33111454379c38cdcfc478cdca85c0b956727371ba4bee83cc89cdb438463a0b2f5e72bd
+ prop-types: ^15.8.1
+ checksum: f31733f7749c51f1751673afd450106faac3cad61cc0406abc0ef2938d7623416e35794a80636f02a082aac047e4321a037c5f61796ec30baaf156216ba6d87b
languageName: node
linkType: hard
@@ -12676,17 +12679,18 @@ __metadata:
linkType: hard
"ember-cli-clipboard@npm:^1.0.0":
- version: 1.0.0
- resolution: "ember-cli-clipboard@npm:1.0.0"
+ version: 1.1.0
+ resolution: "ember-cli-clipboard@npm:1.1.0"
dependencies:
+ "@embroider/macros": ^1.10.0
clipboard: ^2.0.11
ember-arg-types: ^1.0.0
ember-auto-import: ^2.4.2
ember-cli-babel: ^7.26.11
ember-cli-htmlbars: ^6.1.0
- ember-modifier: ^3.2.7
+ ember-modifier: ^3.2.7 || ^4.1.0
prop-types: ^15.8.1
- checksum: 448891dcd9db44dfd6621434a5158a226a7cf572fd6359b08c7f486bdeb6380dedb031e21bdad12e9db78b422a365b26e98160c472fb6605cd0efe9936cc037c
+ checksum: 8977ddf744de59662012421feed13e2cd14f6658bc2742504dd5972d0c1181abd8be30085f8dfaaa4f8478fac162eb6ede912ef5c69159d03dac9cb5a6c0bd31
languageName: node
linkType: hard
@@ -13585,12 +13589,14 @@ __metadata:
linkType: hard
"ember-focus-trap@npm:^1.0.2":
- version: 1.0.2
- resolution: "ember-focus-trap@npm:1.0.2"
+ version: 1.1.0
+ resolution: "ember-focus-trap@npm:1.1.0"
dependencies:
"@embroider/addon-shim": ^1.0.0
focus-trap: ^6.7.1
- checksum: 1940405edcbff3997eb3d9f15314ded20f676e25a07adee5e306c0816ed0743849798c5bd69c1e7e35a5b32c44d0b4995a2d46cc14adc97eab899167fc51a968
+ peerDependencies:
+ ember-source: ^4.0.0 || ^5.0.0
+ checksum: 1f19c50b92c56f04681cd59ac3a88a520a53403278105aab2f4edc64df6ce3d0ceb53409e3309822bd4ced60063d9e8657117c708f90da9038c8140737e8d831
languageName: node
linkType: hard
@@ -13637,19 +13643,19 @@ __metadata:
linkType: hard
"ember-keyboard@npm:^8.2.0":
- version: 8.2.0
- resolution: "ember-keyboard@npm:8.2.0"
+ version: 8.2.1
+ resolution: "ember-keyboard@npm:8.2.1"
dependencies:
- "@embroider/addon-shim": ^1.5.0
+ "@embroider/addon-shim": ^1.8.4
ember-destroyable-polyfill: ^2.0.3
ember-modifier: ^2.1.2 || ^3.1.0 || ^4.0.0
ember-modifier-manager-polyfill: ^1.2.0
peerDependencies:
- "@ember/test-helpers": ^2.6.0
+ "@ember/test-helpers": ^2.6.0 || ^3.0.0
peerDependenciesMeta:
"@ember/test-helpers":
optional: true
- checksum: d8e9c8d78175b411c40b88288ef91902278011d242ed0775e64df492089210e0b3dfc0eee7de4fe11a33d918d40639fc5aee7ba26ba9695b507cabb5e52fa844
+ checksum: cfb4120aaf3b1ff3aba8ba1619b0597c6738abde31d1e0719d8bbf69512fb9967fc76bc85557351ec42856bb9b6c47354634f22f0accab0e15743d9f0e3f2be4
languageName: node
linkType: hard
@@ -13706,9 +13712,9 @@ __metadata:
languageName: node
linkType: hard
-"ember-modifier@npm:^2.1.2 || ^3.1.0 || ^4.0.0":
- version: 4.0.0
- resolution: "ember-modifier@npm:4.0.0"
+"ember-modifier@npm:^2.1.2 || ^3.1.0 || ^4.0.0, ember-modifier@npm:^3.2.7 || ^4.0.0, ember-modifier@npm:^3.2.7 || ^4.1.0, ember-modifier@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "ember-modifier@npm:4.1.0"
dependencies:
"@embroider/addon-shim": ^1.8.4
ember-cli-normalize-entity-name: ^1.0.0
@@ -13718,7 +13724,7 @@ __metadata:
peerDependenciesMeta:
ember-source:
optional: true
- checksum: 8970eee22666426abed22414fc12f1547b4c02618297648ace0c22ec3db5299afe522ac2130148e6daeded0c70ad7005418c21888b8e4198e0c6b04c5f751312
+ checksum: 5e14a864de2184c07e59fb9bc76a09ae25d1bd37722a94751a3cef6165df22027007696c4dda03e1862cb3bbeefb046772810dda3104d05c7fe8476389c34a77
languageName: node
linkType: hard
@@ -13735,32 +13741,6 @@ __metadata:
languageName: node
linkType: hard
-"ember-modifier@npm:^3.2.7 || ^4.0.0, ember-modifier@npm:^4.1.0":
- version: 4.1.0
- resolution: "ember-modifier@npm:4.1.0"
- dependencies:
- "@embroider/addon-shim": ^1.8.4
- ember-cli-normalize-entity-name: ^1.0.0
- ember-cli-string-utils: ^1.1.0
- peerDependencies:
- ember-source: "*"
- peerDependenciesMeta:
- ember-source:
- optional: true
- checksum: 5e14a864de2184c07e59fb9bc76a09ae25d1bd37722a94751a3cef6165df22027007696c4dda03e1862cb3bbeefb046772810dda3104d05c7fe8476389c34a77
- languageName: node
- linkType: hard
-
-"ember-named-blocks-polyfill@npm:^0.2.5":
- version: 0.2.5
- resolution: "ember-named-blocks-polyfill@npm:0.2.5"
- dependencies:
- ember-cli-babel: ^7.19.0
- ember-cli-version-checker: ^5.1.1
- checksum: f3ca8eeb61a208bf4690d423806b35371b5f01c58028404c9065d7d6e289d2220f40232756718a784fe0d0a65ed9c5a66a3df76f4abd222d07fca35886f5c583
- languageName: node
- linkType: hard
-
"ember-native-dom-helpers@npm:^0.7.0":
version: 0.7.0
resolution: "ember-native-dom-helpers@npm:0.7.0"
@@ -13845,8 +13825,8 @@ __metadata:
linkType: hard
"ember-resources@npm:^5.0.1":
- version: 5.6.3
- resolution: "ember-resources@npm:5.6.3"
+ version: 5.6.4
+ resolution: "ember-resources@npm:5.6.4"
dependencies:
"@babel/runtime": ^7.17.8
"@embroider/addon-shim": ^1.2.0
@@ -13865,7 +13845,7 @@ __metadata:
optional: true
ember-concurrency:
optional: true
- checksum: e548c00336ad970b77a7da016798061f648f7105848d508a66dbed9c70c3939c921772df59a14656e8974559c86148ed550407722e20b1d8bb18ae3dba95e881
+ checksum: 9edb126ee307251080380d421aba42f330f76c6e295046ae59b48c3162d27e83223732e398f8373f933d120f38831e791e0fd31e63c70315982166db399d2b33
languageName: node
linkType: hard
@@ -14176,7 +14156,7 @@ __metadata:
languageName: node
linkType: hard
-"ember-wormhole@npm:0.6.0, ember-wormhole@npm:^0.6.0":
+"ember-wormhole@npm:^0.6.0":
version: 0.6.0
resolution: "ember-wormhole@npm:0.6.0"
dependencies:
@@ -21971,7 +21951,7 @@ __metadata:
languageName: node
linkType: hard
-"prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
+"prop-types@npm:^15.8.1":
version: 15.8.1
resolution: "prop-types@npm:15.8.1"
dependencies:
@@ -22432,6 +22412,13 @@ __metadata:
languageName: node
linkType: hard
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.0
+ resolution: "regenerator-runtime@npm:0.14.0"
+ checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3
+ languageName: node
+ linkType: hard
+
"regenerator-transform@npm:^0.10.0":
version: 0.10.1
resolution: "regenerator-transform@npm:0.10.1"
@@ -23296,15 +23283,15 @@ __metadata:
linkType: hard
"sass@npm:^1.62.1":
- version: 1.65.1
- resolution: "sass@npm:1.65.1"
+ version: 1.68.0
+ resolution: "sass@npm:1.68.0"
dependencies:
chokidar: ">=3.0.0 <4.0.0"
immutable: ^4.0.0
source-map-js: ">=0.6.2 <2.0.0"
bin:
sass: sass.js
- checksum: 33e325fc80cd07489992e0814cd4929496f87493ffe78c423c2dbafa5746a574e6f3bde20c2a3e4ea47b16ee3d6bc5afcf1d36b405227b829d6c4c9ddcc7f8e2
+ checksum: 65ccede83c96768beeb8dcaf67957b7c76b12ff1276bfd2849d7be151d46ba1400048a67717e6e5e4969bc75e87348e5530f5f272833f2e60a891c21a33d8ab0
languageName: node
linkType: hard
@@ -25918,8 +25905,8 @@ __metadata:
"@ember/test-waiters": ^3.0.0
"@glimmer/component": ^1.1.2
"@glimmer/tracking": ^1.1.2
- "@hashicorp/design-system-components": ^2.9.0
- "@hashicorp/ember-flight-icons": ^3.0.9
+ "@hashicorp/design-system-components": ^2.12.2
+ "@hashicorp/ember-flight-icons": ^3.1.3
"@hashicorp/structure-icons": ^1.3.0
"@icholy/duration": ^5.1.0
"@tsconfig/ember": ^1.0.1
@@ -26020,7 +26007,6 @@ __metadata:
ember-test-selectors: 6.0.0
ember-tether: ^2.0.1
ember-truth-helpers: 3.0.0
- ember-wormhole: 0.6.0
escape-string-regexp: ^2.0.0
eslint: ^8.37.0
eslint-config-prettier: ^8.8.0