Title case "Secrets" in breadcrumbs to route secret (#27144)

* title case all Secrets to route secret breadcrumbs

* fix kv navigation test

* welp missed some kv tests
This commit is contained in:
Angel Garbarino 2024-05-21 08:19:28 -06:00 committed by GitHub
parent a94981c016
commit 2e0db217c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
72 changed files with 145 additions and 145 deletions

View file

@ -35,7 +35,7 @@ export default Component.extend(FocusOnInsertMixin, {
get breadcrumbs() {
const baseCrumbs = [
{
label: 'secrets',
label: 'Secrets',
route: 'vault.cluster.secrets',
},
{

View file

@ -33,7 +33,7 @@ export default EditBase.extend({
controller.set('selectedAction', selectedAction || model.secret.supportedActions[0]);
controller.set('breadcrumbs', [
{
label: 'secrets',
label: 'Secrets',
route: 'vault.cluster.secrets',
},
{

View file

@ -27,7 +27,7 @@ export default class KubernetesConfigureRoute extends Route {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend.id },
];
}

View file

@ -21,7 +21,7 @@ export default class KubernetesConfigureRoute extends Route {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'overview' },
{ label: 'configure' },
];

View file

@ -12,7 +12,7 @@ export default class KubernetesErrorRoute extends Route {
setupController(controller) {
super.setupController(...arguments);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview' },
];
controller.backend = this.modelFor('application');

View file

@ -26,7 +26,7 @@ export default class KubernetesOverviewRoute extends Route {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend.id },
];
}

View file

@ -40,7 +40,7 @@ export default class KubernetesRolesRoute extends Route {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend.id },
];
}

View file

@ -24,7 +24,7 @@ export default class KvConfigurationRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.mountConfig.id, route: 'list', model: resolvedModel.engineConfig.backend },
{ label: 'configuration' },
];

View file

@ -31,7 +31,7 @@ export default class KvSecretsCreateRoute extends Route {
super.setupController(controller, resolvedModel);
const crumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path),
{ label: 'create' },

View file

@ -12,7 +12,7 @@ export default class KvErrorRoute extends Route {
setupController(controller) {
super.setupController(...arguments);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'list', model: this.secretMountPath.currentPath },
];
controller.mountName = this.secretMountPath.currentPath;

View file

@ -71,7 +71,7 @@ export default class KvSecretsListRoute extends Route {
resolvedModel.failedDirectoryQuery =
resolvedModel.secrets === 403 && pathIsDirectory(resolvedModel.pathToSecret);
let breadcrumbsArray = [{ label: 'secrets', route: 'secrets', linkExternal: true }];
let breadcrumbsArray = [{ label: 'Secrets', route: 'secrets', linkExternal: true }];
// if on top level don't link the engine breadcrumb label, but if within a directory, do link back to top level.
if (this.routeName === 'list') {
breadcrumbsArray.push({ label: resolvedModel.backend });

View file

@ -35,7 +35,7 @@ export default class KvSecretDetailsEditRoute extends Route {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path),
{ label: 'edit' },

View file

@ -11,7 +11,7 @@ export default class KvSecretDetailsIndexRoute extends Route {
super.setupController(controller, resolvedModel);
const breadcrumbsArray = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path, true),
];

View file

@ -12,7 +12,7 @@ export default class KvSecretMetadataDiffRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
const breadcrumbsArray = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path),
{ label: 'version history', route: 'secret.metadata.versions' },

View file

@ -13,7 +13,7 @@ export default class KvSecretMetadataEditRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
const breadcrumbsArray = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path),
{ label: 'metadata', route: 'secret.metadata' },

View file

@ -13,7 +13,7 @@ export default class KvSecretMetadataIndexRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
const breadcrumbsArray = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path),
{ label: 'metadata' },

View file

@ -10,7 +10,7 @@ export default class KvSecretMetadataVersionsRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
const breadcrumbsArray = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path),
{ label: 'version history' },

View file

@ -11,7 +11,7 @@ export default class KvSecretPathsRoute extends Route {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backend, route: 'list', model: resolvedModel.backend },
...breadcrumbsForSecret(resolvedModel.backend, resolvedModel.path),
{ label: 'paths' },

View file

@ -50,7 +50,7 @@ export default class LdapConfigurationRoute extends Route {
super.setupController(controller, resolvedModel, transition);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backendModel.id },
];
}

View file

@ -24,7 +24,7 @@ export default class LdapErrorRoute extends Route {
setupController(controller: LdapErrorController, resolvedModel: AdapterError, transition: Transition) {
super.setupController(controller, resolvedModel, transition);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview' },
];
controller.backend = this.modelFor('application') as SecretEngineModel;

View file

@ -50,7 +50,7 @@ export default class LdapLibrariesRoute extends Route {
super.setupController(controller, resolvedModel, transition);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backendModel.id },
];
}

