maidn-e2e-secret/test/health.test.js

27 lines
1 KiB
JavaScript

const assert = require('node:assert/strict');
const test = require('node:test');
const { isReady } = require('../dist/health.js');
test('readiness requires the secret and a successful database query', async () => {
const secret = process.env.E2E_SECRET;
const databaseUrl = process.env.DATABASE_URL;
try {
delete process.env.E2E_SECRET;
assert.equal(await isReady(async () => assert.fail('query should not run')), false);
process.env.E2E_SECRET = 'configured';
delete process.env.DATABASE_URL;
assert.equal(await isReady(async () => assert.fail('query should not run')), false);
process.env.DATABASE_URL = 'postgres://example';
assert.equal(await isReady(async () => {}), true);
assert.equal(await isReady(async () => { throw new Error('unavailable'); }), false);
} finally {
if (secret === undefined) delete process.env.E2E_SECRET;
else process.env.E2E_SECRET = secret;
if (databaseUrl === undefined) delete process.env.DATABASE_URL;
else process.env.DATABASE_URL = databaseUrl;
}
});