@@ -40,15 +40,15 @@ describe('ui', () => {
4040 it ( 'renders core HTML structure' , async ( ) => {
4141 const consoleErrorSpy = vi . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
4242
43- const { container , getByTestId } = await renderServerComponent ( PrimerRoot , {
43+ const { getByTestId } = await renderServerComponent ( PrimerRoot , {
4444 ...defaultProps ,
4545 lang : 'en' ,
4646 } ) ;
4747
4848 consoleErrorSpy . mockRestore ( ) ;
4949
50- const html = container . querySelector ( 'html' ) ;
51- const body = container . querySelector ( ' body' ) ;
50+ const html = document . documentElement ;
51+ const body = document . body ;
5252 const children = getByTestId ( 'test-children' ) ;
5353
5454 expect ( html ) . toBeInTheDocument ( ) ;
@@ -69,44 +69,44 @@ describe('ui', () => {
6969 } ) ;
7070
7171 it ( 'renders with default light theme when no color mode is provided' , async ( ) => {
72- const { container , getByTestId } = await renderServerComponent ( PrimerRoot , defaultProps ) ;
72+ const { getByTestId } = await renderServerComponent ( PrimerRoot , defaultProps ) ;
7373
7474 const autoThemeProvider = getByTestId ( 'auto-theme-provider' ) ;
7575
76- expect ( container . querySelector ( 'html' ) ) . toHaveAttribute ( 'data-color-mode' , 'light' ) ;
76+ expect ( document . documentElement ) . toHaveAttribute ( 'data-color-mode' , 'light' ) ;
7777 expect ( autoThemeProvider ) . toHaveAttribute ( 'data-default-color-mode' , 'light' ) ;
7878 } ) ;
7979
8080 it ( 'uses dark theme when colorMode prop is "dark"' , async ( ) => {
8181 mockCookieStore . get . mockResolvedValueOnce ( { value : 'light' } ) ;
8282
83- const { container } = await renderServerComponent ( PrimerRoot , {
83+ await renderServerComponent ( PrimerRoot , {
8484 ...defaultProps ,
8585 colorMode : 'dark' ,
8686 defaultColorMode : 'light' ,
8787 } ) ;
8888
89- expect ( container . querySelector ( 'html' ) ) . toHaveAttribute ( 'data-color-mode' , 'dark' ) ;
89+ expect ( document . documentElement ) . toHaveAttribute ( 'data-color-mode' , 'dark' ) ;
9090 } ) ;
9191
9292 it ( 'uses cookie value for color mode when available' , async ( ) => {
9393 mockCookieStore . get . mockResolvedValueOnce ( { value : 'dark' } ) ;
9494
95- const { container } = await renderServerComponent ( PrimerRoot , {
95+ await renderServerComponent ( PrimerRoot , {
9696 ...defaultProps ,
9797 defaultColorMode : 'light' ,
9898 } ) ;
9999
100- expect ( container . querySelector ( 'html' ) ) . toHaveAttribute ( 'data-color-mode' , 'dark' ) ;
100+ expect ( document . documentElement ) . toHaveAttribute ( 'data-color-mode' , 'dark' ) ;
101101 } ) ;
102102
103103 it ( 'uses defaultColorMode when no cookie or colorMode prop is provided' , async ( ) => {
104- const { container } = await renderServerComponent ( PrimerRoot , {
104+ await renderServerComponent ( PrimerRoot , {
105105 ...defaultProps ,
106106 defaultColorMode : 'dark' ,
107107 } ) ;
108108
109- expect ( container . querySelector ( 'html' ) ) . toHaveAttribute ( 'data-color-mode' , 'dark' ) ;
109+ expect ( document . documentElement ) . toHaveAttribute ( 'data-color-mode' , 'dark' ) ;
110110 } ) ;
111111
112112 it ( 'passes preventSSRMismatch prop to AutoThemeProvider' , async ( ) => {
@@ -120,25 +120,23 @@ describe('ui', () => {
120120 } ) ;
121121
122122 it ( 'passes additional props to the HTML element' , async ( ) => {
123- const { container } = await renderServerComponent ( PrimerRoot , {
123+ await renderServerComponent ( PrimerRoot , {
124124 ...defaultProps ,
125125 htmlProps : {
126126 'data-custom-attribute' : 'customValue' ,
127127 } ,
128128 } ) ;
129129
130- const html = container . querySelector ( 'html' ) ;
131- expect ( html ) . toHaveAttribute ( 'data-custom-attribute' , 'customValue' ) ;
130+ expect ( document . documentElement ) . toHaveAttribute ( 'data-custom-attribute' , 'customValue' ) ;
132131 } ) ;
133132
134- it ( 'renders headChildren in the head' , async ( ) => {
135- const { container } = await renderServerComponent ( PrimerRoot , {
133+ it ( 'injects headChildren in the head' , async ( ) => {
134+ await renderServerComponent ( PrimerRoot , {
136135 ...defaultProps ,
137136 headChildren : < meta name = "description" content = "Test description" /> ,
138137 } ) ;
139138
140- const head = container . querySelector ( 'head' ) ;
141- const meta = head . querySelector ( 'meta[name="description"]' ) ;
139+ const meta = document . head . querySelector ( 'meta[name="description"]' ) ;
142140
143141 expect ( meta ) . toBeInTheDocument ( ) ;
144142 expect ( meta ) . toHaveAttribute ( 'content' , 'Test description' ) ;
@@ -155,5 +153,7 @@ describe('ui', () => {
155153async function renderServerComponent ( asyncComponent , props ) {
156154 const componentPromise = typeof asyncComponent === 'function' ? asyncComponent ( props ) : asyncComponent ;
157155 const resolvedComponent = await componentPromise ;
158- return render ( resolvedComponent ) ;
156+ return render ( resolvedComponent , {
157+ document : global . document ,
158+ } ) ;
159159}
0 commit comments