UNPKG

unleash-server

Version:

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

110 lines 4.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const nock_1 = __importDefault(require("nock")); const store_1 = __importDefault(require("../../test/fixtures/store")); const version_1 = __importDefault(require("../util/version")); const no_logger_1 = __importDefault(require("../../test/fixtures/no-logger")); const version_service_1 = __importDefault(require("./version-service")); const random_id_1 = require("../util/random-id"); beforeAll(() => { nock_1.default.disableNetConnect(); }); afterAll(() => { nock_1.default.enableNetConnect(); }); test('yields current versions', async () => { const url = `https://${(0, random_id_1.randomId)()}.example.com`; const { settingStore } = (0, store_1.default)(); await settingStore.insert('instanceInfo', { id: '1234abc' }); const latest = { oss: '5.0.0', enterprise: '5.0.0', }; const scope = (0, nock_1.default)(url) .post('/') .reply(() => [ 200, JSON.stringify({ latest: false, versions: latest, }), ]); const service = new version_service_1.default({ settingStore }, { getLogger: no_logger_1.default, versionCheck: { url, enable: true }, }); await service.checkLatestVersion(); const versionInfo = service.getVersionInfo(); expect(scope.isDone()).toEqual(true); expect(versionInfo.current.oss).toBe(version_1.default); expect(versionInfo.current.enterprise).toBeFalsy(); expect(versionInfo.latest.oss).toBe(latest.oss); expect(versionInfo.latest.enterprise).toBe(latest.enterprise); }); test('supports setting enterprise version as well', async () => { const url = `https://${(0, random_id_1.randomId)()}.example.com`; const { settingStore } = (0, store_1.default)(); const enterpriseVersion = '3.7.0'; await settingStore.insert('instanceInfo', { id: '1234abc' }); const latest = { oss: '4.0.0', enterprise: '4.0.0', }; const scope = (0, nock_1.default)(url) .post('/') .reply(() => [ 200, JSON.stringify({ latest: false, versions: latest, }), ]); const service = new version_service_1.default({ settingStore }, { getLogger: no_logger_1.default, versionCheck: { url, enable: true }, enterpriseVersion, }); await service.checkLatestVersion(); const versionInfo = service.getVersionInfo(); expect(scope.isDone()).toEqual(true); expect(versionInfo.current.oss).toBe(version_1.default); expect(versionInfo.current.enterprise).toBe(enterpriseVersion); expect(versionInfo.latest.oss).toBe(latest.oss); expect(versionInfo.latest.enterprise).toBe(latest.enterprise); }); test('if version check is not enabled should not make any calls', async () => { const url = `https://${(0, random_id_1.randomId)()}.example.com`; const { settingStore } = (0, store_1.default)(); const enterpriseVersion = '3.7.0'; await settingStore.insert('instanceInfo', { id: '1234abc' }); const latest = { oss: '4.0.0', enterprise: '4.0.0', }; const scope = (0, nock_1.default)(url) .get('/') .reply(() => [ 200, JSON.stringify({ latest: false, versions: latest, }), ]); const service = new version_service_1.default({ settingStore }, { getLogger: no_logger_1.default, versionCheck: { url, enable: false }, enterpriseVersion, }); await service.checkLatestVersion(); const versionInfo = service.getVersionInfo(); expect(scope.isDone()).toEqual(false); expect(versionInfo.current.oss).toBe(version_1.default); expect(versionInfo.current.enterprise).toBe(enterpriseVersion); expect(versionInfo.latest.oss).toBeFalsy(); expect(versionInfo.latest.enterprise).toBeFalsy(); nock_1.default.cleanAll(); }); //# sourceMappingURL=version-service.test.js.map