mirror of
https://github.com/hashicorp/vault.git
synced 2025-09-11 00:41:09 +02:00
* new font and add as font-family to be used in masked-input * clean up logic * refactor for displayOnly * start cert masking * work on certificates * upload cert work * fix global styling * fix styling for class no longer used * make mask by default and remove option * glimmerize start and certificate on LDAP a file field * glimmerize actions * first part of glimmerizing text-file still need to do some clean up * not doing awesome over here * getting ready to un-glimmer * unglimmerize * remove placeholder based on conversations with design * clean up text-file * cleanup * fix class bindings * handle class binding * set up for test * fix elementId * track down index * update masked-input test * add more to the masked-input test * test-file test * fix broken test * clear old style * clean up * remove pgp key masked font, this really needs to be refactored to text-file component * changelog * cover other certificate view * add allowCopy * address some pr styling comments * improve test coverage * fix some issues * add attr.options.masked
95 lines
4.0 KiB
JavaScript
95 lines
4.0 KiB
JavaScript
import { currentRouteName, settled, click } from '@ember/test-helpers';
|
|
import { module, test } from 'qunit';
|
|
import { setupApplicationTest } from 'ember-qunit';
|
|
import editPage from 'vault/tests/pages/secrets/backend/pki/edit-role';
|
|
import listPage from 'vault/tests/pages/secrets/backend/list';
|
|
import generatePage from 'vault/tests/pages/secrets/backend/pki/generate-cert';
|
|
import configPage from 'vault/tests/pages/settings/configure-secret-backends/pki/section-cert';
|
|
import enablePage from 'vault/tests/pages/settings/mount-secret-backend';
|
|
import authPage from 'vault/tests/pages/auth';
|
|
|
|
module('Acceptance | secrets/pki/list?tab=certs', function(hooks) {
|
|
setupApplicationTest(hooks);
|
|
|
|
hooks.beforeEach(function() {
|
|
return authPage.login();
|
|
});
|
|
// important for this comment to stay here otherwise the formatting mangles the CSR
|
|
// prettier-ignore
|
|
const CSR = `-----BEGIN CERTIFICATE REQUEST-----
|
|
MIICdDCCAVwCAQAwDjEMMAoGA1UEAxMDbG9sMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
|
AQ8AMIIBCgKCAQEA4Dz2b/nAP/M6bqyk5mctqqYAAcoME//xPBy0wREHuZ776Pu4
|
|
l45kDL3dPXiY8U2P9pn8WIr2KpLK6oWUfSsiG2P082bpWDL20UymkWqDhhrA4unf
|
|
ZRq68UIDbcetlLw15YKnlNdvNZ7Qr8Se8KV0YGR/wFqI7QfS6VE3lhxZWEBUayI0
|
|
egqOuDbXAcZTON1AZ92/F+WFSbc43iYdDk16XfAPFKhtvLr6zQQuzebAb7HG04Hc
|
|
GhRskixxyJ8XY6XUplfsa1HcpUXE4f1GeUvq3g6ltVCSJ0p7qI9FFjV4t+DCLVVV
|
|
LnwHUi9Vzz6i2wjMt7P6+gHR+RrOWBgRMn38fwIDAQABoCEwHwYJKoZIhvcNAQkO
|
|
MRIwEDAOBgNVHREEBzAFggNsb2wwDQYJKoZIhvcNAQELBQADggEBAAm3AHQ1ctdV
|
|
8HCrMOXGVLgI2cB1sFd6VYVxPBxIk812Y4wyO8Q6POE5VZNTIgMcSeIaFu5lgHNL
|
|
Peeb54F+zEa+OJYkcWgCAX5mY/0HoML4p2bxFTSjllSpcX7ktjq4IEIY/LRpqSgc
|
|
jgZHHRwanFfkeIOhN4Q5qJWgBPNhDAcNPE7T0M/4mxqYDqMSJvMYmC67hq1UOOug
|
|
/QVDUDJRC1C0aDw9if+DbG/bt1V6HpMQhDIEUjzfu4zG8pcag3cJpOA8JhW1hnG0
|
|
XA2ZOCA7s34/szr2FczXtIoKiYmv3UzPyO9/4mc0Q2+/nR4CG8NU9WW/XJCne9ID
|
|
elRplAzrMF4=
|
|
-----END CERTIFICATE REQUEST-----`;
|
|
|
|
// mount, generate CA, nav to create role page
|
|
const setup = async (assert, action = 'issue') => {
|
|
const path = `pki-${new Date().getTime()}`;
|
|
const roleName = 'role';
|
|
await enablePage.enable('pki', path);
|
|
await settled();
|
|
await configPage.visit({ backend: path }).form.generateCA();
|
|
await settled();
|
|
await editPage.visitRoot({ backend: path });
|
|
await settled();
|
|
await editPage.createRole('role', 'example.com');
|
|
await settled();
|
|
await generatePage.visit({ backend: path, id: roleName, action });
|
|
await settled();
|
|
return path;
|
|
};
|
|
|
|
test('it issues a cert', async function(assert) {
|
|
await setup(assert);
|
|
await settled();
|
|
await generatePage.issueCert('foo');
|
|
await settled();
|
|
let countMaskedFonts = document.querySelectorAll('.masked-font').length;
|
|
assert.equal(countMaskedFonts, 3); // certificate, issuing ca, and private key
|
|
let firstUnMaskButton = document.querySelectorAll('.masked-input-toggle')[0];
|
|
await click(firstUnMaskButton);
|
|
assert.dom('.masked-value').hasTextContaining('-----BEGIN CERTIFICATE-----');
|
|
await settled();
|
|
await generatePage.back();
|
|
await settled();
|
|
assert.notOk(generatePage.commonNameValue, 'the form is cleared');
|
|
});
|
|
|
|
test('it signs a csr', async function(assert) {
|
|
await setup(assert, 'sign');
|
|
await settled();
|
|
await generatePage.sign('common', CSR);
|
|
await settled();
|
|
let firstUnMaskButton = document.querySelectorAll('.masked-input-toggle')[0];
|
|
await click(firstUnMaskButton);
|
|
assert.dom('.masked-value').hasTextContaining('-----BEGIN CERTIFICATE-----');
|
|
});
|
|
|
|
test('it views a cert', async function(assert) {
|
|
const path = await setup(assert);
|
|
await generatePage.issueCert('foo');
|
|
await settled();
|
|
await listPage.visitRoot({ backend: path, tab: 'certs' });
|
|
await settled();
|
|
assert.ok(listPage.secrets.length > 0, 'lists certs');
|
|
|
|
await listPage.secrets.objectAt(0).click();
|
|
await settled();
|
|
assert.equal(currentRouteName(), 'vault.cluster.secrets.backend.show', 'navigates to the show page');
|
|
let firstUnMaskButton = document.querySelectorAll('.masked-input-toggle')[0];
|
|
await click(firstUnMaskButton);
|
|
assert.dom('.masked-value').hasTextContaining('-----BEGIN CERTIFICATE-----');
|
|
});
|
|
});
|