@@ -12,9 +12,19 @@ import {
1212 cleanup ,
1313 waitFor ,
1414} from '@mongodb-js/testing-library-compass' ;
15+ import {
16+ createSandboxFromDefaultPreferences ,
17+ type PreferencesAccess ,
18+ } from 'compass-preferences-model' ;
19+ import { PreferencesProvider } from 'compass-preferences-model/provider' ;
1520
1621describe ( 'NamespaceProvider' , function ( ) {
1722 const sandbox = Sinon . createSandbox ( ) ;
23+ let preferences : PreferencesAccess ;
24+
25+ beforeEach ( async function ( ) {
26+ preferences = await createSandboxFromDefaultPreferences ( ) ;
27+ } ) ;
1828
1929 afterEach ( function ( ) {
2030 cleanup ( ) ;
@@ -24,49 +34,59 @@ describe('NamespaceProvider', function () {
2434 it ( 'should immediately render content if database exists' , async function ( ) {
2535 const instanceManager = new TestMongoDBInstanceManager ( {
2636 databases : [ { _id : 'foo' } ] as any ,
37+ preferences,
2738 } ) ;
2839 await renderWithActiveConnection (
29- < MongoDBInstancesManagerProvider value = { instanceManager } >
30- < NamespaceProvider namespace = "foo" > hello</ NamespaceProvider >
31- </ MongoDBInstancesManagerProvider >
40+ < PreferencesProvider value = { preferences } >
41+ < MongoDBInstancesManagerProvider value = { instanceManager } >
42+ < NamespaceProvider namespace = "foo" > hello</ NamespaceProvider >
43+ </ MongoDBInstancesManagerProvider >
44+ </ PreferencesProvider >
3245 ) ;
3346 expect ( screen . getByText ( 'hello' ) ) . to . exist ;
3447 } ) ;
3548
3649 it ( 'should immediately render content if collection exists' , async function ( ) {
3750 const instanceManager = new TestMongoDBInstanceManager ( {
3851 databases : [ { _id : 'foo' , collections : [ { _id : 'foo.bar' } ] } ] as any ,
52+ preferences,
3953 } ) ;
4054 await renderWithActiveConnection (
41- < MongoDBInstancesManagerProvider value = { instanceManager } >
42- < NamespaceProvider namespace = "foo.bar" > hello</ NamespaceProvider >
43- </ MongoDBInstancesManagerProvider >
55+ < PreferencesProvider value = { preferences } >
56+ < MongoDBInstancesManagerProvider value = { instanceManager } >
57+ < NamespaceProvider namespace = "foo.bar" > hello</ NamespaceProvider >
58+ </ MongoDBInstancesManagerProvider >
59+ </ PreferencesProvider >
4460 ) ;
4561 expect ( screen . getByText ( 'hello' ) ) . to . exist ;
4662 } ) ;
4763
4864 it ( "should not render content when namespace doesn't exist" , async function ( ) {
49- const instanceManager = new TestMongoDBInstanceManager ( ) ;
65+ const instanceManager = new TestMongoDBInstanceManager ( { preferences } ) ;
5066 await renderWithActiveConnection (
51- < MongoDBInstancesManagerProvider value = { instanceManager } >
52- < NamespaceProvider namespace = "foo.bar" > hello</ NamespaceProvider >
53- </ MongoDBInstancesManagerProvider >
67+ < PreferencesProvider value = { preferences } >
68+ < MongoDBInstancesManagerProvider value = { instanceManager } >
69+ < NamespaceProvider namespace = "foo.bar" > hello</ NamespaceProvider >
70+ </ MongoDBInstancesManagerProvider >
71+ </ PreferencesProvider >
5472 ) ;
5573 expect ( screen . queryByText ( 'hello' ) ) . to . not . exist ;
5674 } ) ;
5775
5876 it ( 'should render content eventually if namespace is resolved async' , async function ( ) {
59- const instanceManager = new TestMongoDBInstanceManager ( ) ;
77+ const instanceManager = new TestMongoDBInstanceManager ( { preferences } ) ;
6078 const instance = instanceManager . getMongoDBInstanceForConnection ( ) ;
6179 sandbox . stub ( instance , 'fetchDatabases' ) . callsFake ( ( ) => {
6280 instance . databases . add ( { _id : 'foo' } ) ;
6381 return Promise . resolve ( ) ;
6482 } ) ;
6583
6684 await renderWithActiveConnection (
67- < MongoDBInstancesManagerProvider value = { instanceManager } >
68- < NamespaceProvider namespace = "foo" > hello</ NamespaceProvider >
69- </ MongoDBInstancesManagerProvider >
85+ < PreferencesProvider value = { preferences } >
86+ < MongoDBInstancesManagerProvider value = { instanceManager } >
87+ < NamespaceProvider namespace = "foo" > hello</ NamespaceProvider >
88+ </ MongoDBInstancesManagerProvider >
89+ </ PreferencesProvider >
7090 ) ;
7191
7292 expect ( screen . queryByText ( 'hello' ) ) . to . not . exist ;
@@ -80,16 +100,19 @@ describe('NamespaceProvider', function () {
80100 const onNamespaceFallbackSelect = sandbox . spy ( ) ;
81101 const instanceManager = new TestMongoDBInstanceManager ( {
82102 databases : [ { _id : 'foo' } ] as any ,
103+ preferences,
83104 } ) ;
84105 await renderWithActiveConnection (
85- < MongoDBInstancesManagerProvider value = { instanceManager } >
86- < NamespaceProvider
87- namespace = "foo.bar"
88- onNamespaceFallbackSelect = { onNamespaceFallbackSelect }
89- >
90- hello
91- </ NamespaceProvider >
92- </ MongoDBInstancesManagerProvider >
106+ < PreferencesProvider value = { preferences } >
107+ < MongoDBInstancesManagerProvider value = { instanceManager } >
108+ < NamespaceProvider
109+ namespace = "foo.bar"
110+ onNamespaceFallbackSelect = { onNamespaceFallbackSelect }
111+ >
112+ hello
113+ </ NamespaceProvider >
114+ </ MongoDBInstancesManagerProvider >
115+ </ PreferencesProvider >
93116 ) ;
94117 await waitFor ( ( ) => {
95118 expect ( onNamespaceFallbackSelect ) . to . be . calledOnceWithExactly ( 'foo' ) ;
@@ -98,16 +121,20 @@ describe('NamespaceProvider', function () {
98121
99122 it ( 'should call onNamespaceFallbackSelect with `null` if namespace is not found' , async function ( ) {
100123 const onNamespaceFallbackSelect = sandbox . spy ( ) ;
101- const instanceManager = new TestMongoDBInstanceManager ( ) ;
124+ const instanceManager = new TestMongoDBInstanceManager ( {
125+ preferences,
126+ } ) ;
102127 await renderWithActiveConnection (
103- < MongoDBInstancesManagerProvider value = { instanceManager } >
104- < NamespaceProvider
105- namespace = "foo.bar"
106- onNamespaceFallbackSelect = { onNamespaceFallbackSelect }
107- >
108- hello
109- </ NamespaceProvider >
110- </ MongoDBInstancesManagerProvider >
128+ < PreferencesProvider value = { preferences } >
129+ < MongoDBInstancesManagerProvider value = { instanceManager } >
130+ < NamespaceProvider
131+ namespace = "foo.bar"
132+ onNamespaceFallbackSelect = { onNamespaceFallbackSelect }
133+ >
134+ hello
135+ </ NamespaceProvider >
136+ </ MongoDBInstancesManagerProvider >
137+ </ PreferencesProvider >
111138 ) ;
112139 await waitFor ( ( ) => {
113140 expect ( onNamespaceFallbackSelect ) . to . be . calledOnceWithExactly ( null ) ;
0 commit comments