View file

@ -74,7 +74,7 @@ export default class LdapOverviewRoute extends Route {
super.setupController(controller, resolvedModel, transition);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backendModel.id },
];
}

View file

@ -75,7 +75,7 @@ export default class LdapRolesRoute extends Route {
super.setupController(controller, resolvedModel, transition);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: resolvedModel.backendModel.id },
];
}

View file

@ -23,7 +23,7 @@ export default class DetailsPage extends Component<Args> {
get breadcrumbs() {
return [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview' },
{ label: 'roles', route: 'roles.index' },
{ label: this.args.role.id },

View file

@ -17,7 +17,7 @@ export default class PkiCertificateDetailsRoute extends Route {
setupController(controller, model) {
super.setupController(controller, model);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'certificates', route: 'certificates.index', model: this.secretMountPath.currentPath },
{ label: model.id },

View file

@ -23,7 +23,7 @@ export default class PkiConfigurationCreateRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'configure' },
];

View file

@ -25,7 +25,7 @@ export default class PkiConfigurationEditRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'configuration', route: 'configuration.index', model: this.secretMountPath.currentPath },
{ label: 'edit' },

View file

@ -12,7 +12,7 @@ export default class PkiRolesErrorRoute extends Route {
setupController(controller) {
super.setupController(...arguments);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview' },
];
controller.tabs = [

View file

@ -19,7 +19,7 @@ export default class PkiIssuersGenerateIntermediateRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'issuers', route: 'issuers.index', model: this.secretMountPath.currentPath },
{ label: 'generate CSR' },

View file

@ -19,7 +19,7 @@ export default class PkiIssuersGenerateRootRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'generate root' },
];

View file

@ -19,7 +19,7 @@ export default class PkiIssuersImportRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'issuers', route: 'issuers.index', model: this.secretMountPath.currentPath },
{ label: 'import' },

View file

@ -35,7 +35,7 @@ export default class PkiIssuersListRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'issuers', route: 'issuers.index', model: this.secretMountPath.currentPath },
];

View file

@ -21,7 +21,7 @@ export default class PkiIssuerIndexRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'issuers', route: 'issuers.index', model: this.secretMountPath.currentPath },
];

View file

@ -20,7 +20,7 @@ export default class PkiIssuerCrossSignRoute extends Route {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'issuers', route: 'issuers.index', model: this.secretMountPath.currentPath },
{

View file

@ -26,7 +26,7 @@ export default class PkiIssuerDetailsRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: resolvedModel.backend },
{ label: 'issuers', route: 'issuers.index', model: resolvedModel.backend },
{ label: resolvedModel.issuer.id },

View file

@ -23,7 +23,7 @@ export default class PkiIssuerEditRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'issuers', route: 'issuers.index', model: this.secretMountPath.currentPath },
{

View file

@ -39,7 +39,7 @@ export default class PkiIssuerRotateRootRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: resolvedModel.oldRoot.backend },
{ label: 'issuers', route: 'issuers.index', model: resolvedModel.oldRoot.backend },
{

View file

@ -19,7 +19,7 @@ export default class PkiIssuerSignRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'issuers', route: 'issuers.index', model: this.secretMountPath.currentPath },
{

View file

@ -19,7 +19,7 @@ export default class PkiKeysCreateRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'keys', route: 'keys.index', model: this.secretMountPath.currentPath },
{ label: 'generate' },

View file

@ -19,7 +19,7 @@ export default class PkiKeysImportRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'keys', route: 'keys.index', model: this.secretMountPath.currentPath },
{ label: 'import' },

View file

@ -45,7 +45,7 @@ export default class PkiKeysIndexRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: resolvedModel.parentModel.id },
{ label: 'keys', route: 'keys.index', model: resolvedModel.parentModel.id },
];

View file

@ -15,7 +15,7 @@ export default class PkiKeyDetailsRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: resolvedModel.backend },
{ label: 'keys', route: 'keys.index', model: resolvedModel.backend },
{ label: resolvedModel.id },

View file

@ -18,7 +18,7 @@ export default class PkiKeyEditRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'keys', route: 'keys.index', model: this.secretMountPath.currentPath },
{ label: resolvedModel.id },

View file

@ -30,7 +30,7 @@ export default class PkiRolesCreateRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'roles', route: 'roles.index', model: this.secretMountPath.currentPath },
{ label: 'create' },

View file

