diff --git a/src/tests/specs/observatory/observatory.openid.upgrade.spec.ts b/src/tests/specs/observatory/observatory.openid.upgrade.spec.ts index 3730fbd3f..51f16dcc1 100644 --- a/src/tests/specs/observatory/observatory.openid.upgrade.spec.ts +++ b/src/tests/specs/observatory/observatory.openid.upgrade.spec.ts @@ -4,7 +4,10 @@ import { fromNullable } from '@dfinity/utils'; import { Ed25519KeyIdentity } from '@icp-sdk/core/identity'; import type { Principal } from '@icp-sdk/core/principal'; import { inject } from 'vitest'; -import { GOOGLE_OPEN_ID_PROVIDER } from '../../constants/auth-tests.constants'; +import { + GITHUB_OPEN_ID_PROVIDER, + GOOGLE_OPEN_ID_PROVIDER +} from '../../constants/auth-tests.constants'; import { mockCertificateDate, mockGoogleClientId } from '../../mocks/jwt.mocks'; import { FETCH_CERTIFICATE_INTERVAL } from '../../mocks/observatory.mocks'; import { makeMockGoogleOpenIdJwt } from '../../utils/jwt-tests.utils'; @@ -67,7 +70,16 @@ describe('Observatory > OpenId > Upgrade', async () => { expect(fromNullable(cert)).toBeUndefined(); }; - describe('Google certificate', () => { + describe.each([ + { + method: 'google', + provider: GOOGLE_OPEN_ID_PROVIDER + }, + { + method: 'github', + provider: GITHUB_OPEN_ID_PROVIDER + } + ])('$method', ({ method, provider }) => { it('should not start monitoring after upgrade if never stopped', async () => { await upgradeCurrent(); @@ -79,20 +91,28 @@ describe('Observatory > OpenId > Upgrade', async () => { it('should not start monitoring after upgrade if stopped', async () => { const { start_openid_monitoring, stop_openid_monitoring } = actor; - await start_openid_monitoring(GOOGLE_OPEN_ID_PROVIDER); + await start_openid_monitoring(provider); // HTTPs outcalls after stat - await assertOpenIdHttpsOutcalls({ pic, jwks: mockJwks }); + await assertOpenIdHttpsOutcalls({ + pic, + jwks: mockJwks, + method: method as 'google' | 'github' + }); await pic.advanceTime(1000); await tick(pic); - await stop_openid_monitoring(GOOGLE_OPEN_ID_PROVIDER); + await stop_openid_monitoring(provider); await pic.advanceTime(FETCH_CERTIFICATE_INTERVAL + 1000); // Delayed HTTPs outcalls which happens after stop - await assertOpenIdHttpsOutcalls({ pic, jwks: mockJwks }); + await assertOpenIdHttpsOutcalls({ + pic, + jwks: mockJwks, + method: method as 'google' | 'github' + }); await expect(pic.getPendingHttpsOutcalls()).resolves.toHaveLength(0); @@ -106,17 +126,21 @@ describe('Observatory > OpenId > Upgrade', async () => { it('should still hold certificate after upgrade', async () => { const { start_openid_monitoring } = actor; - await start_openid_monitoring(GOOGLE_OPEN_ID_PROVIDER); + await start_openid_monitoring(provider); // HTTPs outcalls after stat - await assertOpenIdHttpsOutcalls({ pic, jwks: mockJwks }); + await assertOpenIdHttpsOutcalls({ + pic, + jwks: mockJwks, + method: method as 'google' | 'github' + }); await upgradeCurrent(); const { get_openid_certificate } = actor; const cert = await get_openid_certificate({ - provider: { Google: null } + provider }); expect(fromNullable(cert)).not.toBeUndefined(); @@ -125,10 +149,14 @@ describe('Observatory > OpenId > Upgrade', async () => { it('should restart monitoring after upgrade if running', async () => { const { start_openid_monitoring } = actor; - await start_openid_monitoring(GOOGLE_OPEN_ID_PROVIDER); + await start_openid_monitoring(provider); // HTTPs outcalls after stat - await assertOpenIdHttpsOutcalls({ pic, jwks: mockJwks }); + await assertOpenIdHttpsOutcalls({ + pic, + jwks: mockJwks, + method: method as 'google' | 'github' + }); await upgradeCurrent(); @@ -138,7 +166,11 @@ describe('Observatory > OpenId > Upgrade', async () => { await expect(pic.getPendingHttpsOutcalls()).resolves.toHaveLength(1); // HTTPs outcalls after restat - await assertOpenIdHttpsOutcalls({ pic, jwks: mockJwks }); + await assertOpenIdHttpsOutcalls({ + pic, + jwks: mockJwks, + method: method as 'google' | 'github' + }); }); }); });