1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
unleash.unleash/test/e2e/helpers/test-helper.js

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