UNPKG

unleash-server

Version:

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

100 lines 3.24 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const events_1 = require("events"); const express_1 = __importDefault(require("express")); const test_config_1 = require("../test/config/test-config"); const server_impl_1 = require("./server-impl"); jest.mock('./routes', () => class Index { router() { return express_1.default.Router(); } }); const noop = () => { }; const eventStore = new events_1.EventEmitter(); const settingStore = { get: () => { Promise.resolve('secret'); }, }; jest.mock('./metrics', () => ({ createMetricsMonitor() { return { startMonitoring: noop, stopMonitoring: noop, }; }, })); jest.mock('./db', () => ({ createStores() { return { db: { destroy: () => undefined }, clientInstanceStore: { destroy: noop }, clientMetricsStore: { destroy: noop, on: noop }, eventStore, publicSignupTokenStore: { destroy: noop, on: noop }, settingStore, }; }, })); jest.mock('../migrator', () => ({ migrateDb: () => Promise.resolve(), })); jest.mock('./util/version', () => function () { return 'unleash-test-version'; }); test('should call preHook', async () => { let called = 0; const config = (0, test_config_1.createTestConfig)({ server: { port: 0 }, preHook: () => { called++; }, }); const { stop } = await (0, server_impl_1.start)(config); expect(called).toBe(1); await stop(); }); test('should call preRouterHook', async () => { let called = 0; const { stop } = await (0, server_impl_1.start)((0, test_config_1.createTestConfig)({ server: { port: 0 }, preRouterHook: () => { called++; }, })); expect(called === 1).toBe(true); await stop(); }); test('should call eventHook', async () => { let called = 0; const config = (0, test_config_1.createTestConfig)({ server: { port: 0 }, eventHook: () => { called++; }, }); const { stop } = await (0, server_impl_1.start)(config); eventStore.emit('feature-created', {}); expect(called === 1).toBe(true); await stop(); }); test('should auto-create server on start()', async () => { const { server, stop } = await (0, server_impl_1.start)((0, test_config_1.createTestConfig)({ server: { port: 0 } })); expect(typeof server === 'undefined').toBe(false); await stop(); }); test('should not create a server using create()', async () => { const config = (0, test_config_1.createTestConfig)({ server: { port: 0 } }); const { server, stop } = await (0, server_impl_1.create)(config); expect(server).toBeUndefined(); await stop(); }); test('should shutdown the server when calling stop()', async () => { const { server, stop } = await (0, server_impl_1.start)((0, test_config_1.createTestConfig)({ server: { port: 0 } })); await stop(); expect(server.address()).toBe(null); }); //# sourceMappingURL=server-impl.test.js.map