hashi-vault-js
Version:
A node.js module to interact with the Hashicorp Vault API.
63 lines (52 loc) • 1.91 kB
JavaScript
// Jest unit test for Vault.js
// Vault seal/unseal
// This test will check the seal status of the Vault server, unseal it if it is sealed, and seal it again.
// npm run test:sys-seal
import Vault from '../src/Vault.js';
const ClientCert = process.env.CLIENT_CERT;
const ClientKey = process.env.CLIENT_KEY;
const CACert = process.env.CA_CERT;
const VaultUrl = process.env.VAULT_URL;
const RootPath = process.env.ROOT_PATH;
const RootToken = process.env.VAULT_ROOT_TOKEN;
const VaultUnsealKey1 = process.env.VAULT_UNSEAL_KEY1;
const VaultUnsealKey2 = process.env.VAULT_UNSEAL_KEY2;
const VaultUnsealKey3 = process.env.VAULT_UNSEAL_KEY3;
const vault = new Vault( {
https: true,
cert: ClientCert,
key: ClientKey,
cacert: CACert,
baseUrl: VaultUrl,
rootPath: RootPath,
timeout: 1000,
proxy: false
});
let sealed = false;
//TODO: Improve expected data assertion on all tests
test('the result is status of Vault seal', async () => {
const data = await vault.sealStatus();
//console.log(data);
sealed = data.sealed;
return expect(data).toBeDefined();
});
test('the result is a sealed Vault', async () => {
const data = await vault.sysSeal(RootToken);
//console.log(data);
return expect(data).toBeDefined();
});
test('the result is a accepted unseal key 1 shard', async () => {
const data = await vault.sysUnseal(RootToken, VaultUnsealKey1, false, false);
//console.log(data);
return expect(data).toBeDefined();
});
test('the result is a accepted unseal key 2 shard', async () => {
const data = await vault.sysUnseal(RootToken, VaultUnsealKey2, false, false);
//console.log(data);
return expect(data).toBeDefined();
});
test('the result is a accepted unseal key 3 shard', async () => {
const data = await vault.sysUnseal(RootToken, VaultUnsealKey3, false, false);
//console.log(data);
return expect(data).toBeDefined();
});