@@ -1021,6 +1021,16 @@ function defineTest(f: Fixture) {
10211021 'color' ,
10221022 'rgb(0, 165, 255)' ,
10231023 )
1024+ editor . edit ( ( s ) =>
1025+ s . replaceAll (
1026+ 'color: rgb(0, 165, 255);' ,
1027+ '/* color: rgb(0, 165, 255); */' ,
1028+ ) ,
1029+ )
1030+ await expect ( page . getByTestId ( 'css-module-client' ) ) . toHaveCSS (
1031+ 'color' ,
1032+ 'rgb(0, 0, 0)' ,
1033+ )
10241034 editor . reset ( )
10251035 await expect ( page . getByTestId ( 'css-module-client' ) ) . toHaveCSS (
10261036 'color' ,
@@ -1038,13 +1048,81 @@ function defineTest(f: Fixture) {
10381048 'color' ,
10391049 'rgb(0, 165, 255)' ,
10401050 )
1051+ editor . edit ( ( s ) =>
1052+ s . replaceAll (
1053+ 'color: rgb(0, 165, 255);' ,
1054+ '/* color: rgb(0, 165, 255); */' ,
1055+ ) ,
1056+ )
1057+ await expect ( page . getByTestId ( 'css-module-server' ) ) . toHaveCSS (
1058+ 'color' ,
1059+ 'rgb(0, 0, 0)' ,
1060+ )
10411061 editor . reset ( )
10421062 await expect ( page . getByTestId ( 'css-module-server' ) ) . toHaveCSS (
10431063 'color' ,
10441064 'rgb(255, 165, 0)' ,
10451065 )
10461066 } )
10471067
1068+ test ( 'css shared hmr' , async ( { page } ) => {
1069+ await page . goto ( f . url ( ) )
1070+ await waitForHydration ( page )
1071+ await using _ = await expectNoReload ( page )
1072+ const server = page . getByTestId ( 'style-shared-server' )
1073+ const client = page . getByTestId ( 'style-shared-client' )
1074+ await expect ( server ) . toHaveCSS ( 'color' , 'rgb(255, 165, 0)' )
1075+ await expect ( client ) . toHaveCSS ( 'color' , 'rgb(255, 165, 0)' )
1076+
1077+ const editor = f . createEditor ( 'src/routes/style-shared/shared.css' )
1078+ editor . edit ( ( s ) => s . replaceAll ( 'rgb(255, 165, 0)' , 'rgb(0, 165, 255)' ) )
1079+ await expect ( server ) . toHaveCSS ( 'color' , 'rgb(0, 165, 255)' )
1080+ await expect ( client ) . toHaveCSS ( 'color' , 'rgb(0, 165, 255)' )
1081+
1082+ // TODO: cover rule removal. After a prior server CSS HMR update, shared
1083+ // CSS can keep a stale client-side style rule here.
1084+ // editor.edit((s) =>
1085+ // s.replaceAll(
1086+ // 'color: rgb(0, 165, 255);',
1087+ // '/* color: rgb(0, 165, 255); */',
1088+ // ),
1089+ // )
1090+ // await expect(server).toHaveCSS('color', 'rgb(0, 0, 0)')
1091+ // await expect(client).toHaveCSS('color', 'rgb(0, 0, 0)')
1092+
1093+ // editor.reset()
1094+ // await expect(server).toHaveCSS('color', 'rgb(255, 165, 0)')
1095+ // await expect(client).toHaveCSS('color', 'rgb(255, 165, 0)')
1096+ } )
1097+
1098+ test ( 'css module shared hmr' , async ( { page } ) => {
1099+ await page . goto ( f . url ( ) )
1100+ await waitForHydration ( page )
1101+ await using _ = await expectNoReload ( page )
1102+ const serverCard = page . getByTestId ( 'css-module-shared-server' )
1103+ const clientCard = page . getByTestId ( 'css-module-shared-client' )
1104+ await expect ( serverCard ) . toHaveCSS ( 'color' , 'rgb(255, 165, 0)' )
1105+ await expect ( clientCard ) . toHaveCSS ( 'color' , 'rgb(255, 165, 0)' )
1106+
1107+ const editor = f . createEditor ( 'src/routes/style-shared/shared.module.css' )
1108+ editor . edit ( ( s ) => s . replaceAll ( 'rgb(255, 165, 0)' , 'rgb(0, 165, 255)' ) )
1109+ await expect ( serverCard ) . toHaveCSS ( 'color' , 'rgb(0, 165, 255)' )
1110+ await expect ( clientCard ) . toHaveCSS ( 'color' , 'rgb(0, 165, 255)' )
1111+
1112+ editor . edit ( ( s ) =>
1113+ s . replaceAll (
1114+ 'color: rgb(0, 165, 255);' ,
1115+ '/* color: rgb(0, 165, 255); */' ,
1116+ ) ,
1117+ )
1118+ await expect ( serverCard ) . toHaveCSS ( 'color' , 'rgb(0, 0, 0)' )
1119+ await expect ( clientCard ) . toHaveCSS ( 'color' , 'rgb(0, 0, 0)' )
1120+
1121+ editor . reset ( )
1122+ await expect ( serverCard ) . toHaveCSS ( 'color' , 'rgb(255, 165, 0)' )
1123+ await expect ( clientCard ) . toHaveCSS ( 'color' , 'rgb(255, 165, 0)' )
1124+ } )
1125+
10481126 test ( 'css url client hmr' , async ( { page } ) => {
10491127 await page . goto ( f . url ( ) )
10501128 await waitForHydration ( page )
0 commit comments