mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	* #108 Add eslint-config-spt * #108 Ignore bundle.js file * #108 Change eslint ignore path to a glob file * Remove jshint and follow more of eslint rules
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 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"
 | |
|             }
 | |
|         },
 | |
|         {
 | |
|             "name": "featureArchivedX",
 | |
|             "description": "the #1 feature",
 | |
|             "enabled": true,
 | |
|             "archived": true,
 | |
|             "strategy": "default"
 | |
|         },
 | |
|         {
 | |
|             "name": "featureArchivedY",
 | |
|             "description": "soon to be the #1 feature",
 | |
|             "enabled": false,
 | |
|             "archived": true,
 | |
|             "strategy": "baz",
 | |
|             "parameters": {
 | |
|                 "foo": "bar"
 | |
|             }
 | |
|         },
 | |
|         {
 | |
|             "name": "featureArchivedZ",
 | |
|             "description": "terrible feature",
 | |
|             "enabled": true,
 | |
|             "archived": 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()]);
 | |
| }
 | |
| 
 | |
| function setupDatabase() {
 | |
|     return Promise.all([createStrategies(), createFeatures()]);
 | |
| }
 | |
| 
 | |
| module.exports = {
 | |
|     request: request,
 | |
|     db: {
 | |
|         reset: resetDatabase,
 | |
|         setup: setupDatabase,
 | |
|         resetAndSetup: function () {
 | |
|             return resetDatabase().then(setupDatabase);
 | |
|         }
 | |
|     }
 | |
| };
 |