1
1
import { type SanityClient } from '@sanity/client'
2
2
import { LayerProvider , studioTheme , ThemeProvider , ToastProvider } from '@sanity/ui'
3
+ import { noop } from 'lodash'
3
4
import { type ReactNode } from 'react'
5
+ import { AddonDatasetContext } from 'sanity/_singletons'
4
6
5
7
import {
6
8
CopyPasteProvider ,
@@ -14,9 +16,10 @@ import {
14
16
} from '../../src/core'
15
17
import { studioDefaultLocaleResources } from '../../src/core/i18n/bundles/studio'
16
18
import { prepareI18n } from '../../src/core/i18n/i18nConfig'
19
+ import { route , RouterProvider } from '../../src/router'
17
20
import { getMockWorkspace } from './getMockWorkspaceFromConfig'
18
21
19
- interface TestProviderOptions {
22
+ export interface TestProviderOptions {
20
23
config ?: SingleWorkspace
21
24
client ?: SanityClient
22
25
resources ?: LocaleResourceBundle [ ]
@@ -37,25 +40,40 @@ export async function createTestProvider({
37
40
i18n : { bundles : resources } ,
38
41
} )
39
42
43
+ const router = route . create ( '/' )
44
+
40
45
await i18next . init ( )
41
46
42
47
function TestProvider ( { children} : { children : ReactNode } ) {
43
48
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 >
59
77
)
60
78
}
61
79
0 commit comments