/* 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 { let 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 { if (process.argv[2] === '--browserstack') { await testHelper.run('ember', ['browserstack:connect']); try { await testHelper.run('ember', ['test', '-f=secrets/secret/create', '-c', 'testem.browserstack.js']); console.log('success'); process.exit(0); } finally { if (process.env.CI === 'true') { await testHelper.run('ember', ['browserstack:results']); } await testHelper.run('ember', ['browserstack:disconnect']); } } else { 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); } })();