Skip to content

Commit

Permalink
fixes tests
Browse files Browse the repository at this point in the history
  • Loading branch information
brkalow committed Jan 20, 2025
1 parent c02e7f9 commit 32a08fa
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 12 deletions.
14 changes: 11 additions & 3 deletions packages/clerk-js/src/core/resources/__tests__/Session.test.ts
Original file line number Diff line number Diff line change
@@ -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();
Expand Down Expand Up @@ -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();

Expand Down
27 changes: 18 additions & 9 deletions packages/clerk-js/src/core/resources/__tests__/Token.test.ts
Original file line number Diff line number Diff line change
@@ -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',
Expand Down Expand Up @@ -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',
Expand All @@ -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',
Expand Down

0 comments on commit 32a08fa

Please sign in to comment.