From ce740d8a6f46357b24cb80901cdcebd1f7c8c3d5 Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Thu, 27 Jun 2024 19:31:56 +0000 Subject: [PATCH 01/12] Take over changes from previous PR --- src/configTypes.ts | 1 + src/createUser.ts | 3 +++ src/initFirebaseClientSDK.ts | 15 +++++++++++---- src/useFirebaseUser.ts | 17 +++++++++++++---- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/configTypes.ts b/src/configTypes.ts index f36a3307..a14a0130 100644 --- a/src/configTypes.ts +++ b/src/configTypes.ts @@ -90,6 +90,7 @@ export interface ConfigInput { // "G-MEASUREMENT_ID" measurementId?: string } + firebaseClientAppName?: string tenantId?: string cookies: Omit & { // The base name for the auth cookies. diff --git a/src/createUser.ts b/src/createUser.ts index 4e57d700..e260ebd8 100644 --- a/src/createUser.ts +++ b/src/createUser.ts @@ -3,6 +3,7 @@ import { User as FirebaseUser } from 'firebase/auth' import { DecodedIdToken } from 'firebase-admin/auth' import isClientSide from 'src/isClientSide' import { Claims, filterStandardClaims } from 'src/claims' +import { getConfig } from './config' interface UserDeserialized { id?: string @@ -119,7 +120,9 @@ const createUser = ({ const { getApp } = require('firebase/app') // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires const { getAuth, signOut } = require('firebase/auth') + const { firebaseClientAppName } = getConfig() + signOutFunc = async () => signOut(getAuth(getApp(firebaseClientAppName))) signOutFunc = async () => signOut(getAuth(getApp())) } diff --git a/src/initFirebaseClientSDK.ts b/src/initFirebaseClientSDK.ts index 22dc7372..96c09215 100644 --- a/src/initFirebaseClientSDK.ts +++ b/src/initFirebaseClientSDK.ts @@ -4,8 +4,12 @@ import { getConfig } from 'src/config' import logDebug from 'src/logDebug' export default function initFirebaseClientSDK() { - const { firebaseClientInitConfig, firebaseAuthEmulatorHost, tenantId } = - getConfig() + const { + firebaseClientInitConfig, + firebaseAuthEmulatorHost, + tenantId, + firebaseClientAppName, + } = getConfig() if (!getApps().length) { if (!firebaseClientInitConfig) { throw new Error( @@ -13,7 +17,7 @@ export default function initFirebaseClientSDK() { ) } - initializeApp(firebaseClientInitConfig) + initializeApp(firebaseClientInitConfig, firebaseClientAppName) if (tenantId) { getAuth().tenantId = tenantId } @@ -25,6 +29,9 @@ export default function initFirebaseClientSDK() { } // If the user has provided the firebaseAuthEmulatorHost address, set the emulator if (firebaseAuthEmulatorHost) { - connectAuthEmulator(getAuth(getApp()), `http://${firebaseAuthEmulatorHost}`) + connectAuthEmulator( + getAuth(getApp(firebaseClientAppName)), + `http://${firebaseAuthEmulatorHost}` + ) } } diff --git a/src/useFirebaseUser.ts b/src/useFirebaseUser.ts index e5bc20f5..f655633f 100644 --- a/src/useFirebaseUser.ts +++ b/src/useFirebaseUser.ts @@ -175,10 +175,19 @@ const useFirebaseUser = () => { } // https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onidtokenchanged - const unsubscribe = onIdTokenChanged(getAuth(getApp()), onIdTokenChange) - return () => { - unsubscribe() - isCancelled = true + try { + const { firebaseClientAppName } = getConfig() + logDebug(`[withUser] firebaseClientAppName |${firebaseClientAppName}|`) + const app = getApp(firebaseClientAppName) + logDebug('[withUser] App loaded', app) + const unsubscribe = onIdTokenChanged(getAuth(app), onIdTokenChange) + return () => { + unsubscribe() + isCancelled = true + } + } catch (error) { + logDebug('[withUser] init error', error) + throw error } }, []) From e881f8a544c77632c11d2d8a6f06c3afb872d287 Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Thu, 27 Jun 2024 20:20:43 +0000 Subject: [PATCH 02/12] Fix dependency cycle --- src/configTypes.ts | 2 +- src/createUser.ts | 17 +---------------- src/sharedTypes.ts | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 src/sharedTypes.ts diff --git a/src/configTypes.ts b/src/configTypes.ts index a14a0130..4d668fc6 100644 --- a/src/configTypes.ts +++ b/src/configTypes.ts @@ -1,6 +1,6 @@ import Cookies from 'cookies' import { PageURL } from './redirectTypes' -import { User } from './createUser' +import { User } from './sharedTypes' import { Spread } from './Spread' type OnErrorHandler = (error: Error) => void diff --git a/src/createUser.ts b/src/createUser.ts index e260ebd8..b745da71 100644 --- a/src/createUser.ts +++ b/src/createUser.ts @@ -1,5 +1,6 @@ /* eslint no-underscore-dangle: 0 */ import { User as FirebaseUser } from 'firebase/auth' +import { User } from './sharedTypes' import { DecodedIdToken } from 'firebase-admin/auth' import isClientSide from 'src/isClientSide' import { Claims, filterStandardClaims } from 'src/claims' @@ -31,22 +32,6 @@ interface CreateUserInput { type getIdToken = (forceRefresh?: boolean) => Promise -export interface User { - id: string | null - email: string | null - emailVerified: boolean - phoneNumber: string | null - displayName: string | null - photoURL: string | null - claims: Record - tenantId: string | null - getIdToken: (forceRefresh?: boolean) => Promise - clientInitialized: boolean - firebaseUser: FirebaseUser | null - signOut: () => Promise - serialize: (a?: { includeToken?: boolean }) => string -} - /** * Take a representation of a Firebase user from a maximum of one of: * the Firebase JS SDK, Firebase admin SDK, or serialized User instance. diff --git a/src/sharedTypes.ts b/src/sharedTypes.ts new file mode 100644 index 00000000..698c64fa --- /dev/null +++ b/src/sharedTypes.ts @@ -0,0 +1,17 @@ +import { User as FirebaseUser } from 'firebase/auth' + +export interface User { + id: string | null + email: string | null + emailVerified: boolean + phoneNumber: string | null + displayName: string | null + photoURL: string | null + claims: Record + tenantId: string | null + getIdToken: (forceRefresh?: boolean) => Promise + clientInitialized: boolean + firebaseUser: FirebaseUser | null + signOut: () => Promise + serialize: (a?: { includeToken?: boolean }) => string + } \ No newline at end of file From c99ccbed452a4412444cacbf9e2383bcf5ccb619 Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Thu, 27 Jun 2024 20:23:45 +0000 Subject: [PATCH 03/12] Fix other imports --- src/__tests__/redirects.test.ts | 2 +- src/redirectTypes.ts | 2 +- src/redirects.ts | 2 +- src/useUser.tsx | 2 +- src/withUserTokenSSR.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/__tests__/redirects.test.ts b/src/__tests__/redirects.test.ts index d9854c87..2b423f99 100644 --- a/src/__tests__/redirects.test.ts +++ b/src/__tests__/redirects.test.ts @@ -3,7 +3,7 @@ import type { ParsedUrlQuery } from 'querystring' import { getLoginRedirectInfo, getAppRedirectInfo } from 'src/redirects' import getMockConfig from 'src/testHelpers/createMockConfig' import { setConfig } from 'src/config' -import { User } from 'src/createUser' +import { User } from 'src/sharedTypes' import { RedirectInput } from 'src/redirectTypes' describe('redirects', () => { diff --git a/src/redirectTypes.ts b/src/redirectTypes.ts index 000e9d2d..3480cf83 100644 --- a/src/redirectTypes.ts +++ b/src/redirectTypes.ts @@ -1,6 +1,6 @@ import type { GetServerSidePropsContext, Redirect } from 'next' import type { ParsedUrlQuery } from 'querystring' -import { User } from './createUser' +import { User } from './sharedTypes' export type URLResolveFunction = (obj: { ctx?: GetServerSidePropsContext diff --git a/src/redirects.ts b/src/redirects.ts index eeae7790..1ee14007 100644 --- a/src/redirects.ts +++ b/src/redirects.ts @@ -1,6 +1,6 @@ import type { GetServerSidePropsContext } from 'next' -import { User } from 'src/createUser' +import { User } from 'src/sharedTypes' import { getConfig } from 'src/config' import { PageURL, diff --git a/src/useUser.tsx b/src/useUser.tsx index 12b4734d..1d683312 100644 --- a/src/useUser.tsx +++ b/src/useUser.tsx @@ -1,5 +1,5 @@ import { createContext, useContext } from 'react' -import { User } from './createUser' +import { User } from './sharedTypes' type UserContext = | (User & { diff --git a/src/withUserTokenSSR.ts b/src/withUserTokenSSR.ts index 7b502996..80c9dd35 100644 --- a/src/withUserTokenSSR.ts +++ b/src/withUserTokenSSR.ts @@ -10,7 +10,7 @@ import getUserFromCookies from 'src/getUserFromCookies' import { AuthAction } from 'src/AuthAction' import { getLoginRedirectInfo, getAppRedirectInfo } from 'src/redirects' import logDebug from 'src/logDebug' -import { User } from './createUser' +import { User } from './sharedTypes' import { PageURL } from './redirectTypes' export interface WithUserSSROptions { From b8d5a096636f3ec86c71870aaaa54b87fa185bac Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Thu, 27 Jun 2024 20:28:23 +0000 Subject: [PATCH 04/12] Fix all other remaining imports --- src/__tests__/withUser.test.tsx | 3 ++- src/firebaseAdmin.ts | 3 ++- src/getUserFromCookies.ts | 3 ++- src/setAuthCookies.ts | 3 ++- src/useFirebaseUser.ts | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/__tests__/withUser.test.tsx b/src/__tests__/withUser.test.tsx index 9cfb66bd..9eef87d5 100644 --- a/src/__tests__/withUser.test.tsx +++ b/src/__tests__/withUser.test.tsx @@ -8,7 +8,8 @@ import { createMockFirebaseUserClientSDK, } from 'src/testHelpers/userInputs' import useUser from 'src/useUser' -import createUser, { User } from 'src/createUser' +import createUser from 'src/createUser' +import { User } from 'src/sharedTypes' import useFirebaseUser from 'src/useFirebaseUser' import { AuthAction } from 'src/AuthAction' import logDebug from 'src/logDebug' diff --git a/src/firebaseAdmin.ts b/src/firebaseAdmin.ts index 19879c1b..95fa226b 100644 --- a/src/firebaseAdmin.ts +++ b/src/firebaseAdmin.ts @@ -1,6 +1,7 @@ import { getAuth as getAdminAuth } from 'firebase-admin/auth' import initFirebaseAdminSDK from 'src/initFirebaseAdminSDK' -import createUser, { User } from 'src/createUser' +import createUser from 'src/createUser' +import { User } from 'src/sharedTypes' import { getConfig } from 'src/config' import logDebug from 'src/logDebug' import { FirebaseError as FirebaseErrorType } from 'firebase-admin/app' diff --git a/src/getUserFromCookies.ts b/src/getUserFromCookies.ts index 5e2df2e8..9338c8a7 100644 --- a/src/getUserFromCookies.ts +++ b/src/getUserFromCookies.ts @@ -1,4 +1,5 @@ -import createUser, { User } from 'src/createUser' +import createUser from 'src/createUser' +import { User } from 'src/sharedTypes' import { getCookie } from 'src/cookies' import { verifyIdToken } from 'src/firebaseAdmin' import { diff --git a/src/setAuthCookies.ts b/src/setAuthCookies.ts index 14a79e0e..b9b136f2 100644 --- a/src/setAuthCookies.ts +++ b/src/setAuthCookies.ts @@ -3,7 +3,8 @@ import { setCookie } from 'src/cookies' import { getUserCookieName, getUserTokensCookieName } from 'src/authCookies' import { getConfig } from 'src/config' import logDebug from 'src/logDebug' -import createUser, { User } from 'src/createUser' +import createUser from 'src/createUser' +import { User } from 'src/sharedTypes' import { NextApiRequest, NextApiResponse } from 'next' export type SetAuthCookies = ( diff --git a/src/useFirebaseUser.ts b/src/useFirebaseUser.ts index f655633f..f6e9d425 100644 --- a/src/useFirebaseUser.ts +++ b/src/useFirebaseUser.ts @@ -7,7 +7,8 @@ import { onIdTokenChanged, } from 'firebase/auth' import { getConfig } from 'src/config' -import createUser, { User } from 'src/createUser' +import createUser from 'src/createUser' +import { User } from 'src/sharedTypes' import { Claims, filterStandardClaims } from 'src/claims' import logDebug from 'src/logDebug' From d09ad98d784d6e238ab177b63a2c703c600a982c Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Thu, 27 Jun 2024 20:34:46 +0000 Subject: [PATCH 05/12] Fix first prettier errors --- src/createUser.ts | 2 +- src/sharedTypes.ts | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/createUser.ts b/src/createUser.ts index b745da71..88ac9cfd 100644 --- a/src/createUser.ts +++ b/src/createUser.ts @@ -1,9 +1,9 @@ /* eslint no-underscore-dangle: 0 */ import { User as FirebaseUser } from 'firebase/auth' -import { User } from './sharedTypes' import { DecodedIdToken } from 'firebase-admin/auth' import isClientSide from 'src/isClientSide' import { Claims, filterStandardClaims } from 'src/claims' +import { User } from './sharedTypes' import { getConfig } from './config' interface UserDeserialized { diff --git a/src/sharedTypes.ts b/src/sharedTypes.ts index 698c64fa..0d8346a5 100644 --- a/src/sharedTypes.ts +++ b/src/sharedTypes.ts @@ -1,17 +1,17 @@ import { User as FirebaseUser } from 'firebase/auth' export interface User { - id: string | null - email: string | null - emailVerified: boolean - phoneNumber: string | null - displayName: string | null - photoURL: string | null - claims: Record - tenantId: string | null - getIdToken: (forceRefresh?: boolean) => Promise - clientInitialized: boolean - firebaseUser: FirebaseUser | null - signOut: () => Promise - serialize: (a?: { includeToken?: boolean }) => string - } \ No newline at end of file + id: string | null + email: string | null + emailVerified: boolean + phoneNumber: string | null + displayName: string | null + photoURL: string | null + claims: Record + tenantId: string | null + getIdToken: (forceRefresh?: boolean) => Promise + clientInitialized: boolean + firebaseUser: FirebaseUser | null + signOut: () => Promise + serialize: (a?: { includeToken?: boolean }) => string +} From d23c46cd7f81fb97666826d7ac0a2e778202356b Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Fri, 28 Jun 2024 17:39:22 +0000 Subject: [PATCH 06/12] Remove debug commands --- src/useFirebaseUser.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/useFirebaseUser.ts b/src/useFirebaseUser.ts index f6e9d425..0a74f506 100644 --- a/src/useFirebaseUser.ts +++ b/src/useFirebaseUser.ts @@ -178,16 +178,13 @@ const useFirebaseUser = () => { // https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onidtokenchanged try { const { firebaseClientAppName } = getConfig() - logDebug(`[withUser] firebaseClientAppName |${firebaseClientAppName}|`) const app = getApp(firebaseClientAppName) - logDebug('[withUser] App loaded', app) const unsubscribe = onIdTokenChanged(getAuth(app), onIdTokenChange) return () => { unsubscribe() isCancelled = true } } catch (error) { - logDebug('[withUser] init error', error) throw error } }, []) From ed69ee7f3282b304e0303464cb5dbc072d39c363 Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Fri, 28 Jun 2024 18:20:45 +0000 Subject: [PATCH 07/12] Remove unnecessary try catch --- src/__tests__/initFirebaseClientSDK.test.ts | 15 +++++++++------ src/useFirebaseUser.ts | 17 +++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/__tests__/initFirebaseClientSDK.test.ts b/src/__tests__/initFirebaseClientSDK.test.ts index cfae6104..2533e443 100644 --- a/src/__tests__/initFirebaseClientSDK.test.ts +++ b/src/__tests__/initFirebaseClientSDK.test.ts @@ -30,12 +30,15 @@ describe('initFirebaseClientSDK', () => { expect.assertions(1) const initFirebaseClientSDK = require('src/initFirebaseClientSDK').default initFirebaseClientSDK() - expect(mockInitializeApp).toHaveBeenCalledWith({ - apiKey: 'fakeAPIKey123', - authDomain: 'my-example-app.firebaseapp.com', - databaseURL: 'https://my-example-app.firebaseio.com', - projectId: 'my-example-app-id', - }) + expect(mockInitializeApp).toHaveBeenCalledWith( + { + apiKey: 'fakeAPIKey123', + authDomain: 'my-example-app.firebaseapp.com', + databaseURL: 'https://my-example-app.firebaseio.com', + projectId: 'my-example-app-id', + }, + undefined + ) }) it('does not call firebase.initializeApp if Firebase already has an initialized app', () => { diff --git a/src/useFirebaseUser.ts b/src/useFirebaseUser.ts index 0a74f506..93f9c02b 100644 --- a/src/useFirebaseUser.ts +++ b/src/useFirebaseUser.ts @@ -176,16 +176,13 @@ const useFirebaseUser = () => { } // https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onidtokenchanged - try { - const { firebaseClientAppName } = getConfig() - const app = getApp(firebaseClientAppName) - const unsubscribe = onIdTokenChanged(getAuth(app), onIdTokenChange) - return () => { - unsubscribe() - isCancelled = true - } - } catch (error) { - throw error + + const { firebaseClientAppName } = getConfig() + const app = getApp(firebaseClientAppName) + const unsubscribe = onIdTokenChanged(getAuth(app), onIdTokenChange) + return () => { + unsubscribe() + isCancelled = true } }, []) From c7d8ceb42ff517c1cb23f3fe2285a06514de96a2 Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Sat, 29 Jun 2024 08:43:37 +0000 Subject: [PATCH 08/12] Add example app name --- src/__tests__/initFirebaseClientSDK.test.ts | 2 +- src/configTypes.ts | 1 + src/testHelpers/createMockConfig.ts | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/__tests__/initFirebaseClientSDK.test.ts b/src/__tests__/initFirebaseClientSDK.test.ts index 2533e443..bfd8e488 100644 --- a/src/__tests__/initFirebaseClientSDK.test.ts +++ b/src/__tests__/initFirebaseClientSDK.test.ts @@ -37,7 +37,7 @@ describe('initFirebaseClientSDK', () => { databaseURL: 'https://my-example-app.firebaseio.com', projectId: 'my-example-app-id', }, - undefined + 'example-app-name' ) }) diff --git a/src/configTypes.ts b/src/configTypes.ts index 4d668fc6..014bf8b7 100644 --- a/src/configTypes.ts +++ b/src/configTypes.ts @@ -111,6 +111,7 @@ export const defaultConfig = { onVerifyTokenError: (_err: Error) => {}, // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars onTokenRefreshError: (_err: Error) => {}, + firebaseClientAppName: 'example-app-name', cookies: { // Required to be provided by the user. // name: undefined, diff --git a/src/testHelpers/createMockConfig.ts b/src/testHelpers/createMockConfig.ts index ed51e62c..f54923e5 100644 --- a/src/testHelpers/createMockConfig.ts +++ b/src/testHelpers/createMockConfig.ts @@ -29,6 +29,7 @@ const createMockConfig = ({ clientSide }: { clientSide?: boolean } = {}) => { databaseURL: 'https://my-example-app.firebaseio.com', projectId: 'my-example-app-id', }, + firebaseClientAppName: 'example-app-name', cookies: { name: 'someExample', keys: useClientSideConfig ? [] : ['abc', 'def'], From 6754eed7ef393a4e1bd307cd56c1022bab4ee072 Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Sat, 29 Jun 2024 09:34:09 +0000 Subject: [PATCH 09/12] Remove config mention --- src/createUser.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/createUser.ts b/src/createUser.ts index 88ac9cfd..a2113dba 100644 --- a/src/createUser.ts +++ b/src/createUser.ts @@ -4,7 +4,6 @@ import { DecodedIdToken } from 'firebase-admin/auth' import isClientSide from 'src/isClientSide' import { Claims, filterStandardClaims } from 'src/claims' import { User } from './sharedTypes' -import { getConfig } from './config' interface UserDeserialized { id?: string @@ -105,9 +104,7 @@ const createUser = ({ const { getApp } = require('firebase/app') // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires const { getAuth, signOut } = require('firebase/auth') - const { firebaseClientAppName } = getConfig() - signOutFunc = async () => signOut(getAuth(getApp(firebaseClientAppName))) signOutFunc = async () => signOut(getAuth(getApp())) } From b47089b3a9ec07054414022fcc7ef3f85aa9704f Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Sat, 29 Jun 2024 09:44:46 +0000 Subject: [PATCH 10/12] Bring back firebase client app name --- src/createUser.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/createUser.ts b/src/createUser.ts index a2113dba..9efa8d9c 100644 --- a/src/createUser.ts +++ b/src/createUser.ts @@ -4,6 +4,7 @@ import { DecodedIdToken } from 'firebase-admin/auth' import isClientSide from 'src/isClientSide' import { Claims, filterStandardClaims } from 'src/claims' import { User } from './sharedTypes' +import { getConfig } from './config' interface UserDeserialized { id?: string @@ -104,8 +105,9 @@ const createUser = ({ const { getApp } = require('firebase/app') // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires const { getAuth, signOut } = require('firebase/auth') + const { firebaseClientAppName } = getConfig() - signOutFunc = async () => signOut(getAuth(getApp())) + signOutFunc = async () => signOut(getAuth(getApp(firebaseClientAppName))) } /** From 1b76c5c514f0b35555a2d6b422397754e31f666e Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Sat, 29 Jun 2024 10:16:48 +0000 Subject: [PATCH 11/12] Add mock configs --- src/__tests__/createUser.test.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/__tests__/createUser.test.ts b/src/__tests__/createUser.test.ts index 28fe8496..a9b8ab02 100644 --- a/src/__tests__/createUser.test.ts +++ b/src/__tests__/createUser.test.ts @@ -1,4 +1,6 @@ import { signOut } from 'firebase/auth' +import { setConfig } from 'src/config' +import createMockConfig from 'src/testHelpers/createMockConfig' import { createMockFirebaseUserClientSDK, createMockFirebaseUserAdminSDK, @@ -8,6 +10,8 @@ import { jest.mock('firebase/auth') jest.mock('firebase/app') +const mockSetConfig = jest.mocked(setConfig) + afterEach(() => { jest.clearAllMocks() }) @@ -117,6 +121,9 @@ describe('createUser: basic tests', () => { describe('createUser: firebaseUserClientSDK', () => { it('returns the expected data', () => { expect.assertions(1) + mockSetConfig({ + ...createMockConfig(), + }) const createUser = require('src/createUser').default const firebaseUserJSSDK = createMockFirebaseUserClientSDK() expect(createUser({ firebaseUserClientSDK: firebaseUserJSSDK })).toEqual({ @@ -138,6 +145,9 @@ describe('createUser: firebaseUserClientSDK', () => { it('returns the expected data when custom claims are included', () => { expect.assertions(1) + mockSetConfig({ + ...createMockConfig(), + }) const createUser = require('src/createUser').default const customClaims = { foo: 'bar', @@ -170,6 +180,9 @@ describe('createUser: firebaseUserClientSDK', () => { it('does not throw when custom claims are defined but the client user is not defined', () => { expect.assertions(1) + mockSetConfig({ + ...createMockConfig(), + }) const createUser = require('src/createUser').default expect(() => { createUser({ @@ -186,6 +199,9 @@ describe('createUser: firebaseUserClientSDK', () => { it('returns the expected value from getIdToken', async () => { expect.assertions(1) + mockSetConfig({ + ...createMockConfig(), + }) const createUser = require('src/createUser').default const user = createUser({ firebaseUserClientSDK: createMockFirebaseUserClientSDK(), @@ -196,6 +212,9 @@ describe('createUser: firebaseUserClientSDK', () => { it('returns the expected value from serialize', async () => { expect.assertions(1) + mockSetConfig({ + ...createMockConfig(), + }) const createUser = require('src/createUser').default const user = createUser({ firebaseUserClientSDK: createMockFirebaseUserClientSDK(), @@ -219,6 +238,9 @@ describe('createUser: firebaseUserClientSDK', () => { it("calls Firebase's signOut method when we call user.signOut", async () => { expect.assertions(1) + mockSetConfig({ + ...createMockConfig(), + }) const createUser = require('src/createUser').default const user = createUser({ firebaseUserClientSDK: createMockFirebaseUserClientSDK(), @@ -521,6 +543,9 @@ describe('createUser: serializedUser', () => { it("does not call Firebase's signOut method when we call user.signOut (it should be a noop)", async () => { expect.assertions(1) + mockSetConfig({ + ...createMockConfig(), + }) const createUser = require('src/createUser').default const user = createUser({ serializedUser: createMockSerializedUser(), From 3b1852186dc16874133b610afc51f37eb88eb7ca Mon Sep 17 00:00:00 2001 From: Marcel van Remmerden Date: Mon, 1 Jul 2024 16:07:08 +0200 Subject: [PATCH 12/12] Update configTypes.ts Co-authored-by: Kevin Jennison --- src/configTypes.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/configTypes.ts b/src/configTypes.ts index 014bf8b7..4d668fc6 100644 --- a/src/configTypes.ts +++ b/src/configTypes.ts @@ -111,7 +111,6 @@ export const defaultConfig = { onVerifyTokenError: (_err: Error) => {}, // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars onTokenRefreshError: (_err: Error) => {}, - firebaseClientAppName: 'example-app-name', cookies: { // Required to be provided by the user. // name: undefined,