1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-31 00:16:47 +01:00

Test refactoring:

* reduce setup duplication
* consistent test file names
This commit is contained in:
Jari Bakken 2014-11-25 14:41:11 +01:00 committed by Ivar Conradi Østhus
parent 7f7732a349
commit 479ea0772a
6 changed files with 81 additions and 104 deletions

View File

@ -1,42 +0,0 @@
var request = require('supertest'),
mockery = require('mockery');
describe('The event api', function () {
var server;
before(function () {
mockery.enable({
warnOnReplace: false,
warnOnUnregistered: false,
useCleanCache: true
});
mockery.registerSubstitute('./eventDb', '../test/eventDbMock');
mockery.registerSubstitute('./featureDb', '../test/featureDbMock');
mockery.registerSubstitute('./strategyDb', '../test/strategyDbMock');
server = require('../server');
request = request('http://localhost:' + server.app.get('port'));
});
after(function () {
mockery.disable();
mockery.deregisterAll();
server.server.close();
});
it('returns events', function (done) {
request
.get('/events')
.expect('Content-Type', /json/)
.expect(200, done);
});
it('returns events given a name', function (done) {
request
.get('/events/myname')
.expect('Content-Type', /json/)
.expect(200, done);
});
});

23
test/eventApiSpec.js Normal file
View File

@ -0,0 +1,23 @@
var specHelper = require('./specHelper');
describe('The event api', function () {
var request;
before(function () { request = specHelper.setupMockServer(); });
after(specHelper.tearDownMockServer);
it('returns events', function (done) {
request
.get('/events')
.expect('Content-Type', /json/)
.expect(200, done);
});
it('returns events given a name', function (done) {
request
.get('/events/myname')
.expect('Content-Type', /json/)
.expect(200, done);
});
});

View File

@ -1,29 +1,10 @@
var request = require('supertest'); var specHelper = require('./specHelper');
var mockery = require('mockery');
describe('The api', function () { describe('The features api', function () {
var server; var request;
before(function () { before(function () { request = specHelper.setupMockServer(); });
mockery.enable({ after(specHelper.tearDownMockServer);
warnOnReplace: false,
warnOnUnregistered: false,
useCleanCache: true
});
mockery.registerSubstitute('./eventDb', '../test/eventDbMock');
mockery.registerSubstitute('./featureDb', '../test/featureDbMock');
mockery.registerSubstitute('./strategyDb', '../test/strategyDbMock');
server = require('../server');
request = request('http://localhost:' + server.app.get('port'));
});
after(function () {
mockery.disable();
mockery.deregisterAll();
server.server.close();
});
it('returns three mocked feature toggles', function (done) { it('returns three mocked feature toggles', function (done) {
request request

18
test/routerSpec.js Normal file
View File

@ -0,0 +1,18 @@
var specHelper = require('./specHelper');
describe('The routes', function () {
var request;
before(function () { request = specHelper.setupMockServer(); });
after(specHelper.tearDownMockServer);
describe('healthcheck', function () {
it('returns health good', function (done) {
request.get('/health')
.expect('Content-Type', /json/)
.expect(200)
.expect('{"health":"GOOD"}', done);
});
});
});

View File

@ -1,38 +0,0 @@
var request = require('supertest'),
mockery = require('mockery');
describe('The routes', function () {
var server;
before(function () {
mockery.enable({
warnOnReplace: false,
warnOnUnregistered: false,
useCleanCache: true
});
mockery.registerSubstitute('./eventDb', '../test/eventDbMock');
mockery.registerSubstitute('./featureDb', '../test/featureDbMock');
mockery.registerSubstitute('./strategyDb', '../test/strategyDbMock');
server = require('../server');
request = request('http://localhost:' + server.app.get('port'));
});
after(function () {
mockery.disable();
mockery.deregisterAll();
server.server.close();
});
describe('healthcheck', function () {
it('returns health good', function (done) {
request.get('/health')
.expect('Content-Type', /json/)
.expect(200)
.expect('{"health":"GOOD"}', done);
});
});
});

35
test/specHelper.js Normal file
View File

@ -0,0 +1,35 @@
var request = require('supertest');
var mockery = require('mockery');
var server;
function setupMockServer() {
mockery.enable({
warnOnReplace: false,
warnOnUnregistered: false,
useCleanCache: true
});
mockery.registerSubstitute('./eventDb', '../test/eventDbMock');
mockery.registerSubstitute('./featureDb', '../test/featureDbMock');
mockery.registerSubstitute('./strategyDb', '../test/strategyDbMock');
server = require('../server');
return request('http://localhost:' + server.app.get('port'));
}
function tearDownMockServer() {
mockery.disable();
mockery.deregisterAll();
if (server) {
server.server.close();
server = null;
}
}
module.exports = {
setupMockServer: setupMockServer,
tearDownMockServer: tearDownMockServer
};