open-vault/ui/tests/acceptance/settings-test.js
2023-03-22 13:19:11 -05:00

59 lines
1.7 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { currentURL, find, visit, settled } from '@ember/test-helpers';
import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
import { v4 as uuidv4 } from 'uuid';
import backendListPage from 'vault/tests/pages/secrets/backends';
import mountSecrets from 'vault/tests/pages/settings/mount-secret-backend';
import authPage from 'vault/tests/pages/auth';
import logout from 'vault/tests/pages/logout';
module('Acceptance | settings', function (hooks) {
setupApplicationTest(hooks);
hooks.beforeEach(function () {
this.uid = uuidv4();
return authPage.login();
});
hooks.afterEach(function () {
return logout.visit();
});
test('settings', async function (assert) {
const type = 'consul';
const path = `settings-path-${this.uid}`;
// mount unsupported backend
await visit('/vault/settings/mount-secret-backend');
assert.strictEqual(currentURL(), '/vault/settings/mount-secret-backend');
await mountSecrets.selectType(type);
await mountSecrets
.next()
.path(path)
.toggleOptions()
.enableDefaultTtl()
.defaultTTLUnit('s')
.defaultTTLVal(100)
.submit();
await settled();
assert.ok(
find('[data-test-flash-message]').textContent.trim(),
`Successfully mounted '${type}' at '${path}'!`
);
await settled();
assert.strictEqual(currentURL(), `/vault/secrets`, 'redirects to secrets page');
const row = backendListPage.rows.filterBy('path', path + '/')[0];
await row.menu();
await backendListPage.configLink();
assert.strictEqual(currentURL(), `/vault/secrets/${path}/configuration`, 'navigates to the config page');
});
});