mirror of
https://github.com/hashicorp/vault.git
synced 2026-02-03 20:40:45 -05:00
UI: Fix generic v2 secret engine links (#27019)
* Update generic upgrade test to reflect user behavior * Fix backend link for generic v2 * Add redirect for generic v2 * more test coverage * Add changelog
This commit is contained in:
parent
ed3b3250c2
commit
f19e43f84d
4 changed files with 28 additions and 2 deletions
3
changelog/27019.txt
Normal file
3
changelog/27019.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
```release-note:bug
|
||||
ui: Fix link to v2 generic secrets engine from secrets list page.
|
||||
```
|
||||
|
|
@ -148,6 +148,10 @@ export default class SecretEngineModel extends Model {
|
|||
const { engineRoute } = allEngines().find((engine) => engine.type === this.engineType);
|
||||
return `vault.cluster.secrets.backend.${engineRoute}`;
|
||||
}
|
||||
if (this.isV2KV) {
|
||||
// if it's KV v2 but not registered as an addon, it's type generic
|
||||
return 'vault.cluster.secrets.backend.kv.list';
|
||||
}
|
||||
return `vault.cluster.secrets.backend.list-root`;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -96,6 +96,9 @@ export default Route.extend({
|
|||
return this.router.transitionTo('vault.cluster.secrets.backend.kv.list-directory', backend, secret);
|
||||
}
|
||||
return this.router.transitionTo(`vault.cluster.secrets.backend.${engineRoute}`, backend);
|
||||
} else if (secretEngine.isV2KV) {
|
||||
// if it's KV v2 but not registered as an addon, it's type generic
|
||||
return this.router.transitionTo('vault.cluster.secrets.backend.kv.list', backend);
|
||||
}
|
||||
const modelType = this.getModelType(backend, tab);
|
||||
return this.pathHelp.getNewModel(modelType, backend).then(() => {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@
|
|||
* SPDX-License-Identifier: BUSL-1.1
|
||||
*/
|
||||
|
||||
import { currentRouteName, visit } from '@ember/test-helpers';
|
||||
import { click, currentRouteName, settled, visit } from '@ember/test-helpers';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import { module, test } from 'qunit';
|
||||
import { setupApplicationTest } from 'ember-qunit';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
|
@ -63,7 +64,15 @@ module('Acceptance | secrets/generic/create', function (hooks) {
|
|||
// upgrade to version 2 generic mount
|
||||
`write sys/mounts/${path}/tune options=version=2`,
|
||||
]);
|
||||
await visit(`/vault/secrets/${path}/kv/list`);
|
||||
await visit('/vault/secrets');
|
||||
await selectChoose('[data-test-component="search-select"]#filter-by-engine-name', path);
|
||||
await settled();
|
||||
await click(`[data-test-secrets-backend-link="${path}"]`);
|
||||
assert.strictEqual(
|
||||
currentRouteName(),
|
||||
'vault.cluster.secrets.backend.kv.list',
|
||||
'navigates to the KV engine list page'
|
||||
);
|
||||
|
||||
assert
|
||||
.dom(PAGE.list.item('foo'))
|
||||
|
|
@ -77,6 +86,13 @@ module('Acceptance | secrets/generic/create', function (hooks) {
|
|||
});
|
||||
assert.dom(PAGE.list.item()).exists({ count: 2 }, 'lists only the two secrets');
|
||||
|
||||
await visit(`/vault/secrets/${path}/list`);
|
||||
assert.strictEqual(
|
||||
currentRouteName(),
|
||||
'vault.cluster.secrets.backend.kv.list',
|
||||
'redirects to the KV engine list page from generic list'
|
||||
);
|
||||
|
||||
// Clean up
|
||||
await runCmd(deleteEngineCmd(path));
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue