@@ -263,3 +263,61 @@ test('clearing styles keeps diagnostics error state but resets status styling',
263263 )
264264 await expect ( page . locator ( '#diagnostics-toggle' ) ) . toHaveText ( / D i a g n o s t i c s \( [ 1 - 9 ] \d * \) / )
265265} )
266+
267+ test ( 'clear component diagnostics removes type errors and restores rendered status' , async ( {
268+ page,
269+ } ) => {
270+ await waitForInitialRender ( page )
271+
272+ await setComponentEditorSource (
273+ page ,
274+ [ "const count: number = 'oops'" , 'const App = () => <button>ready</button>' ] . join (
275+ '\n' ,
276+ ) ,
277+ )
278+
279+ await page . getByRole ( 'button' , { name : 'Typecheck' } ) . click ( )
280+ await expect ( page . locator ( '#diagnostics-toggle' ) ) . toHaveClass (
281+ / d i a g n o s t i c s - t o g g l e - - e r r o r / ,
282+ )
283+ await expect ( page . locator ( '#status' ) ) . toHaveText ( / R e n d e r e d \( T y p e e r r o r s : [ 1 - 9 ] \d * \) / )
284+
285+ await page . locator ( '#diagnostics-toggle' ) . click ( )
286+ await page . locator ( '#diagnostics-clear-component' ) . click ( )
287+
288+ await expect ( page . locator ( '#diagnostics-component' ) ) . toContainText (
289+ 'No diagnostics yet.' ,
290+ )
291+ await expect ( page . locator ( '#diagnostics-toggle' ) ) . toHaveText ( 'Diagnostics' )
292+ await expect ( page . locator ( '#diagnostics-toggle' ) ) . toHaveClass (
293+ / d i a g n o s t i c s - t o g g l e - - n e u t r a l / ,
294+ )
295+ await expect ( page . locator ( '#status' ) ) . toHaveText ( 'Rendered' )
296+ await expect ( page . locator ( '#status' ) ) . toHaveClass ( / s t a t u s - - n e u t r a l / )
297+ } )
298+
299+ test ( 'clear all diagnostics removes style compile diagnostics' , async ( { page } ) => {
300+ await waitForInitialRender ( page )
301+
302+ await page . locator ( '#style-mode' ) . selectOption ( 'sass' )
303+ await setStylesEditorSource ( page , '.card { color: $missing; }' )
304+
305+ await expect ( page . locator ( '#diagnostics-toggle' ) ) . toHaveClass (
306+ / d i a g n o s t i c s - t o g g l e - - e r r o r / ,
307+ )
308+
309+ await page . locator ( '#diagnostics-toggle' ) . click ( )
310+ await expect ( page . locator ( '#diagnostics-styles' ) ) . toContainText (
311+ 'Style compilation failed.' ,
312+ )
313+
314+ await page . locator ( '#diagnostics-clear-all' ) . click ( )
315+ await expect ( page . locator ( '#diagnostics-component' ) ) . toContainText (
316+ 'No diagnostics yet.' ,
317+ )
318+ await expect ( page . locator ( '#diagnostics-styles' ) ) . toContainText ( 'No diagnostics yet.' )
319+ await expect ( page . locator ( '#diagnostics-toggle' ) ) . toHaveText ( 'Diagnostics' )
320+ await expect ( page . locator ( '#diagnostics-toggle' ) ) . toHaveClass (
321+ / d i a g n o s t i c s - t o g g l e - - n e u t r a l / ,
322+ )
323+ } )
0 commit comments