mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-16 19:47:02 +02:00
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import { click, fillIn, visit } from '@ember/test-helpers';
|
|
import { FORM } from './kv-selectors';
|
|
|
|
// CUSTOM ACTIONS RELEVANT TO KV-V2
|
|
|
|
export const writeSecret = async function (backend, path, key, val) {
|
|
await visit(`vault/secrets/${backend}/kv/create`);
|
|
await fillIn(FORM.inputByAttr('path'), path);
|
|
await fillIn(FORM.keyInput(), key);
|
|
await fillIn(FORM.maskedValueInput(), val);
|
|
return click(FORM.saveBtn);
|
|
};
|
|
|
|
export const writeVersionedSecret = async function (backend, path, key, val, version = 2) {
|
|
await writeSecret(backend, path, 'key-1', 'val-1');
|
|
for (let currentVersion = 2; currentVersion <= version; currentVersion++) {
|
|
await visit(`/vault/secrets/${backend}/kv/${encodeURIComponent(path)}/details/edit`);
|
|
if (currentVersion === version) {
|
|
await fillIn(FORM.keyInput(), key);
|
|
await fillIn(FORM.maskedValueInput(), val);
|
|
} else {
|
|
await fillIn(FORM.keyInput(), `key-${currentVersion}`);
|
|
await fillIn(FORM.maskedValueInput(), `val-${currentVersion}`);
|
|
}
|
|
await click(FORM.saveBtn);
|
|
}
|
|
return;
|
|
};
|
|
|
|
export const addSecretMetadataCmd = (backend, secret, options = { max_versions: 10 }) => {
|
|
const stringOptions = Object.keys(options).reduce((prev, curr) => {
|
|
return `${prev} ${curr}=${options[curr]}`;
|
|
}, '');
|
|
return `write ${backend}/metadata/${secret} ${stringOptions}`;
|
|
};
|
|
|
|
// Clears kv-related data and capabilities so that admin
|
|
// capabilities from setup don't rollover
|
|
export function clearRecords(store) {
|
|
store.unloadAll('kv/data');
|
|
store.unloadAll('kv/metatata');
|
|
store.unloadAll('capabilities');
|
|
}
|