unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
68 lines • 2.98 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupAppWithBaseUrl = exports.setupAppWithCustomAuth = exports.setupAppWithAuth = exports.setupAppWithCustomConfig = exports.setupApp = void 0;
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
const supertest_1 = __importDefault(require("supertest"));
const events_1 = __importDefault(require("events"));
const app_1 = __importDefault(require("../../../lib/app"));
const test_config_1 = require("../../config/test-config");
const option_1 = require("../../../lib/types/option");
const services_1 = require("../../../lib/services");
const session_db_1 = __importDefault(require("../../../lib/middleware/session-db"));
process.env.NODE_ENV = 'test';
async function createApp(stores, adminAuthentication = option_1.IAuthType.NONE, preHook, customOptions) {
const config = (0, test_config_1.createTestConfig)({
authentication: {
type: adminAuthentication,
customAuthHandler: preHook,
},
server: {
unleashUrl: 'http://localhost:4242',
},
...customOptions,
});
const services = (0, services_1.createServices)(stores, config);
const unleashSession = (0, session_db_1.default)(config, undefined);
const emitter = new events_1.default();
emitter.setMaxListeners(0);
const app = await (0, app_1.default)(config, stores, services, unleashSession);
const request = supertest_1.default.agent(app);
const destroy = async () => {
services.versionService.destroy();
services.clientInstanceService.destroy();
services.clientMetricsServiceV2.destroy();
services.apiTokenService.destroy();
services.proxyService.destroy();
};
// TODO: use create from server-impl instead?
return { request, destroy, services, config };
}
async function setupApp(stores) {
return createApp(stores);
}
exports.setupApp = setupApp;
async function setupAppWithCustomConfig(stores, customOptions) {
return createApp(stores, undefined, undefined, customOptions);
}
exports.setupAppWithCustomConfig = setupAppWithCustomConfig;
async function setupAppWithAuth(stores, customOptions) {
return createApp(stores, option_1.IAuthType.DEMO, undefined, customOptions);
}
exports.setupAppWithAuth = setupAppWithAuth;
async function setupAppWithCustomAuth(stores, preHook) {
return createApp(stores, option_1.IAuthType.CUSTOM, preHook);
}
exports.setupAppWithCustomAuth = setupAppWithCustomAuth;
async function setupAppWithBaseUrl(stores) {
return createApp(stores, undefined, undefined, {
server: {
unleashUrl: 'http://localhost:4242',
basePathUri: '/hosted',
},
});
}
exports.setupAppWithBaseUrl = setupAppWithBaseUrl;
//# sourceMappingURL=test-helper.js.map