1- // @vitest -environment jsdom
1+ import "../../index.css" ;
22
33import { act } from "react" ;
44import { createRoot , type Root } from "react-dom/client" ;
5- import { afterEach , beforeEach , describe , expect , it , vi } from "vite-plus/test" ;
5+ import { afterEach , beforeEach , describe , expect , it } from "vite-plus/test" ;
6+
7+ import { page , userEvent } from "vite-plus/test/browser" ;
68
79import { Sidebar , SidebarProvider , SidebarTrigger } from "./sidebar" ;
810import { resolveSidebarState } from "./sidebarState" ;
911
1012let root : Root ;
1113let container : HTMLDivElement ;
1214
13- beforeEach ( ( ) => {
14- vi . stubGlobal ( "IS_REACT_ACT_ENVIRONMENT" , true ) ;
15- vi . stubGlobal ( "matchMedia" , ( query : string ) => ( {
16- matches : false ,
17- media : query ,
18- addEventListener : vi . fn ( ) ,
19- removeEventListener : vi . fn ( ) ,
20- } ) ) ;
15+ beforeEach ( async ( ) => {
16+ await page . viewport ( 1280 , 900 ) ;
2117 container = document . createElement ( "div" ) ;
2218 document . body . append ( container ) ;
2319 root = createRoot ( container ) ;
@@ -26,7 +22,6 @@ beforeEach(() => {
2622afterEach ( async ( ) => {
2723 await act ( async ( ) => root . unmount ( ) ) ;
2824 container . remove ( ) ;
29- vi . unstubAllGlobals ( ) ;
3025} ) ;
3126
3227async function renderSidebar ( open : boolean ) {
@@ -73,11 +68,20 @@ describe("desktop sidebar focus", () => {
7368 await renderSidebar ( false ) ;
7469
7570 expect ( document . activeElement ) . toBe ( element ( '[data-testid="external-trigger"]' ) ) ;
76- expect ( sidebar . hasAttribute ( "inert" ) ) . toBe ( true ) ;
71+ expect ( sidebar . inert ) . toBe ( true ) ;
72+ control . focus ( ) ;
73+ expect ( document . activeElement ) . toBe ( element ( '[data-testid="external-trigger"]' ) ) ;
74+ await userEvent . keyboard ( "{Shift>}{Tab}{/Shift}" ) ;
75+ expect ( document . activeElement ) . not . toBe ( element ( '[data-testid="internal-trigger"]' ) ) ;
76+ expect ( document . activeElement ) . not . toBe ( control ) ;
77+ await userEvent . keyboard ( "{Tab}" ) ;
78+ expect ( document . activeElement ) . toBe ( element ( '[data-testid="external-trigger"]' ) ) ;
79+ await userEvent . keyboard ( "{Tab}" ) ;
80+ expect ( document . activeElement ) . toBe ( element ( '[data-testid="content-control"]' ) ) ;
7781
7882 await renderSidebar ( true ) ;
7983
80- expect ( sidebar . hasAttribute ( " inert" ) ) . toBe ( false ) ;
84+ expect ( sidebar . inert ) . toBe ( false ) ;
8185 control . focus ( ) ;
8286 expect ( document . activeElement ) . toBe ( control ) ;
8387 } ) ;
0 commit comments