vault/ui/tests/acceptance/settings-test.js
Vault Automation d17181c596
UI: Replace toolbar filters on Secret Engines List page (#9577) (#9692)
* first full pass with new filtering

* updates and making dropdowns searchable

* fixing tests

* updates, test fix

* update version dropdown

* update icons

* comments and cleanup

* filter fixes, update template and add test

* fix tests

* fix tests but not insane

* update, changelog

Co-authored-by: Dan Rivera <dan.rivera@hashicorp.com>
2025-09-26 14:34:43 -04:00

88 lines
3 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { currentURL, visit, click, fillIn } from '@ember/test-helpers';
import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
import { v4 as uuidv4 } from 'uuid';
import mountSecrets from 'vault/tests/pages/settings/mount-secret-backend';
import { login } from 'vault/tests/helpers/auth/auth-helpers';
import { deleteEngineCmd, mountEngineCmd, runCmd } from 'vault/tests/helpers/commands';
import { GENERAL } from 'vault/tests/helpers/general-selectors';
module('Acceptance | secret engine mount settings', function (hooks) {
setupApplicationTest(hooks);
hooks.beforeEach(function () {
this.uid = uuidv4();
return login();
});
test('it allows you to mount a secret engine', async function (assert) {
const type = 'consul';
const path = `settings-path-${this.uid}`;
// mount unsupported backend
await visit('/vault/secrets/mounts');
assert.strictEqual(currentURL(), '/vault/secrets/mounts', 'navigates to the mount secret backend page');
await click(GENERAL.cardContainer(type));
await fillIn(GENERAL.inputByAttr('path'), path);
await click(GENERAL.button('Method Options'));
await click(GENERAL.toggleInput('Default Lease TTL'));
await mountSecrets.defaultTTLUnit('s').defaultTTLVal(100);
await click(GENERAL.submitButton);
assert
.dom(`${GENERAL.flashMessage}.is-success`)
.includesText(
`Success Successfully mounted the ${type} secrets engine at ${path}`,
'flash message is shown after mounting'
);
assert.strictEqual(currentURL(), `/vault/secrets`, 'redirects to secrets page');
// cleanup
await runCmd(deleteEngineCmd(path));
});
test('it navigates to ember engine configuration page', async function (assert) {
const type = 'ldap';
const path = `ldap-${this.uid}`;
await visit('/vault/secrets/mounts');
await runCmd(mountEngineCmd(type, path), false);
await visit('/vault/secrets');
await fillIn(GENERAL.inputSearch('secret-engine-path'), path);
await click(GENERAL.menuTrigger);
await click(GENERAL.menuItem('view-configuration'));
assert.strictEqual(
currentURL(),
`/vault/secrets/${path}/${type}/configuration`,
'navigates to the config page for ember engine'
);
// clean up
await runCmd(deleteEngineCmd(path));
});
test('it navigates to non-ember engine configuration page', async function (assert) {
const type = 'ssh';
const path = `ssh-${this.uid}`;
await visit('/vault/secrets/mounts');
await runCmd(mountEngineCmd(type, path), false);
await visit('/vault/secrets');
await fillIn(GENERAL.inputSearch('secret-engine-path'), path);
await click(GENERAL.menuTrigger);
await click(GENERAL.menuItem('view-configuration'));
assert.strictEqual(
currentURL(),
`/vault/secrets/${path}/configuration`,
'navigates to the config page for non-ember engine'
);
// clean up
await runCmd(deleteEngineCmd(path));
});
});