From f06470dfa777feebeb66a70e9306303b67859b54 Mon Sep 17 00:00:00 2001 From: olav Date: Wed, 31 Aug 2022 08:06:25 +0200 Subject: [PATCH] fix: attempt to unflake version service tests (#2008) --- src/lib/services/version-service.test.ts | 34 +++++++++++------------- src/lib/services/version-service.ts | 2 +- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/lib/services/version-service.test.ts b/src/lib/services/version-service.test.ts index f8f37552d7..13aa6d2b54 100644 --- a/src/lib/services/version-service.test.ts +++ b/src/lib/services/version-service.test.ts @@ -2,26 +2,26 @@ import nock from 'nock'; import createStores from '../../test/fixtures/store'; import version from '../util/version'; import getLogger from '../../test/fixtures/no-logger'; - import VersionService from './version-service'; +import { randomId } from '../util/random-id'; -beforeEach(() => { +beforeAll(() => { nock.disableNetConnect(); }); -afterEach(() => { +afterAll(() => { nock.enableNetConnect(); }); test('yields current versions', async () => { - const testurl = 'https://version.test'; + const url = `https://${randomId()}.example.com`; const { settingStore } = createStores(); await settingStore.insert('instanceInfo', { id: '1234abc' }); const latest = { oss: '5.0.0', enterprise: '5.0.0', }; - nock(testurl) + const scope = nock(url) .post('/') .reply(() => [ 200, @@ -34,21 +34,20 @@ test('yields current versions', async () => { { settingStore }, { getLogger, - versionCheck: { url: testurl, enable: true }, + versionCheck: { url, enable: true }, }, ); await service.checkLatestVersion(); const versionInfo = service.getVersionInfo(); + expect(scope.isDone()).toEqual(true); expect(versionInfo.current.oss).toBe(version); expect(versionInfo.current.enterprise).toBeFalsy(); - // @ts-ignore expect(versionInfo.latest.oss).toBe(latest.oss); - // @ts-ignore expect(versionInfo.latest.enterprise).toBe(latest.enterprise); }); 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 enterpriseVersion = '3.7.0'; await settingStore.insert('instanceInfo', { id: '1234abc' }); @@ -56,7 +55,7 @@ test('supports setting enterprise version as well', async () => { oss: '4.0.0', enterprise: '4.0.0', }; - nock(testurl) + const scope = nock(url) .post('/') .reply(() => [ 200, @@ -70,22 +69,21 @@ test('supports setting enterprise version as well', async () => { { settingStore }, { getLogger, - versionCheck: { url: testurl, enable: true }, + versionCheck: { url, enable: true }, enterpriseVersion, }, ); await service.checkLatestVersion(); const versionInfo = service.getVersionInfo(); + expect(scope.isDone()).toEqual(true); expect(versionInfo.current.oss).toBe(version); expect(versionInfo.current.enterprise).toBe(enterpriseVersion); - // @ts-ignore expect(versionInfo.latest.oss).toBe(latest.oss); - // @ts-ignore expect(versionInfo.latest.enterprise).toBe(latest.enterprise); }); 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 enterpriseVersion = '3.7.0'; 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', enterprise: '4.0.0', }; - const scope = nock(testurl) + const scope = nock(url) .get('/') .reply(() => [ 200, @@ -107,18 +105,16 @@ test('if version check is not enabled should not make any calls', async () => { { settingStore }, { getLogger, - versionCheck: { url: testurl, enable: false }, + versionCheck: { url, enable: false }, enterpriseVersion, }, ); await service.checkLatestVersion(); const versionInfo = service.getVersionInfo(); - expect(scope.isDone()).toBeFalsy(); + expect(scope.isDone()).toEqual(false); expect(versionInfo.current.oss).toBe(version); expect(versionInfo.current.enterprise).toBe(enterpriseVersion); - // @ts-ignore expect(versionInfo.latest.oss).toBeFalsy(); - // @ts-ignore expect(versionInfo.latest.enterprise).toBeFalsy(); nock.cleanAll(); }); diff --git a/src/lib/services/version-service.ts b/src/lib/services/version-service.ts index e6b58a3c35..c9bd991452 100644 --- a/src/lib/services/version-service.ts +++ b/src/lib/services/version-service.ts @@ -13,7 +13,7 @@ export interface IVersionInfo { export interface IVersionHolder { current: IVersionInfo; - latest: IVersionInfo | {}; + latest: Partial; isLatest: boolean; instanceId: string; }