mirror of
https://github.com/Unleash/unleash.git
synced 2024-10-18 20:09:08 +02:00
1aca1aac15
This code is well covered anyway, and the test is causing trouble since emitting the featureCreated event is causing side effects through other listeners.
81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
process.env.NODE_ENV = 'test';
|
|
|
|
var Promise = require('bluebird');
|
|
var request = require('supertest');
|
|
var app = require('../app');
|
|
var knex = require('../lib/dbPool');
|
|
var featureDb = require('../lib/featureDb');
|
|
var strategyDb = require('../lib/strategyDb');
|
|
|
|
Promise.promisifyAll(request);
|
|
request = request(app);
|
|
|
|
function createStrategies() {
|
|
return Promise.map([
|
|
{
|
|
name: "default",
|
|
description: "Default on or off Strategy."
|
|
},
|
|
{
|
|
name: "usersWithEmail",
|
|
description: "Active for users defined in the comma-separated emails-parameter.",
|
|
parametersTemplate: {
|
|
emails: "String"
|
|
}
|
|
}
|
|
], function (strategy) { return strategyDb._createStrategy(strategy); });
|
|
}
|
|
|
|
function createFeatures() {
|
|
return Promise.map([
|
|
{
|
|
"name": "featureX",
|
|
"description": "the #1 feature",
|
|
"enabled": true,
|
|
"strategy": "default"
|
|
},
|
|
{
|
|
"name": "featureY",
|
|
"description": "soon to be the #1 feature",
|
|
"enabled": false,
|
|
"strategy": "baz",
|
|
"parameters": {
|
|
"foo": "bar"
|
|
}
|
|
},
|
|
{
|
|
"name": "featureZ",
|
|
"description": "terrible feature",
|
|
"enabled": true,
|
|
"strategy": "baz",
|
|
"parameters": {
|
|
"foo": "rab"
|
|
}
|
|
}
|
|
], function (feature) { return featureDb._createFeature(feature); });
|
|
}
|
|
|
|
function destroyStrategies() {
|
|
return knex('strategies').del();
|
|
}
|
|
|
|
function destroyFeatures() {
|
|
return knex('features').del();
|
|
}
|
|
|
|
function resetDatabase() {
|
|
return Promise.all([destroyStrategies(), destroyFeatures()]).then(function (values) { console.log(values); });
|
|
}
|
|
|
|
function setupDatabase() {
|
|
return Promise.all([createStrategies(), createFeatures()]);
|
|
}
|
|
|
|
module.exports = {
|
|
request: request,
|
|
db: {
|
|
reset: resetDatabase,
|
|
setup: setupDatabase,
|
|
resetAndSetup: function () { return resetDatabase().then(setupDatabase); }
|
|
}
|
|
}; |