/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ /* eslint-env node */ /* eslint-disable no-console */ /* eslint-disable no-process-exit */ /* eslint-disable node/no-extraneous-require */ var readline = require('readline'); const testHelper = require('./test-helper'); var output = ''; var unseal, root, written, initError; async function processLines(input, eachLine = () => {}) { const rl = readline.createInterface({ input, terminal: true, }); for await (const line of rl) { eachLine(line); } } (async function () { try { const vault = testHelper.run( 'vault', [ 'server', '-dev', '-dev-ha', '-dev-transactional', '-dev-root-token-id=root', '-dev-listen-address=127.0.0.1:9200', ], false ); processLines(vault.stdout, function (line) { if (written) { output = null; return; } output = output + line; var unsealMatch = output.match(/Unseal Key: (.+)$/m); if (unsealMatch && !unseal) { unseal = [unsealMatch[1]]; } var rootMatch = output.match(/Root Token: (.+)$/m); if (rootMatch && !root) { root = rootMatch[1]; } var errorMatch = output.match(/Error initializing core: (.*)$/m); if (errorMatch) { initError = errorMatch[1]; } if (root && unseal && !written) { testHelper.writeKeysFile(unseal, root); written = true; console.log('VAULT SERVER READY'); } else if (initError) { console.log('VAULT SERVER START FAILED'); console.log( 'If this is happening, run `export VAULT_LICENSE_PATH=/Users/username/license.hclic` to your valid local vault license filepath, or use OSS Vault' ); process.exit(1); } }); try { await testHelper.run('ember', ['test', ...process.argv.slice(2)]); } catch (error) { console.log(error); process.exit(1); } finally { process.exit(0); } } catch (error) { console.log(error); process.exit(1); } })();