UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.

68 lines 2.98 kB
"use strict"; 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