unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
110 lines • 4.15 kB
JavaScript
"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