Skip to content

Commit fb18df8

Browse files
committed
fix: correct test bugs in ShopperExperienceV2
- Fix registry test to check for correct method names (registerComponent, registerImporter) - Simplify usePageDesignerParams test by mocking useConfig instead of full provider setup
1 parent 7aca615 commit fb18df8

File tree

2 files changed

+22
-56
lines changed

2 files changed

+22
-56
lines changed

packages/commerce-sdk-react/src/components/ShopperExperienceV2/registry.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ describe('registry', () => {
4141
test('registry has expected methods', () => {
4242
// Cast to access internal methods for testing
4343
const registryInstance = registry as unknown as Record<string, unknown>
44-
expect(typeof registryInstance.register).toBe('function')
44+
expect(typeof registryInstance.registerComponent).toBe('function')
45+
expect(typeof registryInstance.registerImporter).toBe('function')
4546
expect(typeof registryInstance.getComponent).toBe('function')
4647
expect(typeof registryInstance.getFallback).toBe('function')
4748
expect(typeof registryInstance.preload).toBe('function')

packages/commerce-sdk-react/src/hooks/ShopperExperience/usePageDesignerParams.test.tsx

Lines changed: 20 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -5,70 +5,38 @@
55
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
66
*/
77
import {renderHook} from '@testing-library/react'
8-
import React from 'react'
98
import {usePageDesignerParams} from './usePageDesignerParams'
10-
import CommerceApiProvider from '../../provider'
11-
import {QueryClient, QueryClientProvider} from '@tanstack/react-query'
9+
import useConfig from '../useConfig'
1210

13-
const DEFAULT_CONFIG = {
14-
proxy: 'http://localhost:8888/mobify/proxy/api',
15-
redirectURI: 'http://localhost:8888/callback',
16-
clientId: '12345678-1234-1234-1234-123412341234',
17-
organizationId: 'f_ecom_zzrmy_orgf_001',
18-
shortCode: '12345678',
19-
siteId: 'RefArchGlobal',
20-
locale: 'en-US',
21-
currency: 'USD'
22-
}
11+
jest.mock('../useConfig')
12+
const mockUseConfig = useConfig as jest.MockedFunction<typeof useConfig>
2313

24-
const createWrapper = (pageDesignerParams?: {
25-
mode?: 'edit' | 'preview'
26-
pdToken?: string
27-
pageId?: string
28-
}) => {
29-
const queryClient = new QueryClient({
30-
defaultOptions: {queries: {retry: false}, mutations: {retry: false}}
14+
describe('usePageDesignerParams', () => {
15+
beforeEach(() => {
16+
jest.clearAllMocks()
3117
})
32-
const Wrapper = ({children}: {children: React.ReactNode}) => (
33-
<QueryClientProvider client={queryClient}>
34-
<CommerceApiProvider {...DEFAULT_CONFIG} pageDesignerParams={pageDesignerParams}>
35-
{children}
36-
</CommerceApiProvider>
37-
</QueryClientProvider>
38-
)
39-
return Wrapper
40-
}
4118

42-
describe('usePageDesignerParams', () => {
4319
test('returns empty object when no pageDesignerParams provided', () => {
44-
const {result} = renderHook(() => usePageDesignerParams(), {
45-
wrapper: createWrapper()
46-
})
47-
20+
mockUseConfig.mockReturnValue({} as any)
21+
const {result} = renderHook(() => usePageDesignerParams())
4822
expect(result.current).toEqual({})
4923
})
5024

5125
test('returns mode when provided', () => {
52-
const {result} = renderHook(() => usePageDesignerParams(), {
53-
wrapper: createWrapper({mode: 'edit'})
54-
})
55-
26+
mockUseConfig.mockReturnValue({pageDesignerParams: {mode: 'edit'}} as any)
27+
const {result} = renderHook(() => usePageDesignerParams())
5628
expect(result.current.mode).toBe('edit')
5729
})
5830

5931
test('returns pdToken when provided', () => {
60-
const {result} = renderHook(() => usePageDesignerParams(), {
61-
wrapper: createWrapper({pdToken: 'test-token'})
62-
})
63-
32+
mockUseConfig.mockReturnValue({pageDesignerParams: {pdToken: 'test-token'}} as any)
33+
const {result} = renderHook(() => usePageDesignerParams())
6434
expect(result.current.pdToken).toBe('test-token')
6535
})
6636

6737
test('returns pageId when provided', () => {
68-
const {result} = renderHook(() => usePageDesignerParams(), {
69-
wrapper: createWrapper({pageId: 'test-page-id'})
70-
})
71-
38+
mockUseConfig.mockReturnValue({pageDesignerParams: {pageId: 'test-page-id'}} as any)
39+
const {result} = renderHook(() => usePageDesignerParams())
7240
expect(result.current.pageId).toBe('test-page-id')
7341
})
7442

@@ -78,19 +46,16 @@ describe('usePageDesignerParams', () => {
7846
pdToken: 'my-token',
7947
pageId: 'my-page'
8048
}
81-
82-
const {result} = renderHook(() => usePageDesignerParams(), {
83-
wrapper: createWrapper(pageDesignerParams)
84-
})
85-
49+
mockUseConfig.mockReturnValue({pageDesignerParams} as any)
50+
const {result} = renderHook(() => usePageDesignerParams())
8651
expect(result.current).toEqual(pageDesignerParams)
8752
})
8853

8954
test('returns partial params when partially provided', () => {
90-
const {result} = renderHook(() => usePageDesignerParams(), {
91-
wrapper: createWrapper({mode: 'edit', pdToken: 'token'})
92-
})
93-
55+
mockUseConfig.mockReturnValue({
56+
pageDesignerParams: {mode: 'edit', pdToken: 'token'}
57+
} as any)
58+
const {result} = renderHook(() => usePageDesignerParams())
9459
expect(result.current.mode).toBe('edit')
9560
expect(result.current.pdToken).toBe('token')
9661
expect(result.current.pageId).toBeUndefined()

0 commit comments

Comments
 (0)