@@ -30,6 +30,20 @@ jest.mock('docc-render/utils/scroll-lock');
3030jest . mock ( 'docc-render/utils/storage' ) ;
3131jest . mock ( 'docc-render/utils/theme-settings' ) ;
3232
33+ const swiftChildren = [
34+ 'swiftChildrenMock' ,
35+ ] ;
36+ const objcChildren = [
37+ 'objcChildrenMock' ,
38+ ] ;
39+ jest . mock ( 'docc-render/stores/IndexStore' , ( ) => ( {
40+ state : {
41+ flatChildren : {
42+ swift : swiftChildren ,
43+ } ,
44+ } ,
45+ } ) ) ;
46+
3347storage . get . mockImplementation ( ( key , value ) => value ) ;
3448
3549const TechnologyWithChildren = {
@@ -273,6 +287,64 @@ describe('DocumentationLayout', () => {
273287 expect ( quickNavigationModalComponent . exists ( ) ) . toBe ( false ) ;
274288 } ) ;
275289
290+ it ( 'QuickNavigation renders Swift items' , async ( ) => {
291+ getSetting . mockReturnValueOnce ( true ) ;
292+ wrapper = createWrapper ( {
293+ stubs : {
294+ ...stubs ,
295+ Nav : DocumentationNav ,
296+ NavBase,
297+ } ,
298+ } ) ;
299+ wrapper . setProps ( {
300+ enableNavigator : true ,
301+ } ) ;
302+ await wrapper . vm . $nextTick ( ) ;
303+ expect ( wrapper . find ( QuickNavigationModal ) . props ( 'children' ) ) . toEqual ( swiftChildren ) ;
304+ } ) ;
305+
306+ it ( 'QuickNavigation falls back to swift items, if no objc items' , async ( ) => {
307+ getSetting . mockReturnValueOnce ( true ) ;
308+ wrapper = createWrapper ( {
309+ stubs : {
310+ ...stubs ,
311+ Nav : DocumentationNav ,
312+ NavBase,
313+ } ,
314+ } ) ;
315+ wrapper . setProps ( {
316+ enableNavigator : true ,
317+ interfaceLanguage : Language . objectiveC . key . url ,
318+ } ) ;
319+ await wrapper . vm . $nextTick ( ) ;
320+ expect ( wrapper . find ( QuickNavigationModal ) . props ( 'children' ) ) . toEqual ( swiftChildren ) ;
321+ } ) ;
322+
323+ it ( 'QuickNavigation renders objc items' , async ( ) => {
324+ getSetting . mockReturnValueOnce ( true ) ;
325+ wrapper = createWrapper ( {
326+ stubs : {
327+ ...stubs ,
328+ Nav : DocumentationNav ,
329+ NavBase,
330+ } ,
331+ } ) ;
332+ wrapper . setProps ( {
333+ enableNavigator : true ,
334+ interfaceLanguage : Language . objectiveC . key . url ,
335+ } ) ;
336+ wrapper . setData ( {
337+ indexState : {
338+ flatChildren : {
339+ [ Language . swift . key . url ] : swiftChildren ,
340+ [ Language . objectiveC . key . url ] : objcChildren ,
341+ } ,
342+ } ,
343+ } ) ;
344+ await wrapper . vm . $nextTick ( ) ;
345+ expect ( wrapper . find ( QuickNavigationModal ) . props ( 'children' ) ) . toEqual ( objcChildren ) ;
346+ } ) ;
347+
276348 describe ( 'if breakpoint is small' , ( ) => {
277349 beforeEach ( ( ) => {
278350 wrapper = createWrapper ( {
0 commit comments