From f1f162cadce765e380d161d560b222d883060871 Mon Sep 17 00:00:00 2001 From: Chelsea Shaw Date: Tue, 14 May 2024 10:25:49 -0500 Subject: [PATCH 1/5] Update generic upgrade test to reflect user behavior --- .../acceptance/secrets/backend/generic/secret-test.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ui/tests/acceptance/secrets/backend/generic/secret-test.js b/ui/tests/acceptance/secrets/backend/generic/secret-test.js index 70f3b19d394..294196811ea 100644 --- a/ui/tests/acceptance/secrets/backend/generic/secret-test.js +++ b/ui/tests/acceptance/secrets/backend/generic/secret-test.js @@ -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,10 @@ 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 .dom(PAGE.list.item('foo')) From aa70354a349f09144fd1bc2ee3d14d44c21f73bf Mon Sep 17 00:00:00 2001 From: Chelsea Shaw Date: Tue, 14 May 2024 10:29:40 -0500 Subject: [PATCH 2/5] Fix backend link for generic v2 --- ui/app/models/secret-engine.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/app/models/secret-engine.js b/ui/app/models/secret-engine.js index 694beba449e..ba435675674 100644 --- a/ui/app/models/secret-engine.js +++ b/ui/app/models/secret-engine.js @@ -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`; } From 6d4bbd2d68eda300efb75a81cb3638753c3eeadb Mon Sep 17 00:00:00 2001 From: Chelsea Shaw Date: Tue, 14 May 2024 10:30:12 -0500 Subject: [PATCH 3/5] Add redirect for generic v2 --- ui/app/routes/vault/cluster/secrets/backend/list.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui/app/routes/vault/cluster/secrets/backend/list.js b/ui/app/routes/vault/cluster/secrets/backend/list.js index 16dec5e90e7..fe744044c39 100644 --- a/ui/app/routes/vault/cluster/secrets/backend/list.js +++ b/ui/app/routes/vault/cluster/secrets/backend/list.js @@ -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(() => { From 92888c8ed2b1ed4fd3b806c4f81a28e4f22b342e Mon Sep 17 00:00:00 2001 From: Chelsea Shaw Date: Tue, 14 May 2024 10:30:25 -0500 Subject: [PATCH 4/5] more test coverage --- .../secrets/backend/generic/secret-test.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ui/tests/acceptance/secrets/backend/generic/secret-test.js b/ui/tests/acceptance/secrets/backend/generic/secret-test.js index 294196811ea..12def4d3295 100644 --- a/ui/tests/acceptance/secrets/backend/generic/secret-test.js +++ b/ui/tests/acceptance/secrets/backend/generic/secret-test.js @@ -68,6 +68,11 @@ module('Acceptance | secrets/generic/create', function (hooks) { 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')) @@ -81,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)); }); From 8415881d63cac357ed82f86713918bd61a7b6b09 Mon Sep 17 00:00:00 2001 From: Chelsea Shaw Date: Tue, 14 May 2024 10:49:55 -0500 Subject: [PATCH 5/5] Add changelog --- changelog/27019.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 changelog/27019.txt diff --git a/changelog/27019.txt b/changelog/27019.txt new file mode 100644 index 00000000000..722e0d46c9e --- /dev/null +++ b/changelog/27019.txt @@ -0,0 +1,3 @@ +```release-note:bug +ui: Fix link to v2 generic secrets engine from secrets list page. +``` \ No newline at end of file