mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-22 19:07:54 +01:00
d01c9d2dac
This drops usage of finn-eslint rules as they are no longer maintained.
151 lines
4.0 KiB
JavaScript
151 lines
4.0 KiB
JavaScript
/* eslint-disable no-console */
|
|
|
|
'use strict';
|
|
|
|
const test = require('ava');
|
|
const fs = require('fs');
|
|
const { createOptions } = require('./options');
|
|
|
|
delete process.env.DATABASE_URL;
|
|
|
|
test('should require DATABASE_URI', t => {
|
|
t.throws(() => {
|
|
createOptions({});
|
|
});
|
|
});
|
|
|
|
test('should use DATABASE_URL from env', t => {
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/name';
|
|
delete process.env.NODE_ENV;
|
|
process.env.DATABASE_URL = databaseUrl;
|
|
|
|
const options = createOptions({});
|
|
|
|
t.true(options.databaseUrl === databaseUrl);
|
|
});
|
|
|
|
test('should use DATABASE_URL_FILE from env', t => {
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/name';
|
|
const path = '/tmp/db_url';
|
|
fs.writeFileSync(path, databaseUrl, { mode: 0o755 });
|
|
delete process.env.NODE_ENV;
|
|
process.env.DATABASE_URL_FILE = path;
|
|
|
|
const options = createOptions({});
|
|
|
|
t.true(options.databaseUrl === databaseUrl);
|
|
});
|
|
|
|
test('should use databaseUrl from options', t => {
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/name';
|
|
|
|
const options = createOptions({ databaseUrl });
|
|
|
|
t.true(options.databaseUrl === databaseUrl);
|
|
});
|
|
|
|
test('should not override provided options', t => {
|
|
process.env.DATABASE_URL = 'postgres://test:5432/name';
|
|
process.env.NODE_ENV = 'production';
|
|
|
|
const options = createOptions({
|
|
databaseUrl: 'postgres://test:5432/name',
|
|
port: 1111,
|
|
});
|
|
|
|
t.true(options.databaseUrl === 'postgres://test:5432/name');
|
|
t.true(options.port === 1111);
|
|
});
|
|
|
|
test('should add listen options from host and port', t => {
|
|
const options = createOptions({
|
|
databaseUrl: 'postgres://test:5432/name',
|
|
port: 1111,
|
|
host: 'localhost',
|
|
});
|
|
|
|
t.deepEqual(options.listen, { port: 1111, host: 'localhost' });
|
|
});
|
|
|
|
test('should use pipe to path', t => {
|
|
const options = createOptions({
|
|
databaseUrl: 'postgres://test:5432/name',
|
|
port: 1111,
|
|
host: 'localhost',
|
|
pipe: '\\\\?\\pipe',
|
|
});
|
|
|
|
t.deepEqual(options.listen, { path: options.pipe });
|
|
});
|
|
|
|
test('should prefer databaseUrl from options', t => {
|
|
process.env.DATABASE_URL = 'postgres://test:5432/name';
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/options';
|
|
|
|
const options = createOptions({ databaseUrl });
|
|
|
|
t.deepEqual(options.databaseUrl, databaseUrl);
|
|
});
|
|
|
|
test('should expand databaseUrl from options', t => {
|
|
process.env.DATABASE_URL = 'postgres://test:5432/name';
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/options';
|
|
|
|
const options = createOptions({ databaseUrl });
|
|
|
|
t.deepEqual(options.db, {
|
|
database: 'options',
|
|
driver: 'postgres',
|
|
host: 'localhost',
|
|
password: 'p',
|
|
port: '5432',
|
|
user: 'u',
|
|
});
|
|
});
|
|
|
|
test('should validate getLogger', t => {
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/options';
|
|
const getLogger = () => {};
|
|
|
|
t.throws(() => {
|
|
createOptions({ databaseUrl, getLogger });
|
|
});
|
|
});
|
|
|
|
test('should accept custome log-provider', t => {
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/options';
|
|
const getLogger = () => ({
|
|
debug: console.log,
|
|
info: console.log,
|
|
warn: console.log,
|
|
error: console.log,
|
|
});
|
|
const options = createOptions({ databaseUrl, getLogger });
|
|
|
|
t.deepEqual(options.getLogger, getLogger);
|
|
});
|
|
|
|
test('should prefer custom db connection options', t => {
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/options';
|
|
const db = {
|
|
user: 'db_user',
|
|
password: 'db_password',
|
|
host: 'db-host',
|
|
port: 3232,
|
|
database: 'db_database',
|
|
ssl: false,
|
|
driver: 'postgres',
|
|
};
|
|
const options = createOptions({ databaseUrl, db });
|
|
|
|
t.deepEqual(options.db, db);
|
|
});
|
|
|
|
test('should baseUriPath', t => {
|
|
const databaseUrl = 'postgres://u:p@localhost:5432/options';
|
|
const baseUriPath = 'some';
|
|
const options = createOptions({ databaseUrl, baseUriPath });
|
|
|
|
t.deepEqual(options.baseUriPath, baseUriPath);
|
|
});
|