Skip to content

Commit

Permalink
test: improved context mocking on TestProvider (#7433)
Browse files Browse the repository at this point in the history
  • Loading branch information
jordanl17 committed Aug 30, 2024
1 parent c259119 commit 58863af
Showing 1 changed file with 34 additions and 16 deletions.
50 changes: 34 additions & 16 deletions packages/sanity/test/testUtils/TestProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import {type SanityClient} from '@sanity/client'
import {LayerProvider, studioTheme, ThemeProvider, ToastProvider} from '@sanity/ui'
import {noop} from 'lodash'
import {type ReactNode} from 'react'
import {AddonDatasetContext} from 'sanity/_singletons'

import {
CopyPasteProvider,
Expand All @@ -14,9 +16,10 @@ import {
} from '../../src/core'
import {studioDefaultLocaleResources} from '../../src/core/i18n/bundles/studio'
import {prepareI18n} from '../../src/core/i18n/i18nConfig'
import {route, RouterProvider} from '../../src/router'
import {getMockWorkspace} from './getMockWorkspaceFromConfig'

interface TestProviderOptions {
export interface TestProviderOptions {
config?: SingleWorkspace
client?: SanityClient
resources?: LocaleResourceBundle[]
Expand All @@ -37,25 +40,40 @@ export async function createTestProvider({
i18n: {bundles: resources},
})

const router = route.create('/')

await i18next.init()

function TestProvider({children}: {children: ReactNode}) {
return (
<ThemeProvider theme={studioTheme}>
<LocaleProviderBase locales={locales} i18next={i18next} projectId="test" sourceId="test">
<ToastProvider>
<LayerProvider>
<WorkspaceProvider workspace={workspace}>
<SourceProvider source={workspace.unstable_sources[0]}>
<CopyPasteProvider>
<ResourceCacheProvider>{children}</ResourceCacheProvider>
</CopyPasteProvider>
</SourceProvider>
</WorkspaceProvider>
</LayerProvider>
</ToastProvider>
</LocaleProviderBase>
</ThemeProvider>
<RouterProvider router={router} state={{}} onNavigate={noop}>
<ThemeProvider theme={studioTheme}>
<LocaleProviderBase locales={locales} i18next={i18next} projectId="test" sourceId="test">
<ToastProvider>
<LayerProvider>
<WorkspaceProvider workspace={workspace}>
<SourceProvider source={workspace.unstable_sources[0]}>
<CopyPasteProvider>
<ResourceCacheProvider>
<AddonDatasetContext.Provider
value={{
createAddonDataset: async () => Promise.resolve(null),
isCreatingDataset: false,
client: null,
ready: true,
}}
>
{children}
</AddonDatasetContext.Provider>
</ResourceCacheProvider>
</CopyPasteProvider>
</SourceProvider>
</WorkspaceProvider>
</LayerProvider>
</ToastProvider>
</LocaleProviderBase>
</ThemeProvider>
</RouterProvider>
)
}

Expand Down

0 comments on commit 58863af

Please sign in to comment.