open-vault/ui/tests/integration/components/pki/pki-role-generate-test.js
Hamid Ghaf 27bb03bbc0
adding copyright header (#19555)
* adding copyright header

* fix fmt and a test
2023-03-15 09:00:52 -07:00

78 lines
2.8 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, fillIn } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { setupMirage } from 'ember-cli-mirage/test-support';
import { setupEngine } from 'ember-engines/test-support';
import Sinon from 'sinon';
import { SELECTORS } from 'vault/tests/helpers/pki/pki-role-generate';
import { allowAllCapabilitiesStub } from 'vault/tests/helpers/stubs';
module('Integration | Component | pki-role-generate', function (hooks) {
setupRenderingTest(hooks);
setupMirage(hooks);
setupEngine(hooks, 'pki');
hooks.beforeEach(async function () {
this.server.post('/sys/capabilities-self', allowAllCapabilitiesStub());
this.store = this.owner.lookup('service:store');
this.secretMountPath = this.owner.lookup('service:secret-mount-path');
this.secretMountPath.currentPath = 'pki-test';
this.model = this.store.createRecord('pki/certificate/generate', {
role: 'my-role',
});
this.onSuccess = Sinon.spy();
});
test('it should render the component with the form by default', async function (assert) {
assert.expect(4);
await render(
hbs`
<div class="has-top-margin-xxl">
<PkiRoleGenerate
@model={{this.model}}
@onSuccess={{this.onSuccess}}
/>
</div>
`,
{ owner: this.engine }
);
assert.dom(SELECTORS.form).exists('shows the cert generate form');
assert.dom(SELECTORS.commonNameField).exists('shows the common name field');
assert.dom(SELECTORS.optionsToggle).exists('toggle exists');
await fillIn(SELECTORS.commonNameField, 'example.com');
assert.strictEqual(this.model.commonName, 'example.com', 'Filling in the form updates the model');
});
test('it should render the component displaying the cert', async function (assert) {
assert.expect(5);
const record = this.store.createRecord('pki/certificate/generate', {
role: 'my-role',
serialNumber: 'abcd-efgh-ijkl',
certificate: 'my-very-cool-certificate',
});
this.set('model', record);
await render(
hbs`
<div class="has-top-margin-xxl">
<PkiRoleGenerate
@model={{this.model}}
@onSuccess={{this.onSuccess}}
/>
</div>
`,
{ owner: this.engine }
);
assert.dom(SELECTORS.form).doesNotExist('Does not show the form');
assert.dom(SELECTORS.downloadButton).exists('shows the download button');
assert.dom(SELECTORS.revokeButton).exists('shows the revoke button');
assert.dom(SELECTORS.certificate).exists({ count: 1 }, 'shows certificate info row');
assert.dom(SELECTORS.serialNumber).hasText('abcd-efgh-ijkl', 'shows serial number info row');
});
});