vault/ui/tests/acceptance/enterprise-kmse-test.js
claire bontempo 1d273d6b3e
ui: unskip mount engine transition tests (#22693)
* unskip mount backend transition tests

* address comment

* add enterprise tests
2023-08-31 11:01:17 -07:00

71 lines
2.9 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
import { click, currentRouteName, fillIn } from '@ember/test-helpers';
import authPage from 'vault/tests/pages/auth';
import mountSecrets from 'vault/tests/pages/settings/mount-secret-backend';
import { setupMirage } from 'ember-cli-mirage/test-support';
import { allEngines } from 'vault/helpers/mountable-secret-engines';
import { runCmd } from '../helpers/commands';
module('Acceptance | Enterprise | keymgmt', function (hooks) {
setupApplicationTest(hooks);
setupMirage(hooks);
hooks.beforeEach(async function () {
return authPage.login();
});
test('it transitions to list route after mount success', async function (assert) {
assert.expect(1);
const engine = allEngines().find((e) => e.type === 'keymgmt');
// delete any previous mount with same name
await runCmd([`delete sys/mounts/${engine.type}`]);
await mountSecrets.visit();
await mountSecrets.selectType(engine.type);
await mountSecrets.next().path(engine.type);
await mountSecrets.submit();
assert.strictEqual(
currentRouteName(),
`vault.cluster.secrets.backend.list-root`,
`${engine.type} navigates to list view`
);
// cleanup
await runCmd([`delete sys/mounts/${engine.type}`]);
});
test('it should add new key and distribute to provider', async function (assert) {
const path = `keymgmt-${Date.now()}`;
this.server.post(`/${path}/key/test-key`, () => ({}));
this.server.put(`/${path}/kms/test-keyvault/key/test-key`, () => ({}));
await mountSecrets.enable('keymgmt', path);
await click('[data-test-secret-create]');
await fillIn('[data-test-input="provider"]', 'azurekeyvault');
await fillIn('[data-test-input="name"]', 'test-keyvault');
await fillIn('[data-test-input="keyCollection"]', 'test-keycollection');
await fillIn('[data-test-input="credentials.client_id"]', '123');
await fillIn('[data-test-input="credentials.client_secret"]', '456');
await fillIn('[data-test-input="credentials.tenant_id"]', '789');
await click('[data-test-kms-provider-submit]');
await click('[data-test-distribute-key]');
await click('[data-test-component="search-select"] .ember-basic-dropdown-trigger');
await fillIn('.ember-power-select-search-input', 'test-key');
await click('.ember-power-select-option');
await fillIn('[data-test-keymgmt-dist-keytype]', 'rsa-2048');
await click('[data-test-operation="encrypt"]');
await fillIn('[data-test-protection="hsm"]', 'hsm');
this.server.get(`/${path}/kms/test-keyvault/key`, () => ({ data: { keys: ['test-key'] } }));
await click('[data-test-secret-save]');
await click('[data-test-kms-provider-tab="keys"] a');
assert.dom('[data-test-secret-link="test-key"]').exists('Key is listed under keys tab of provider');
});
});