mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-28 00:06:53 +01:00
76 lines
2.0 KiB
JavaScript
76 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
process.env.NODE_ENV = 'test';
|
|
|
|
const supertest = require('supertest');
|
|
|
|
const getApp = require('../../../lib/app');
|
|
const dbInit = require('./database-init');
|
|
const getLogger = require('../../fixtures/no-logger');
|
|
const StateService = require('../../../lib/state-service');
|
|
|
|
const { EventEmitter } = require('events');
|
|
const eventBus = new EventEmitter();
|
|
|
|
function createApp(stores, adminAuthentication = 'none', preHook) {
|
|
return getApp({
|
|
stores,
|
|
eventBus,
|
|
preHook,
|
|
adminAuthentication,
|
|
secret: 'super-secret',
|
|
sessionAge: 4000,
|
|
stateService: new StateService({ stores, getLogger }),
|
|
getLogger,
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
async setupApp(name) {
|
|
const stores = await dbInit(name, getLogger);
|
|
const app = createApp(stores);
|
|
|
|
return {
|
|
request: supertest.agent(app),
|
|
destroy: async () => {
|
|
try {
|
|
await stores.db.destroy();
|
|
} catch (error) {
|
|
console.error('Failed to destroy db', error);
|
|
}
|
|
},
|
|
};
|
|
},
|
|
async setupAppWithAuth(name) {
|
|
const stores = await dbInit(name, getLogger);
|
|
const app = createApp(stores, 'unsecure');
|
|
|
|
return {
|
|
request: supertest.agent(app),
|
|
destroy: async () => {
|
|
try {
|
|
await stores.db.destroy();
|
|
} catch (error) {
|
|
console.error('Failed to destroy db', error);
|
|
}
|
|
},
|
|
};
|
|
},
|
|
|
|
async setupAppWithCustomAuth(name, preHook) {
|
|
const stores = await dbInit(name, getLogger);
|
|
const app = createApp(stores, 'custom', preHook);
|
|
|
|
return {
|
|
request: supertest.agent(app),
|
|
destroy: async () => {
|
|
try {
|
|
await stores.db.destroy();
|
|
} catch (error) {
|
|
console.error('Failed to destroy db', error);
|
|
}
|
|
},
|
|
};
|
|
},
|
|
};
|