From 32a08fac678299ef8b08df3bf3257a8cba149b2e Mon Sep 17 00:00:00 2001 From: Bryce Kalow Date: Mon, 20 Jan 2025 12:25:14 -0600 Subject: [PATCH] fixes tests --- .../core/resources/__tests__/Session.test.ts | 14 +++++++--- .../core/resources/__tests__/Token.test.ts | 27 ++++++++++++------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/packages/clerk-js/src/core/resources/__tests__/Session.test.ts b/packages/clerk-js/src/core/resources/__tests__/Session.test.ts index 4ae056d0681..1f267f62ce3 100644 --- a/packages/clerk-js/src/core/resources/__tests__/Session.test.ts +++ b/packages/clerk-js/src/core/resources/__tests__/Session.test.ts @@ -1,11 +1,19 @@ -import type { OrganizationJSON, SessionJSON } from '@clerk/types'; +import type { InstanceType, OrganizationJSON, SessionJSON } from '@clerk/types'; import { eventBus } from '../../events'; import { createFapiClient } from '../../fapiClient'; -import { clerkMock, createUser, mockDevClerkInstance, mockJwt, mockNetworkFailedFetch } from '../../test/fixtures'; +import { clerkMock, createUser, mockJwt, mockNetworkFailedFetch } from '../../test/fixtures'; import { SessionTokenCache } from '../../tokenCache'; import { BaseResource, Organization, Session } from '../internal'; +const baseFapiClientOptions = { + frontendApi: 'clerk.example.com', + getSessionId() { + return 'sess_1qq9oy5GiNHxdR2XWU6gG6mIcBX'; + }, + instanceType: 'development' as InstanceType, +}; + describe('Session', () => { afterEach(() => { SessionTokenCache.clear(); @@ -183,7 +191,7 @@ describe('Session', () => { } as SessionJSON); mockNetworkFailedFetch(); - BaseResource.clerk = { getFapiClient: () => createFapiClient(mockDevClerkInstance) } as any; + BaseResource.clerk = { getFapiClient: () => createFapiClient(baseFapiClientOptions) } as any; const token = await session.getToken(); diff --git a/packages/clerk-js/src/core/resources/__tests__/Token.test.ts b/packages/clerk-js/src/core/resources/__tests__/Token.test.ts index e9b3e18cf60..8fb29758d14 100644 --- a/packages/clerk-js/src/core/resources/__tests__/Token.test.ts +++ b/packages/clerk-js/src/core/resources/__tests__/Token.test.ts @@ -1,20 +1,29 @@ +import type { InstanceType } from '@clerk/types'; + import { SUPPORTED_FAPI_VERSION } from '../../constants'; import { createFapiClient } from '../../fapiClient'; -import { mockDevClerkInstance, mockFetch, mockNetworkFailedFetch } from '../../test/fixtures'; +import { mockFetch, mockNetworkFailedFetch } from '../../test/fixtures'; import { BaseResource } from '../internal'; import { Token } from '../Token'; +const baseFapiClientOptions = { + frontendApi: 'clerk.example.com', + getSessionId() { + return ''; + }, + instanceType: 'development' as InstanceType, +}; + describe('Token', () => { describe('create', () => { afterEach(() => { - // @ts-ignore - global.fetch?.mockClear(); + (global.fetch as jest.Mock)?.mockClear(); BaseResource.clerk = null as any; }); it('with http 500 throws error', async () => { mockFetch(false, 500); - BaseResource.clerk = { getFapiClient: () => createFapiClient(mockDevClerkInstance) } as any; + BaseResource.clerk = { getFapiClient: () => createFapiClient(baseFapiClientOptions) } as any; await expect(Token.create('/path/to/tokens')).rejects.toMatchObject({ message: '500', @@ -53,12 +62,12 @@ describe('Token', () => { it('create returns empty raw string', async () => { mockNetworkFailedFetch(); - BaseResource.clerk = { getFapiClient: () => createFapiClient(mockDevClerkInstance) } as any; + BaseResource.clerk = { getFapiClient: () => createFapiClient(baseFapiClientOptions) } as any; const token = await Token.create('/path/to/tokens'); expect(global.fetch).toHaveBeenCalledWith( - `https://clerk.example.com/v1/path/to/tokens?__clerk_api_version=${SUPPORTED_FAPI_VERSION}&_clerk_js_version=test-0.0.0`, + `https://clerk.example.com/v1/path/to/tokens?__clerk_api_version=${SUPPORTED_FAPI_VERSION}&_clerk_js_version=test`, // TODO(dimkl): omit extra params from fetch request (eg path, url) - remove expect.objectContaining expect.objectContaining({ method: 'POST', @@ -76,14 +85,14 @@ describe('Token', () => { describe('with online browser and network failure', () => { it('throws error', async () => { mockNetworkFailedFetch(); - BaseResource.clerk = { getFapiClient: () => createFapiClient(mockDevClerkInstance) } as any; + BaseResource.clerk = { getFapiClient: () => createFapiClient(baseFapiClientOptions) } as any; await expect(Token.create('/path/to/tokens')).rejects.toThrow( - `ClerkJS: Network error at "https://clerk.example.com/v1/path/to/tokens?__clerk_api_version=${SUPPORTED_FAPI_VERSION}&_clerk_js_version=test-0.0.0" - TypeError: Failed to fetch. Please try again.`, + `ClerkJS: Network error at "https://clerk.example.com/v1/path/to/tokens?__clerk_api_version=${SUPPORTED_FAPI_VERSION}&_clerk_js_version=test" - TypeError: Failed to fetch. Please try again.`, ); expect(global.fetch).toHaveBeenCalledWith( - `https://clerk.example.com/v1/path/to/tokens?__clerk_api_version=${SUPPORTED_FAPI_VERSION}&_clerk_js_version=test-0.0.0`, + `https://clerk.example.com/v1/path/to/tokens?__clerk_api_version=${SUPPORTED_FAPI_VERSION}&_clerk_js_version=test`, // TODO(dimkl): omit extra params from fetch request (eg path, url) - remove expect.objectContaining expect.objectContaining({ method: 'POST',