From 01e1f3ba95c4b69586ad973dbbd5192eba168308 Mon Sep 17 00:00:00 2001 From: wobsoriano Date: Fri, 26 Jul 2024 06:53:13 -0700 Subject: [PATCH] test(core): Move new test to last of setActive --- .../clerk-js/src/core/__tests__/clerk.test.ts | 78 +++++++++---------- packages/clerk-js/src/core/clerk.ts | 3 +- 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/packages/clerk-js/src/core/__tests__/clerk.test.ts b/packages/clerk-js/src/core/__tests__/clerk.test.ts index 7a1d06a8bc7..3178012b225 100644 --- a/packages/clerk-js/src/core/__tests__/clerk.test.ts +++ b/packages/clerk-js/src/core/__tests__/clerk.test.ts @@ -257,46 +257,6 @@ describe('Clerk singleton', () => { await sut.setActive({ session: mockSession as any as ActiveSessionResource }); }); - it('sets active organization by slug', async () => { - const mockSession2 = { - id: '1', - status: 'active', - user: { - organizationMemberships: [ - { - id: 'orgmem_id', - organization: { - id: 'org_id', - slug: 'some-org-slug', - }, - }, - ], - }, - touch: jest.fn(), - getToken: jest.fn(), - }; - mockClientFetch.mockReturnValue(Promise.resolve({ activeSessions: [mockSession2] })); - const sut = new Clerk(productionPublishableKey); - await sut.load(); - - mockSession2.touch.mockImplementationOnce(() => { - sut.session = mockSession2 as any; - return Promise.resolve(); - }); - mockSession2.getToken.mockImplementation(() => { - return 'mocked-token'; - }); - - await sut.setActive({ organization: 'some-org-slug' }); - - await waitFor(() => { - expect(mockSession2.touch).toHaveBeenCalled(); - expect(mockSession2.getToken).toHaveBeenCalled(); - expect((mockSession2 as any as ActiveSessionResource)?.lastActiveOrganizationId).toEqual('org_id'); - expect(sut.session).toMatchObject(mockSession2); - }); - }); - it('calls __unstable__onAfterSetActive after beforeEmit and session.touch', async () => { const beforeEmitMock = jest.fn(); mockSession.touch.mockReturnValueOnce(Promise.resolve()); @@ -387,6 +347,44 @@ describe('Clerk singleton', () => { }); }); + it('sets active organization by slug', async () => { + const mockSession2 = { + id: '1', + status: 'active', + user: { + organizationMemberships: [ + { + id: 'orgmem_id', + organization: { + id: 'org_id', + slug: 'some-org-slug', + }, + }, + ], + }, + touch: jest.fn(), + getToken: jest.fn(), + }; + mockClientFetch.mockReturnValue(Promise.resolve({ activeSessions: [mockSession2] })); + const sut = new Clerk(productionPublishableKey); + await sut.load(); + + mockSession2.touch.mockImplementationOnce(() => { + sut.session = mockSession2 as any; + return Promise.resolve(); + }); + mockSession2.getToken.mockImplementation(() => 'mocked-token'); + + await sut.setActive({ organization: 'some-org-slug' }); + + await waitFor(() => { + expect(mockSession2.touch).toHaveBeenCalled(); + expect(mockSession2.getToken).toHaveBeenCalled(); + expect((mockSession2 as any as ActiveSessionResource)?.lastActiveOrganizationId).toEqual('org_id'); + expect(sut.session).toMatchObject(mockSession2); + }); + }); + mockNativeRuntime(() => { it('calls session.touch in a non-standard browser', async () => { mockClientFetch.mockReturnValue(Promise.resolve({ activeSessions: [mockSession] })); diff --git a/packages/clerk-js/src/core/clerk.ts b/packages/clerk-js/src/core/clerk.ts index 721c7101248..a83e1e1097a 100644 --- a/packages/clerk-js/src/core/clerk.ts +++ b/packages/clerk-js/src/core/clerk.ts @@ -708,9 +708,8 @@ export class Clerk implements ClerkInterface { // However, if the `organization` parameter is not given (i.e. `undefined`), we want // to keep the organization id that the session had. const shouldSwitchOrganization = organization !== undefined; - console.log('hello'); + if (newSession && shouldSwitchOrganization) { - console.log('world', organization); const organizationIdOrSlug = typeof organization === 'string' ? organization : organization?.id; if (isOrganizationId(organizationIdOrSlug!)) {