mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-04 01:18:20 +02:00
fix: attempt to unflake version service tests (#2008)
This commit is contained in:
parent
5c003e3b2e
commit
f06470dfa7
@ -2,26 +2,26 @@ import nock from 'nock';
|
|||||||
import createStores from '../../test/fixtures/store';
|
import createStores from '../../test/fixtures/store';
|
||||||
import version from '../util/version';
|
import version from '../util/version';
|
||||||
import getLogger from '../../test/fixtures/no-logger';
|
import getLogger from '../../test/fixtures/no-logger';
|
||||||
|
|
||||||
import VersionService from './version-service';
|
import VersionService from './version-service';
|
||||||
|
import { randomId } from '../util/random-id';
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeAll(() => {
|
||||||
nock.disableNetConnect();
|
nock.disableNetConnect();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterAll(() => {
|
||||||
nock.enableNetConnect();
|
nock.enableNetConnect();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('yields current versions', async () => {
|
test('yields current versions', async () => {
|
||||||
const testurl = 'https://version.test';
|
const url = `https://${randomId()}.example.com`;
|
||||||
const { settingStore } = createStores();
|
const { settingStore } = createStores();
|
||||||
await settingStore.insert('instanceInfo', { id: '1234abc' });
|
await settingStore.insert('instanceInfo', { id: '1234abc' });
|
||||||
const latest = {
|
const latest = {
|
||||||
oss: '5.0.0',
|
oss: '5.0.0',
|
||||||
enterprise: '5.0.0',
|
enterprise: '5.0.0',
|
||||||
};
|
};
|
||||||
nock(testurl)
|
const scope = nock(url)
|
||||||
.post('/')
|
.post('/')
|
||||||
.reply(() => [
|
.reply(() => [
|
||||||
200,
|
200,
|
||||||
@ -34,21 +34,20 @@ test('yields current versions', async () => {
|
|||||||
{ settingStore },
|
{ settingStore },
|
||||||
{
|
{
|
||||||
getLogger,
|
getLogger,
|
||||||
versionCheck: { url: testurl, enable: true },
|
versionCheck: { url, enable: true },
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
await service.checkLatestVersion();
|
await service.checkLatestVersion();
|
||||||
const versionInfo = service.getVersionInfo();
|
const versionInfo = service.getVersionInfo();
|
||||||
|
expect(scope.isDone()).toEqual(true);
|
||||||
expect(versionInfo.current.oss).toBe(version);
|
expect(versionInfo.current.oss).toBe(version);
|
||||||
expect(versionInfo.current.enterprise).toBeFalsy();
|
expect(versionInfo.current.enterprise).toBeFalsy();
|
||||||
// @ts-ignore
|
|
||||||
expect(versionInfo.latest.oss).toBe(latest.oss);
|
expect(versionInfo.latest.oss).toBe(latest.oss);
|
||||||
// @ts-ignore
|
|
||||||
expect(versionInfo.latest.enterprise).toBe(latest.enterprise);
|
expect(versionInfo.latest.enterprise).toBe(latest.enterprise);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('supports setting enterprise version as well', async () => {
|
test('supports setting enterprise version as well', async () => {
|
||||||
const testurl = `https://version.test${Math.random() * 1000}`;
|
const url = `https://${randomId()}.example.com`;
|
||||||
const { settingStore } = createStores();
|
const { settingStore } = createStores();
|
||||||
const enterpriseVersion = '3.7.0';
|
const enterpriseVersion = '3.7.0';
|
||||||
await settingStore.insert('instanceInfo', { id: '1234abc' });
|
await settingStore.insert('instanceInfo', { id: '1234abc' });
|
||||||
@ -56,7 +55,7 @@ test('supports setting enterprise version as well', async () => {
|
|||||||
oss: '4.0.0',
|
oss: '4.0.0',
|
||||||
enterprise: '4.0.0',
|
enterprise: '4.0.0',
|
||||||
};
|
};
|
||||||
nock(testurl)
|
const scope = nock(url)
|
||||||
.post('/')
|
.post('/')
|
||||||
.reply(() => [
|
.reply(() => [
|
||||||
200,
|
200,
|
||||||
@ -70,22 +69,21 @@ test('supports setting enterprise version as well', async () => {
|
|||||||
{ settingStore },
|
{ settingStore },
|
||||||
{
|
{
|
||||||
getLogger,
|
getLogger,
|
||||||
versionCheck: { url: testurl, enable: true },
|
versionCheck: { url, enable: true },
|
||||||
enterpriseVersion,
|
enterpriseVersion,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
await service.checkLatestVersion();
|
await service.checkLatestVersion();
|
||||||
const versionInfo = service.getVersionInfo();
|
const versionInfo = service.getVersionInfo();
|
||||||
|
expect(scope.isDone()).toEqual(true);
|
||||||
expect(versionInfo.current.oss).toBe(version);
|
expect(versionInfo.current.oss).toBe(version);
|
||||||
expect(versionInfo.current.enterprise).toBe(enterpriseVersion);
|
expect(versionInfo.current.enterprise).toBe(enterpriseVersion);
|
||||||
// @ts-ignore
|
|
||||||
expect(versionInfo.latest.oss).toBe(latest.oss);
|
expect(versionInfo.latest.oss).toBe(latest.oss);
|
||||||
// @ts-ignore
|
|
||||||
expect(versionInfo.latest.enterprise).toBe(latest.enterprise);
|
expect(versionInfo.latest.enterprise).toBe(latest.enterprise);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('if version check is not enabled should not make any calls', async () => {
|
test('if version check is not enabled should not make any calls', async () => {
|
||||||
const testurl = `https://version.test${Math.random() * 1000}`;
|
const url = `https://${randomId()}.example.com`;
|
||||||
const { settingStore } = createStores();
|
const { settingStore } = createStores();
|
||||||
const enterpriseVersion = '3.7.0';
|
const enterpriseVersion = '3.7.0';
|
||||||
await settingStore.insert('instanceInfo', { id: '1234abc' });
|
await settingStore.insert('instanceInfo', { id: '1234abc' });
|
||||||
@ -93,7 +91,7 @@ test('if version check is not enabled should not make any calls', async () => {
|
|||||||
oss: '4.0.0',
|
oss: '4.0.0',
|
||||||
enterprise: '4.0.0',
|
enterprise: '4.0.0',
|
||||||
};
|
};
|
||||||
const scope = nock(testurl)
|
const scope = nock(url)
|
||||||
.get('/')
|
.get('/')
|
||||||
.reply(() => [
|
.reply(() => [
|
||||||
200,
|
200,
|
||||||
@ -107,18 +105,16 @@ test('if version check is not enabled should not make any calls', async () => {
|
|||||||
{ settingStore },
|
{ settingStore },
|
||||||
{
|
{
|
||||||
getLogger,
|
getLogger,
|
||||||
versionCheck: { url: testurl, enable: false },
|
versionCheck: { url, enable: false },
|
||||||
enterpriseVersion,
|
enterpriseVersion,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
await service.checkLatestVersion();
|
await service.checkLatestVersion();
|
||||||
const versionInfo = service.getVersionInfo();
|
const versionInfo = service.getVersionInfo();
|
||||||
expect(scope.isDone()).toBeFalsy();
|
expect(scope.isDone()).toEqual(false);
|
||||||
expect(versionInfo.current.oss).toBe(version);
|
expect(versionInfo.current.oss).toBe(version);
|
||||||
expect(versionInfo.current.enterprise).toBe(enterpriseVersion);
|
expect(versionInfo.current.enterprise).toBe(enterpriseVersion);
|
||||||
// @ts-ignore
|
|
||||||
expect(versionInfo.latest.oss).toBeFalsy();
|
expect(versionInfo.latest.oss).toBeFalsy();
|
||||||
// @ts-ignore
|
|
||||||
expect(versionInfo.latest.enterprise).toBeFalsy();
|
expect(versionInfo.latest.enterprise).toBeFalsy();
|
||||||
nock.cleanAll();
|
nock.cleanAll();
|
||||||
});
|
});
|
||||||
|
@ -13,7 +13,7 @@ export interface IVersionInfo {
|
|||||||
|
|
||||||
export interface IVersionHolder {
|
export interface IVersionHolder {
|
||||||
current: IVersionInfo;
|
current: IVersionInfo;
|
||||||
latest: IVersionInfo | {};
|
latest: Partial<IVersionInfo>;
|
||||||
isLatest: boolean;
|
isLatest: boolean;
|
||||||
instanceId: string;
|
instanceId: string;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user