Skip to content

Commit 58863af

Browse files
authored
test: improved context mocking on TestProvider (#7433)
1 parent c259119 commit 58863af

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

packages/sanity/test/testUtils/TestProvider.tsx

+34-16
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import {type SanityClient} from '@sanity/client'
22
import {LayerProvider, studioTheme, ThemeProvider, ToastProvider} from '@sanity/ui'
3+
import {noop} from 'lodash'
34
import {type ReactNode} from 'react'
5+
import {AddonDatasetContext} from 'sanity/_singletons'
46

57
import {
68
CopyPasteProvider,
@@ -14,9 +16,10 @@ import {
1416
} from '../../src/core'
1517
import {studioDefaultLocaleResources} from '../../src/core/i18n/bundles/studio'
1618
import {prepareI18n} from '../../src/core/i18n/i18nConfig'
19+
import {route, RouterProvider} from '../../src/router'
1720
import {getMockWorkspace} from './getMockWorkspaceFromConfig'
1821

19-
interface TestProviderOptions {
22+
export interface TestProviderOptions {
2023
config?: SingleWorkspace
2124
client?: SanityClient
2225
resources?: LocaleResourceBundle[]
@@ -37,25 +40,40 @@ export async function createTestProvider({
3740
i18n: {bundles: resources},
3841
})
3942

43+
const router = route.create('/')
44+
4045
await i18next.init()
4146

4247
function TestProvider({children}: {children: ReactNode}) {
4348
return (
44-
<ThemeProvider theme={studioTheme}>
45-
<LocaleProviderBase locales={locales} i18next={i18next} projectId="test" sourceId="test">
46-
<ToastProvider>
47-
<LayerProvider>
48-
<WorkspaceProvider workspace={workspace}>
49-
<SourceProvider source={workspace.unstable_sources[0]}>
50-
<CopyPasteProvider>
51-
<ResourceCacheProvider>{children}</ResourceCacheProvider>
52-
</CopyPasteProvider>
53-
</SourceProvider>
54-
</WorkspaceProvider>
55-
</LayerProvider>
56-
</ToastProvider>
57-
</LocaleProviderBase>
58-
</ThemeProvider>
49+
<RouterProvider router={router} state={{}} onNavigate={noop}>
50+
<ThemeProvider theme={studioTheme}>
51+
<LocaleProviderBase locales={locales} i18next={i18next} projectId="test" sourceId="test">
52+
<ToastProvider>
53+
<LayerProvider>
54+
<WorkspaceProvider workspace={workspace}>
55+
<SourceProvider source={workspace.unstable_sources[0]}>
56+
<CopyPasteProvider>
57+
<ResourceCacheProvider>
58+
<AddonDatasetContext.Provider
59+
value={{
60+
createAddonDataset: async () => Promise.resolve(null),
61+
isCreatingDataset: false,
62+
client: null,
63+
ready: true,
64+
}}
65+
>
66+
{children}
67+
</AddonDatasetContext.Provider>
68+
</ResourceCacheProvider>
69+
</CopyPasteProvider>
70+
</SourceProvider>
71+
</WorkspaceProvider>
72+
</LayerProvider>
73+
</ToastProvider>
74+
</LocaleProviderBase>
75+
</ThemeProvider>
76+
</RouterProvider>
5977
)
6078
}
6179

0 commit comments

Comments
 (0)