55 * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
66 */
77import { renderHook } from '@testing-library/react'
8- import React from 'react'
98import { 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