@@ -11,7 +11,7 @@ import { pascalCase } from 'change-case';
1111
1212import { clearVisualRefreshState } from '@cloudscape-design/component-toolkit/internal/testing' ;
1313
14- import { Modal } from '../../../lib/components' ;
14+ import { Dropdown , Modal } from '../../../lib/components' ;
1515import Button from '../../../lib/components/button' ;
1616import createWrapperDom , { ElementWrapper as DomElementWrapper } from '../../../lib/components/test-utils/dom' ;
1717import createWrapperSelectors from '../../../lib/components/test-utils/selectors' ;
@@ -249,3 +249,37 @@ describe.each(componentWithMultipleRootElements)('ElementWrapper selectors for %
249249 } ) ;
250250 } ) ;
251251} ) ;
252+
253+ describe ( 'DropdownWrapper test-utils' , ( ) => {
254+ test ( 'findOpenDropdown returns null when dropdown is closed' , ( ) => {
255+ const { container } = renderTestingLibrary (
256+ < Dropdown trigger = { < button /> } open = { false } content = { < div > content</ div > } />
257+ ) ;
258+ const wrapper = createWrapperDom ( container ) . findDropdown ( ) ! ;
259+ expect ( wrapper . findOpenDropdown ( ) ) . toBeNull ( ) ;
260+ } ) ;
261+
262+ test ( 'findOpenDropdown returns the open dropdown element when open' , ( ) => {
263+ const { container } = renderTestingLibrary (
264+ < Dropdown trigger = { < button /> } open = { true } content = { < div > content</ div > } />
265+ ) ;
266+ const wrapper = createWrapperDom ( container ) . findDropdown ( ) ! ;
267+ expect ( wrapper . findOpenDropdown ( ) ) . not . toBeNull ( ) ;
268+ } ) ;
269+
270+ test ( 'findOpenDropdown with expandToViewport finds portaled dropdown' , ( ) => {
271+ const { container } = renderTestingLibrary (
272+ < Dropdown trigger = { < button /> } open = { true } expandToViewport = { true } content = { < div > content</ div > } />
273+ ) ;
274+ const wrapper = createWrapperDom ( container ) . findDropdown ( ) ! ;
275+ expect ( wrapper . findOpenDropdown ( { expandToViewport : true } ) ) . not . toBeNull ( ) ;
276+ } ) ;
277+
278+ test ( 'findOpenDropdown with expandToViewport returns null when closed' , ( ) => {
279+ const { container } = renderTestingLibrary (
280+ < Dropdown trigger = { < button /> } open = { false } expandToViewport = { true } content = { < div > content</ div > } />
281+ ) ;
282+ const wrapper = createWrapperDom ( container ) . findDropdown ( ) ! ;
283+ expect ( wrapper . findOpenDropdown ( { expandToViewport : true } ) ) . toBeNull ( ) ;
284+ } ) ;
285+ } ) ;
0 commit comments