@ -22,7 +22,7 @@ export default class RolesRoleDetailsRoute extends Route {
super.setupController(controller, resolvedModel);
const { id } = resolvedModel;
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'roles', route: 'roles.index', model: this.secretMountPath.currentPath },
{ label: id },

View file

@ -38,7 +38,7 @@ export default class PkiRoleEditRoute extends Route {
role: { id },
} = resolvedModel;
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'roles', route: 'roles.index', model: this.secretMountPath.currentPath },
{ label: id, route: 'roles.role.details', models: [this.secretMountPath.currentPath, id] },

View file

@ -23,7 +23,7 @@ export default class PkiRoleGenerateRoute extends Route {
super.setupController(controller, resolvedModel);
const { role } = this.paramsFor('roles/role');
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'roles', route: 'roles.index', model: this.secretMountPath.currentPath },
{ label: role, route: 'roles.role.details', models: [this.secretMountPath.currentPath, role] },

View file

@ -23,7 +23,7 @@ export default class PkiRoleSignRoute extends Route {
super.setupController(controller, resolvedModel);
const { role } = this.paramsFor('roles/role');
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: this.secretMountPath.currentPath },
{ label: 'roles', route: 'roles.index', model: this.secretMountPath.currentPath },
{ label: role, route: 'roles.role.details', models: [this.secretMountPath.currentPath, role] },

View file

@ -19,7 +19,7 @@ export default class PkiTidyAutoConfigureRoute extends Route {
const { id: backend } = resolvedModel;
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: backend },
{ label: 'configuration', route: 'configuration.index', model: backend },
{ label: 'tidy', route: 'tidy', model: backend },

View file

@ -17,7 +17,7 @@ export default class TidyAutoIndexRoute extends Route {
const { id: backend } = resolvedModel;
super.setupController(...arguments);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: backend },
{ label: 'tidy', route: 'tidy.index', model: backend },
{ label: 'auto' },

View file

