33import React from 'react' ;
44import { render } from '@testing-library/react' ;
55
6+ import { isThemeActive } from '@cloudscape-design/component-toolkit/internal' ;
7+
68import AppLayout from '../../../lib/components/app-layout' ;
79import { BeforeMainSlotSkeleton } from '../../../lib/components/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts' ;
810import AppLayoutToolbar from '../../../lib/components/app-layout-toolbar' ;
911import BreadcrumbGroup from '../../../lib/components/breadcrumb-group' ;
1012import { getFunnelKeySelector } from '../../../lib/components/internal/analytics/selectors' ;
13+ import { getIconHTML } from '../../icon/__tests__/utils' ;
1114import { describeEachAppLayout , renderComponent } from './utils' ;
1215
1316import testutilStyles from '../../../lib/components/app-layout/test-classes/styles.selectors.js' ;
@@ -34,6 +37,15 @@ jest.mock('../../../lib/components/internal/widgets', () => ({
3437 createWidgetizedComponent : createWidgetizedComponentMock ,
3538} ) ) ;
3639
40+ jest . mock ( '@cloudscape-design/component-toolkit/internal' , ( ) => ( {
41+ ...jest . requireActual ( '@cloudscape-design/component-toolkit/internal' ) ,
42+ isThemeActive : jest . fn ( ) . mockReturnValue ( false ) ,
43+ } ) ) ;
44+
45+ afterEach ( ( ) => {
46+ ( isThemeActive as jest . Mock ) . mockReturnValue ( false ) ;
47+ } ) ;
48+
3749describeEachAppLayout ( { themes : [ 'refresh-toolbar' ] } , ( ) => {
3850 it ( 'renders complete component by default' , ( ) => {
3951 const { wrapper } = renderComponent (
@@ -61,6 +73,17 @@ describeEachAppLayout({ themes: ['refresh-toolbar'] }, () => {
6173 widgetMockEnabled = false ;
6274 } ) ;
6375
76+ it ( 'renders the menu icon on the navigation toggle' , ( ) => {
77+ const { wrapper } = renderComponent ( < AppLayout navigation = "test nav" /> ) ;
78+ expect ( wrapper . findNavigationToggle ( ) ! . findIcon ( ) ! . getElement ( ) ) . toContainHTML ( getIconHTML ( 'menu' ) ) ;
79+ } ) ;
80+
81+ it ( 'renders the side-bar icon on the navigation toggle in One Theme' , ( ) => {
82+ ( isThemeActive as jest . Mock ) . mockReturnValue ( true ) ;
83+ const { wrapper } = renderComponent ( < AppLayout navigation = "test nav" /> ) ;
84+ expect ( wrapper . findNavigationToggle ( ) ! . findIcon ( ) ! . getElement ( ) ) . toContainHTML ( getIconHTML ( 'side-bar' ) ) ;
85+ } ) ;
86+
6487 it ( 'renders skeleton parts only' , ( ) => {
6588 const { wrapper } = renderComponent (
6689 < AppLayout
0 commit comments