From f7a89b82239299d8e872b551a29b6be2d68a6c40 Mon Sep 17 00:00:00 2001 From: ivaosthu Date: Thu, 1 Dec 2016 00:42:14 +0100 Subject: [PATCH] more tests --- lib/event-differ.test.js | 16 ++++++++++++---- lib/options.js | 10 ++++++++-- lib/options.test.js | 32 ++++++++++++++++++++++++++++++++ package.json | 2 +- 4 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 lib/options.test.js diff --git a/lib/event-differ.test.js b/lib/event-differ.test.js index 56d96b02b3..4565171008 100644 --- a/lib/event-differ.test.js +++ b/lib/event-differ.test.js @@ -37,10 +37,18 @@ test('diffs a feature-update event', t => { eventDiffer.addDiffs(events); - t.deepEqual(events[0].diffs, [ - { kind: 'E', path: ['enabled'], lhs: false, rhs: true }, - { kind: 'E', path: ['parameters', 'value'], lhs: 1, rhs: 2 }, - ]); + const diffs = events[0].diffs; + t.true(diffs[0].kind === 'E'); + t.true(diffs[0].path[0] === 'enabled'); + t.true(diffs[0].kind === 'E'); + t.true(diffs[0].lhs === false); + t.true(diffs[0].rhs); + + t.true(diffs[1].kind === 'E'); + t.true(diffs[1].path[0] === 'parameters'); + t.true(diffs[1].path[1] === 'value'); + t.true(diffs[1].kind === 'E'); + t.true(diffs[1].lhs === 1); t.true(events[1].diffs === null); }); diff --git a/lib/options.js b/lib/options.js index 0866269748..ff5a46a007 100644 --- a/lib/options.js +++ b/lib/options.js @@ -1,7 +1,7 @@ 'use strict'; const DEFAULT_OPTIONS = { - databaseUri: process.env.DATABASE_URL || 'postgres://unleash_user:passord@localhost:5432/unleash', + databaseUri: process.env.DATABASE_URL, port: process.env.HTTP_PORT || process.env.PORT || 4242, baseUriPath: process.env.BASE_URI_PATH || '', serverMetrics: true, @@ -10,7 +10,13 @@ const DEFAULT_OPTIONS = { module.exports = { createOptions: (opts) => { const options = Object.assign({}, DEFAULT_OPTIONS, opts); - if (!options.databaseUri) { + + // If we are running in development we should assume local db + if(process.env.NODE_ENV === 'development' && !options.databaseUri) { + options.databaseUri = 'postgres://unleash_user:passord@localhost:5432/unleash'; + } + + if (!options.databaseUri) { throw new Error('You must either pass databaseUri option or set environemnt variable DATABASE_URL'); } return options; diff --git a/lib/options.test.js b/lib/options.test.js new file mode 100644 index 0000000000..2dc69b2f1a --- /dev/null +++ b/lib/options.test.js @@ -0,0 +1,32 @@ +'use strict'; + +const test = require('ava'); + +delete process.env.DATABASE_URL; +const { createOptions } = require('./options'); + +test('should require DATABASE_URI', t => { + t.throws(() => { + const options = createOptions({}); + }); +}); + +test('should set default databaseUri for develpment', t => { + process.env.NODE_ENV = 'development'; + const { createOptions } = require('./options'); + + const options = createOptions({}); + + t.true(options.databaseUri === 'postgres://unleash_user:passord@localhost:5432/unleash'); +}); + +test('should not override provided options', t => { + process.env.DATABASE_URL = 'test'; + process.env.NODE_ENV = 'production'; + + const { createOptions } = require('./options'); + const options = createOptions({databaseUri: 'test', port: 1111}); + + t.true(options.databaseUri === 'test'); + t.true(options.port === 1111); +}); \ No newline at end of file diff --git a/package.json b/package.json index e8272beec9..0cc8ab0957 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "start:dev:pg-chain": "export DATABASE_URL=postgres://$PGUSER:$PGPASSWORD@localhost:$PGPORT/postgres ; db-migrate up && npm run start:dev", "db-migrate": "db-migrate up", "db-migrate:down": "db-migrate down", - "test": "PORT=4243 ava test lib/*/*.test.js", + "test": "PORT=4243 ava test lib/*.test.js lib/**/*.test.js", "test:docker": "./scripts/docker-postgres.sh", "test:watch": "npm run test -- --watch", "test:pg-virtualenv": "pg_virtualenv npm run test:pg-virtualenv-chai",