mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-19 13:41:10 +02:00
* Track the last PKI auto-tidy time ran for use across nodes - If the interval time for auto-tidy is longer then say a regularly scheduled restart of Vault, auto-tidy is never run. This is due to the time of the last run of tidy is only kept in memory and initialized on startup to the current time - Store the last run of any tidy, to maintain previous behavior, to a cluster local file, which is read in/initialized upon a mount initialization. * Add auto-tidy configuration fields for backing off at startup * Add new auto-tidy fields to UI * Update api docs for auto-tidy * Add cl * Update field description text * Apply Claire's suggestions from code review Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> * Implementing PR feedback from the UI team * remove explicit defaults and types so we retrieve from backend, decouple enabling auto tidy from duration, move params to auto settings section --------- Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> Co-authored-by: claire bontempo <cbontempo@hashicorp.com>
76 lines
2.9 KiB
JavaScript
76 lines
2.9 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { module, test } from 'qunit';
|
|
import { setupRenderingTest } from 'vault/tests/helpers';
|
|
import { render } from '@ember/test-helpers';
|
|
import { hbs } from 'ember-cli-htmlbars';
|
|
import { setupEngine } from 'ember-engines/test-support';
|
|
|
|
module('Integration | Component | page/pki-tidy-auto-settings', function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
setupEngine(hooks, 'pki');
|
|
|
|
hooks.beforeEach(function () {
|
|
const backend = 'pki-auto-tidy';
|
|
this.backend = backend;
|
|
|
|
this.context = { owner: this.engine };
|
|
this.store = this.owner.lookup('service:store');
|
|
|
|
this.breadcrumbs = [
|
|
{ label: 'Secrets', route: 'secrets', linkExternal: true },
|
|
{ label: backend, route: 'overview', model: backend },
|
|
{ label: 'tidy', route: 'tidy.index', model: backend },
|
|
{ label: 'auto' },
|
|
];
|
|
});
|
|
|
|
test('it renders', async function (assert) {
|
|
const model = this.store.createRecord('pki/tidy', {
|
|
backend: this.backend,
|
|
tidyType: 'auto',
|
|
enabled: false,
|
|
intervalDuration: '2d',
|
|
tidyCertStore: false,
|
|
tidyExpiredIssuers: true,
|
|
});
|
|
this.set('model', model);
|
|
|
|
await render(
|
|
hbs`<Page::PkiTidyAutoSettings @breadcrumbs={{this.breadcrumbs}} @model={{this.model}} />`,
|
|
this.context
|
|
);
|
|
|
|
assert.dom('[data-test-breadcrumbs] li').exists({ count: 4 }, 'an item exists for each breadcrumb');
|
|
assert.dom('[data-test-header-title]').hasText('Automatic Tidy Configuration', 'title is correct');
|
|
assert
|
|
.dom('[data-test-pki-edit-tidy-auto-link]')
|
|
.hasText('Edit auto-tidy', 'toolbar edit link has correct text');
|
|
|
|
assert.dom('[data-test-row="enabled"] [data-test-label-div]').hasText('Automatic tidy enabled');
|
|
assert.dom('[data-test-value-div="Automatic tidy enabled"]').hasText('No');
|
|
assert.dom('[data-test-value-div="Interval duration"]').hasText('2 days');
|
|
// Universal operations
|
|
assert.dom('[data-test-group-title="Universal operations"]').hasText('Universal operations');
|
|
assert
|
|
.dom('[data-test-value-div="Tidy the certificate store"]')
|
|
.exists('Renders universal field when value exists');
|
|
assert.dom('[data-test-value-div="Tidy the certificate store"]').hasText('No');
|
|
assert
|
|
.dom('[data-test-value-div="Tidy revoked certificates"]')
|
|
.doesNotExist('Does not render universal field when value null');
|
|
// Issuer operations
|
|
assert.dom('[data-test-group-title="Issuer operations"]').hasText('Issuer operations');
|
|
assert
|
|
.dom('[data-test-value-div="Tidy expired issuers"]')
|
|
.exists('Renders issuer op field when value exists');
|
|
assert.dom('[data-test-value-div="Tidy expired issuers"]').hasText('Yes');
|
|
assert
|
|
.dom('[data-test-value-div="Tidy legacy CA bundle"]')
|
|
.doesNotExist('Does not render issuer op field when value null');
|
|
});
|
|
});
|