1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/test/specHelper.js
Jari Bakken 1aca1aac15 Remove spec for EventStore.
This code is well covered anyway, and the test is causing trouble
since emitting the featureCreated event is causing side effects through
other listeners.
2020-02-20 08:30:19 +01:00

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); }
}
};