@@ -69,24 +69,55 @@ test('changing preview background keeps applied preview styles', async ({ page }
6969
7070 await expect ( previewFrameRoot ) . toHaveCount ( 1 )
7171 const hasComponentStylesBefore = await previewFrameRoot . evaluate ( ( ) => {
72- const styleElement = document . getElementById ( 'knighted-preview-styles' )
73- if ( ! ( styleElement instanceof HTMLStyleElement ) ) {
72+ const baseStyleElement = document . getElementById ( 'knighted-preview-base-styles' )
73+ const userStyleElement = document . getElementById ( 'knighted-preview-user-styles' )
74+ if (
75+ ! ( baseStyleElement instanceof HTMLStyleElement ) ||
76+ ! ( userStyleElement instanceof HTMLStyleElement )
77+ ) {
7478 return false
7579 }
7680
77- return styleElement . textContent ?. includes ( '.counter-button' ) ?? false
81+ const baseContainsReset =
82+ baseStyleElement . textContent ?. includes ( 'box-sizing: inherit;' )
83+ const userContainsComponentStyles =
84+ userStyleElement . textContent ?. includes ( '.counter-button' )
85+ const styleElements = Array . from ( document . head . querySelectorAll ( 'style' ) )
86+ const baseIndex = styleElements . indexOf ( baseStyleElement )
87+ const userIndex = styleElements . indexOf ( userStyleElement )
88+
89+ return Boolean (
90+ baseContainsReset &&
91+ userContainsComponentStyles &&
92+ baseIndex >= 0 &&
93+ userIndex >= 0 &&
94+ baseIndex < userIndex ,
95+ )
7896 } )
7997 expect ( hasComponentStylesBefore ) . toBe ( true )
8098
8199 await page . getByLabel ( 'Background' ) . fill ( '#b1aaaa' )
82100
83101 const hasComponentStylesAfter = await previewFrameRoot . evaluate ( ( ) => {
84- const styleElement = document . getElementById ( 'knighted-preview-styles' )
85- if ( ! ( styleElement instanceof HTMLStyleElement ) ) {
102+ const baseStyleElements = document . querySelectorAll ( '#knighted-preview-base-styles' )
103+ const userStyleElements = document . querySelectorAll ( '#knighted-preview-user-styles' )
104+ if ( baseStyleElements . length !== 1 || userStyleElements . length !== 1 ) {
86105 return false
87106 }
88107
89- return styleElement . textContent ?. includes ( '.counter-button' ) ?? false
108+ const baseStyleElement = baseStyleElements [ 0 ]
109+ const userStyleElement = userStyleElements [ 0 ]
110+ if (
111+ ! ( baseStyleElement instanceof HTMLStyleElement ) ||
112+ ! ( userStyleElement instanceof HTMLStyleElement )
113+ ) {
114+ return false
115+ }
116+
117+ return (
118+ ( baseStyleElement . textContent ?. includes ( 'box-sizing: inherit;' ) ?? false ) &&
119+ ( userStyleElement . textContent ?. includes ( '.counter-button' ) ?? false )
120+ )
90121 } )
91122 expect ( hasComponentStylesAfter ) . toBe ( true )
92123
0 commit comments