@ -19,7 +19,7 @@ export default class PkiTidyManualRoute extends Route {
setupController(controller, resolvedModel) {
super.setupController(controller, resolvedModel);
controller.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.secretMountPath.currentPath, route: 'overview', model: resolvedModel.backend },
{ label: 'configuration', route: 'configuration.index', model: resolvedModel.backend },
{ label: 'tidy', route: 'tidy', model: resolvedModel.backend },

View file

@ -171,7 +171,7 @@ module('Acceptance | kv-v2 workflow | edge cases', function (hooks) {
.dom(PAGE.error.message)
.hasText(`Sorry, we were unable to find any content at /v1/${backend}/data/${root}/${subdirectory}.`);
assert.dom(PAGE.breadcrumbAtIdx(0)).hasText('secrets');
assert.dom(PAGE.breadcrumbAtIdx(0)).hasText('Secrets');
assert.dom(PAGE.breadcrumbAtIdx(1)).hasText(backend);
assert.dom(PAGE.secretTab('Secrets')).doesNotHaveClass('is-active');
assert.dom(PAGE.secretTab('Configuration')).doesNotHaveClass('is-active');

View file

@ -115,7 +115,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
// URL correct
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list`, 'lands on secrets list page');
// Breadcrumbs correct
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
// Title correct
assert.dom(PAGE.title).hasText(`${backend} version 2`);
// Tabs correct
@ -150,20 +150,20 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
await navToBackend(backend);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title text correct');
assert.dom(PAGE.emptyStateTitle).doesNotExist('No empty state');
assertCorrectBreadcrumbs(assert, ['secret', backend]);
assertCorrectBreadcrumbs(assert, ['Secret', backend]);
assert.dom(PAGE.list.filter).hasNoValue('List filter input is empty');
// Navigate through list items
await click(PAGE.list.item('app/'));
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/`);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app']);
assert.dom(PAGE.title).hasText(`${backend} version 2`);
assert.dom(PAGE.list.filter).hasValue('app/', 'List filter input is prefilled');
assert.dom(PAGE.list.item('nested/')).exists('Shows nested secret');
await click(PAGE.list.item('nested/'));
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/nested/`);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested']);
assert.dom(PAGE.title).hasText(`${backend} version 2`);
assert.dom(PAGE.list.filter).hasValue('app/nested/', 'List filter input is prefilled');
assert.dom(PAGE.list.item('secret')).exists('Shows deeply nested secret');
@ -173,7 +173,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
currentURL(),
`/vault/secrets/${backend}/kv/app%2Fnested%2Fsecret/details?version=1`
);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested', 'secret']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested', 'secret']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title is full secret path');
assertDetailsToolbar(assert);
@ -277,7 +277,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/metadata`,
`goes to metadata page`
);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath);
assert
.dom(`${PAGE.metadata.customMetadataSection} ${PAGE.emptyStateTitle}`)
@ -293,7 +293,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/metadata/edit`,
`goes to metadata edit page`
);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata', 'edit']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata', 'edit']);
await click(FORM.cancelBtn);
assert.strictEqual(
currentURL(),
@ -306,37 +306,37 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
const backend = this.backend;
await navToBackend(backend);
await click(PAGE.secretTab('Configuration'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'configuration']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'configuration']);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for configuration');
await click(PAGE.secretTab('Secrets'));
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for secret list');
await click(PAGE.list.item(secretPath));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath]);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for secret detail');
await click(PAGE.detail.createNewVersion);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'edit']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'edit']);
assert.dom(PAGE.title).hasText('Create New Version', 'correct page title for secret edit');
await click(PAGE.breadcrumbAtIdx(2));
await click(PAGE.secretTab('Metadata'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for metadata');
await click(PAGE.metadata.editBtn);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata', 'edit']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata', 'edit']);
assert.dom(PAGE.title).hasText('Edit Secret Metadata', 'correct page title for metadata edit');
await click(PAGE.breadcrumbAtIdx(3));
await click(PAGE.secretTab('Paths'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'paths']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'paths']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for paths');
await click(PAGE.secretTab('Version History'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'version history']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'version history']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for version history');
});
});
@ -362,7 +362,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
// URL correct
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list`, 'lands on secrets list page');
// Breadcrumbs correct
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
// Title correct
assert.dom(PAGE.title).hasText(`${backend} version 2`);
// Tabs correct
@ -410,7 +410,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
await navToBackend(backend);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title text correct');
assert.dom(PAGE.emptyStateTitle).doesNotExist('No empty state');
assertCorrectBreadcrumbs(assert, ['secret', backend]);
assertCorrectBreadcrumbs(assert, ['Secret', backend]);
assert
.dom(PAGE.list.filter)
.doesNotExist('List filter input does not render because no list capabilities');
@ -423,7 +423,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
currentURL(),
`/vault/secrets/${backend}/kv/app%2Fnested%2Fsecret/details?version=1`
);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested', 'secret']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested', 'secret']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title is full secret path');
assertDetailsToolbar(assert, ['copy']);
@ -477,7 +477,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/metadata`,
`goes to metadata page`
);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath);
assert.dom(PAGE.toolbarAction).doesNotExist('no toolbar actions available on metadata');
assert
@ -493,28 +493,28 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
const backend = this.backend;
await navToBackend(backend);
await click(PAGE.secretTab('Configuration'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'configuration']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'configuration']);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title correct on config page');
await click(PAGE.secretTab('Secrets'));
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title correct on secrets list');
await typeIn(PAGE.list.overviewInput, 'app/nested/secret');
await click(PAGE.list.overviewButton);
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'app', 'nested', 'secret']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'app', 'nested', 'secret']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title correct on secret detail');
assert.dom(PAGE.detail.createNewVersion).doesNotExist('cannot create new version');
await click(PAGE.secretTab('Metadata'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'app', 'nested', 'secret', 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'app', 'nested', 'secret', 'metadata']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title correct on metadata');
assert.dom(PAGE.metadata.editBtn).doesNotExist('cannot edit metadata');
await click(PAGE.secretTab('Paths'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'app', 'nested', 'secret', 'paths']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'app', 'nested', 'secret', 'paths']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'correct page title for paths');
assert.dom(PAGE.secretTab('Version History')).doesNotExist('Version History tab not shown');
@ -543,7 +543,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
// URL correct
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list`, 'lands on secrets list page');
// Breadcrumbs correct
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
// Title correct
assert.dom(PAGE.title).hasText(`${backend} version 2`);
// Tabs correct
@ -578,13 +578,13 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
await navToBackend(backend);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title text correct');
assert.dom(PAGE.emptyStateTitle).doesNotExist('No empty state');
assertCorrectBreadcrumbs(assert, ['secret', backend]);
assertCorrectBreadcrumbs(assert, ['Secret', backend]);
assert.dom(PAGE.list.filter).hasNoValue('List filter input is empty');
// Navigate through list items
await click(PAGE.list.item('app/'));
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/`);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app']);
assert.dom(PAGE.title).hasText(`${backend} version 2`);
assert.dom(PAGE.list.filter).doesNotExist('List filter hidden since no nested list access');
@ -598,7 +598,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
currentURL(),
`/vault/secrets/${backend}/kv/app%2Fnested%2Fsecret/details?version=1`
);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested', 'secret']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested', 'secret']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title is full secret path');
assertDetailsToolbar(assert, ['delete', 'copy']);
@ -650,7 +650,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/metadata`,
`goes to metadata page`
);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath);
assert
.dom(`${PAGE.metadata.customMetadataSection} ${PAGE.emptyStateTitle}`)
@ -666,27 +666,27 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
await navToBackend(backend);
await click(PAGE.secretTab('Configuration'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'configuration']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'configuration']);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for configuration');
await click(PAGE.secretTab('Secrets'));
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for secret list');
await click(PAGE.list.item(secretPath));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath]);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for secret detail');
assert.dom(PAGE.detail.createNewVersion).doesNotExist('cannot create new version');
await click(PAGE.secretTab('Metadata'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for metadata');
assert.dom(PAGE.metadata.editBtn).doesNotExist('cannot edit metadata');
await click(PAGE.secretTab('Paths'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'paths']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'paths']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for paths');
assert.dom(PAGE.secretTab('Version History')).doesNotExist('Version History tab not shown');
@ -714,7 +714,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
// URL correct
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list`, 'lands on secrets list page');
// Breadcrumbs correct
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
// Title correct
assert.dom(PAGE.title).hasText(`${backend} version 2`);
// Tabs correct
@ -749,20 +749,20 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
await navToBackend(backend);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title text correct');
assert.dom(PAGE.emptyStateTitle).doesNotExist('No empty state');
assertCorrectBreadcrumbs(assert, ['secret', backend]);
assertCorrectBreadcrumbs(assert, ['Secret', backend]);
assert.dom(PAGE.list.filter).hasNoValue('List filter input is empty');
// Navigate through list items
await click(PAGE.list.item('app/'));
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/`);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app']);
assert.dom(PAGE.title).hasText(`${backend} version 2`);
assert.dom(PAGE.list.filter).hasValue('app/', 'List filter input is prefilled');
assert.dom(PAGE.list.item('nested/')).exists('Shows nested secret');
await click(PAGE.list.item('nested/'));
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/nested/`);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested']);
assert.dom(PAGE.title).hasText(`${backend} version 2`);
assert.dom(PAGE.list.filter).hasValue('app/nested/', 'List filter input is prefilled');
assert.dom(PAGE.list.item('secret')).exists('Shows deeply nested secret');
@ -773,7 +773,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/app%2Fnested%2Fsecret/details`,
`Goes to URL with version`
);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested', 'secret']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested', 'secret']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title is full secret path');
assertDetailsToolbar(assert, ['delete', 'destroy', 'versionDropdown']);
assert.dom(PAGE.detail.versionDropdown).hasText('Version 1', 'Shows version timestamp');
@ -837,7 +837,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/metadata`,
`goes to metadata page`
);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath);
assert
.dom(`${PAGE.metadata.customMetadataSection} ${PAGE.emptyStateTitle}`)
@ -853,7 +853,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/metadata/edit`,
`goes to metadata edit page`
);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata', 'edit']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata', 'edit']);
await click(FORM.cancelBtn);
assert.strictEqual(
currentURL(),
@ -866,32 +866,32 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
const backend = this.backend;
await navToBackend(backend);
await click(PAGE.secretTab('Configuration'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'configuration']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'configuration']);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for configuration');
await click(PAGE.secretTab('Secrets'));
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for secret list');
await click(PAGE.list.item(secretPath));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath]);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for secret detail');
await click(PAGE.secretTab('Metadata'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for metadata');
await click(PAGE.metadata.editBtn);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata', 'edit']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata', 'edit']);
assert.dom(PAGE.title).hasText('Edit Secret Metadata', 'correct page title for metadata edit');
await click(PAGE.breadcrumbAtIdx(3));
await click(PAGE.secretTab('Paths'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'paths']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'paths']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for paths');
await click(PAGE.secretTab('Version History'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'version history']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'version history']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for version history');
});
});
@ -917,7 +917,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
// URL correct
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list`, 'lands on secrets list page');
// Breadcrumbs correct
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
// Title correct
assert.dom(PAGE.title).hasText(`${backend} version 2`);
// Tabs correct
@ -954,7 +954,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
await navToBackend(backend);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title text correct');
assert.dom(PAGE.emptyStateTitle).doesNotExist('No empty state');
assertCorrectBreadcrumbs(assert, ['secret', backend]);
assertCorrectBreadcrumbs(assert, ['Secret', backend]);
assert.dom(PAGE.list.filter).doesNotExist('List filter input is not rendered');
// Navigate to secret
@ -966,7 +966,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/app%2Fnested%2Fsecret/details`,
'goes to secret detail page'
);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested', 'secret']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested', 'secret']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title is full secret path');
assertDetailsToolbar(assert, ['createNewVersion']);
@ -1052,7 +1052,7 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/metadata`,
`goes to metadata page`
);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath);
assert
.dom(`${PAGE.metadata.customMetadataSection} ${PAGE.emptyStateTitle}`)
@ -1064,32 +1064,32 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
const backend = this.backend;
await navToBackend(backend);
await click(PAGE.secretTab('Configuration'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'configuration']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'configuration']);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for configuration');
await click(PAGE.secretTab('Secrets'));
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for secret list');
await typeIn(PAGE.list.overviewInput, secretPath);
await click(PAGE.list.overviewButton);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath]);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for secret detail');
await click(PAGE.detail.createNewVersion);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'edit']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'edit']);
assert.dom(PAGE.title).hasText('Create New Version', 'correct page title for secret edit');
await click(PAGE.breadcrumbAtIdx(2));
await click(PAGE.secretTab('Metadata'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for metadata');
assert.dom(PAGE.metadata.editBtn).doesNotExist('cannot edit metadata');
await click(PAGE.breadcrumbAtIdx(2));
await click(PAGE.secretTab('Paths'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'paths']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'paths']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for paths');
assert.dom(PAGE.secretTab('Version History')).doesNotExist('Version History tab not shown');
@ -1130,20 +1130,20 @@ path "${this.backend}/*" {
await navToBackend(backend);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'title text correct');
assert.dom(PAGE.emptyStateTitle).doesNotExist('No empty state');
assertCorrectBreadcrumbs(assert, ['secret', backend]);
assertCorrectBreadcrumbs(assert, ['Secret', backend]);
assert.dom(PAGE.list.filter).hasNoValue('List filter input is empty');
// Navigate through list items
await click(PAGE.list.item('app/'));
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/`);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app']);
assert.dom(PAGE.title).hasText(`${backend} version 2`);
assert.dom(PAGE.list.filter).hasValue('app/', 'List filter input is prefilled');
assert.dom(PAGE.list.item('nested/')).exists('Shows nested secret');
await click(PAGE.list.item('nested/'));
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/nested/`);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested']);
assert.dom(PAGE.title).hasText(`${backend} version 2`);
assert.dom(PAGE.list.filter).hasValue('app/nested/', 'List filter input is prefilled');
assert.dom(PAGE.list.item('secret')).exists('Shows deeply nested secret');
@ -1173,7 +1173,7 @@ path "${this.backend}/*" {
`/vault/secrets/${backend}/kv/app%2Fnested%2Fsecret/details?version=1`,
'goes to secret details'
);
assertCorrectBreadcrumbs(assert, ['secret', backend, 'app', 'nested', 'secret']);
assertCorrectBreadcrumbs(assert, ['Secret', backend, 'app', 'nested', 'secret']);
assert.dom(PAGE.title).hasText('app/nested/secret', 'title is full secret path');
assertDetailsToolbar(assert, ['delete', 'copy', 'createNewVersion']);
@ -1197,11 +1197,11 @@ path "${this.backend}/*" {
const backend = this.backend;
await navToBackend(backend);
await click(PAGE.secretTab('Configuration'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, 'configuration']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, 'configuration']);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for configuration');
await click(PAGE.secretTab('Secrets'));
assertCorrectBreadcrumbs(assert, ['secrets', backend]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend]);
assert.dom(PAGE.title).hasText(`${backend} version 2`, 'correct page title for secret list');
await visit(`/vault/secrets/${backend}/kv/${secretPathUrlEncoded}/details`);
@ -1224,25 +1224,25 @@ path "${this.backend}/*" {
);
await click(PAGE.list.item(secretPath));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath]);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath]);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for secret detail');
await click(PAGE.secretTab('Metadata'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'metadata']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'metadata']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for metadata');
assert.dom(PAGE.metadata.editBtn).doesNotExist('cannot edit metadata');
await click(PAGE.breadcrumbAtIdx(2));
await click(PAGE.secretTab('Paths'));
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'paths']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'paths']);
assert.dom(PAGE.title).hasText(secretPath, 'correct page title for paths');
assert.dom(PAGE.secretTab('Version History')).doesNotExist('Version History tab not shown');
await click(PAGE.secretTab('Secret'));
await click(PAGE.detail.createNewVersion);
assertCorrectBreadcrumbs(assert, ['secrets', backend, secretPath, 'edit']);
assertCorrectBreadcrumbs(assert, ['Secrets', backend, secretPath, 'edit']);
assert.dom(PAGE.title).hasText('Create New Version', 'correct page title for secret edit');
});
});

View file

@ -18,7 +18,7 @@ export const createSecretsEngine = (store) => {
};
export const generateBreadcrumbs = (backend, childRoute) => {
const breadcrumbs = [{ label: 'secrets', route: 'secrets', linkExternal: true }];
const breadcrumbs = [{ label: 'Secrets', route: 'secrets', linkExternal: true }];
const root = { label: backend };
if (childRoute) {
root.route = 'overview';

View file

@ -42,7 +42,7 @@ module('Integration | Component | kubernetes | Page::Configuration', function (h
};
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.backend.id },
];

View file

@ -34,7 +34,7 @@ module('Integration | Component | kubernetes | Page::Configure', function (hooks
});
this.editModel = this.store.peekRecord('kubernetes/config', 'kubernetes-edit');
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: 'kubernetes', route: 'overview' },
{ label: 'configure' },
];

View file

@ -43,7 +43,7 @@ module('Integration | Component | kubernetes | Page::Overview', function (hooks)
this.backend = this.store.peekRecord('secret-engine', 'kubernetes-test');
this.roles = this.store.peekAll('kubernetes/role');
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.backend.id },
];
this.promptConfig = false;

View file

@ -36,7 +36,7 @@ module('Integration | Component | kubernetes | Page::Roles', function (hooks) {
this.roles = this.store.peekAll('kubernetes/role');
this.filterValue = '';
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.backend.id },
];
this.promptConfig = false;

View file

@ -27,14 +27,14 @@ module('Integration | Component | kubernetes | TabPageHeader', function (hooks)
});
this.model = this.store.peekRecord('secret-engine', 'kubernetes-test');
this.mount = this.model.path.slice(0, -1);
this.breadcrumbs = [{ label: 'secrets', route: 'secrets', linkExternal: true }, { label: this.mount }];
this.breadcrumbs = [{ label: 'Secrets', route: 'secrets', linkExternal: true }, { label: this.mount }];
});
test('it should render breadcrumbs', async function (assert) {
await render(hbs`<TabPageHeader @model={{this.model}} @breadcrumbs={{this.breadcrumbs}} />`, {
owner: this.engine,
});
assert.dom('[data-test-breadcrumbs] li:nth-child(1) a').hasText('secrets', 'Secrets breadcrumb renders');
assert.dom('[data-test-breadcrumbs] li:nth-child(1) a').hasText('Secrets', 'Secrets breadcrumb renders');
assert
.dom('[data-test-breadcrumbs] li:nth-child(2)')

View file

@ -34,7 +34,7 @@ module('Integration | Component | kv | kv-page-header', function (hooks) {
this.model = this.store.peekRecord('kv/data', this.id);
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.model.backend, route: 'secrets' },
{ label: this.model.path, route: 'secrets.secret.details', model: this.model.path },
{ label: 'edit' },
@ -46,7 +46,7 @@ module('Integration | Component | kv | kv-page-header', function (hooks) {
await render(hbs`<KvPageHeader @breadcrumbs={{this.breadcrumbs}} @pageTitle="Create new version"/>`, {
owner: this.engine,
});
assert.dom('[data-test-breadcrumbs] li:nth-child(1) a').hasText('secrets', 'Secrets breadcrumb renders');
assert.dom('[data-test-breadcrumbs] li:nth-child(1) a').hasText('Secrets', 'Secrets breadcrumb renders');
assert.dom('[data-test-breadcrumbs] li:nth-child(2) a').hasText(this.backend, 'engine name renders');
assert.dom('[data-test-breadcrumbs] li:nth-child(3) a').hasText(this.path, 'secret path renders');
assert

View file

@ -52,7 +52,7 @@ module('Integration | Component | kv-v2 | Page::Configuration', function (hooks)
};
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.model.mountConfig.path, route: 'list' },
{ label: 'configuration' },
];

View file

@ -59,7 +59,7 @@ module('Integration | Component | kv | Page::List', function (hooks) {
this.model.meta = META;
this.backend = 'kv-engine';
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.backend, route: 'list' },
];
this.failedDirectoryQuery = false;

View file

@ -56,7 +56,7 @@ module('Integration | Component | kv-v2 | Page::Secret::Metadata::Details', func
metadata: this.metadata,
};
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.model.backend, route: 'list' },
{ label: this.model.path },
];

View file

@ -41,7 +41,7 @@ module('Integration | Component | kv | Page::Secret::Metadata::Edit', function (
test('it renders all inputs for a model that has all default values', async function (assert) {
assert.expect(5);
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.metadataModelCreate.backend, route: 'list' },
{ label: this.metadataModelCreate.path, route: 'secret.details', model: this.metadataModelCreate.path },
{ label: 'metadata' },
@ -71,7 +71,7 @@ module('Integration | Component | kv | Page::Secret::Metadata::Edit', function (
test('it displays previous inputs from metadata record and saves new values', async function (assert) {
assert.expect(5);
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.metadataModelEdit.backend, route: 'list' },
{ label: this.metadataModelEdit.path, route: 'secret.details', model: this.metadataModelEdit.path },
{ label: 'metadata' },
@ -128,7 +128,7 @@ module('Integration | Component | kv | Page::Secret::Metadata::Edit', function (
test('it displays validation errors and does not save inputs on cancel', async function (assert) {
assert.expect(2);
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.metadataModelEdit.backend, route: 'list' },
{ label: this.metadataModelEdit.path, route: 'secret.details', model: this.metadataModelEdit.path },
{ label: 'metadata' },
@ -159,7 +159,7 @@ module('Integration | Component | kv | Page::Secret::Metadata::Edit', function (
assert.expect(1);
this.server.post('/sys/capabilities-self', allowAllCapabilitiesStub('list'));
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.metadataModelEdit.backend, route: 'list' },
{ label: this.metadataModelEdit.path, route: 'secret.details', model: this.metadataModelEdit.path },
{ label: 'metadata' },

View file

@ -79,7 +79,7 @@ module('Integration | Component | kv-v2 | Page::Secret::Details', function (hook
metadata: this.metadata,
};
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.model.backend, route: 'list' },
{ label: this.model.path },
];

View file

@ -33,7 +33,7 @@ module('Integration | Component | kv-v2 | Page::Secret::Edit', function (hooks)
casVersion: 1,
});
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.backend, route: 'list' },
{ label: 'edit' },
];

View file

@ -19,7 +19,7 @@ module('Integration | Component | kv-v2 | Page::Secret::Paths', function (hooks)
this.backend = 'kv-engine';
this.path = 'my-secret';
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.backend, route: 'list' },
{ label: this.path },
];

View file

@ -30,7 +30,7 @@ module('Integration | Component | kv-v2 | Page::Secrets::Create', function (hook
this.secret = this.store.createRecord('kv/data', { backend: this.backend, casVersion: 0 });
this.metadata = this.store.createRecord('kv/metadata', { backend: this.backend });
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.backend, route: 'list' },
{ label: 'create' },
];

View file

@ -36,7 +36,7 @@ module('Integration | Component | kv | Page::Secret::Metadata::Version-History',
});
this.metadata = store.peekRecord('kv/metadata', metadata.id);
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: this.metadata.backend, route: 'list' },
{ label: this.metadata.path, route: 'secret.details', model: this.metadata.path },
{ label: 'version history' },

View file

@ -27,14 +27,14 @@ module('Integration | Component | ldap | TabPageHeader', function (hooks) {
});
this.model = this.store.peekRecord('secret-engine', 'ldap-test');
this.mount = this.model.path.slice(0, -1);
this.breadcrumbs = [{ label: 'secrets', route: 'secrets', linkExternal: true }, { label: this.mount }];
this.breadcrumbs = [{ label: 'Secrets', route: 'secrets', linkExternal: true }, { label: this.mount }];
});
test('it should render breadcrumbs', async function (assert) {
await render(hbs`<TabPageHeader @model={{this.model}} @breadcrumbs={{this.breadcrumbs}} />`, {
owner: this.engine,
});
assert.dom('[data-test-breadcrumbs] li:nth-child(1) a').hasText('secrets', 'Secrets breadcrumb renders');
assert.dom('[data-test-breadcrumbs] li:nth-child(1) a').hasText('Secrets', 'Secrets breadcrumb renders');
assert
.dom('[data-test-breadcrumbs] li:nth-child(2)')

View file

@ -21,7 +21,7 @@ module('Integration | Component | page/pki-configure-create', function (hooks) {
this.store = this.owner.lookup('service:store');
this.cancelSpy = sinon.spy();
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: 'pki', route: 'overview', model: 'pki' },
{ label: 'configure' },
];

View file

@ -21,7 +21,7 @@ module('Integration | Component | page/pki-tidy-auto-settings', function (hooks)
this.store = this.owner.lookup('service:store');
this.breadcrumbs = [
{ label: 'secrets', route: 'secrets', linkExternal: true },
{ label: 'Secrets', route: 'secrets', linkExternal: true },
{ label: backend, route: 'overview', model: backend },
{ label: 'tidy', route: 'tidy.index', model: backend },
{ label: 'auto' },