@@ -11,15 +11,17 @@ const codeSample = 'console.log("Hello World");';
1111// Test utilities
1212const getContainer = ( container : HTMLElement ) =>
1313 container . querySelector (
14- '[data-testid="shiki- container"]'
14+ '[data-slot=" container"]'
1515 ) as HTMLElement | null ;
1616
1717const getLanguageLabel = ( container : HTMLElement | null ) =>
18- container ?. querySelector ( '#language-label' ) as HTMLElement | null ;
18+ container ?. querySelector (
19+ '[data-slot="language-label"]'
20+ ) as HTMLElement | null ;
1921
2022describe ( 'ShikiHighlighter Component' , ( ) => {
2123 describe ( 'Component-specific Props' , ( ) => {
22- test ( 'renders with default pre element' , async ( ) => {
24+ test ( 'renders with default div element' , async ( ) => {
2325 const { container } = render (
2426 < ShikiHighlighter language = "javascript" theme = "github-light" >
2527 { codeSample }
@@ -29,7 +31,10 @@ describe('ShikiHighlighter Component', () => {
2931 await waitFor ( ( ) => {
3032 const containerElement = getContainer ( container ) ;
3133 expect ( containerElement ) . toBeInTheDocument ( ) ;
32- expect ( containerElement ?. tagName . toLowerCase ( ) ) . toBe ( 'pre' ) ;
34+ expect ( containerElement ?. tagName . toLowerCase ( ) ) . toBe ( 'div' ) ;
35+ expect ( containerElement ) . toHaveClass ( 'rs-root' ) ;
36+ expect ( containerElement ) . toHaveClass ( 'rs-default-styles' ) ;
37+ expect ( containerElement ) . not . toHaveClass ( 'relative' ) ;
3338 } ) ;
3439 } ) ;
3540
@@ -227,13 +232,13 @@ describe('ShikiHighlighter Component', () => {
227232 ) ;
228233
229234 await waitFor ( ( ) => {
230- const shikiContainer =
231- container . querySelector ( '#shiki-container' ) ;
235+ const shikiContainer = getContainer ( container ) ;
232236 expect ( shikiContainer ) . toBeInTheDocument ( ) ;
233237
234238 // Should have a div with dangerouslySetInnerHTML
235239 const innerDiv = shikiContainer ?. querySelector ( ':scope > div' ) ;
236240 expect ( innerDiv ) . toBeInTheDocument ( ) ;
241+ expect ( innerDiv ?. getAttribute ( 'data-slot' ) ) . toBe ( 'content' ) ;
237242
238243 // Should still render highlighted code
239244 expect ( container . querySelector ( 'pre' ) ) . toBeInTheDocument ( ) ;
@@ -268,7 +273,7 @@ describe('ShikiHighlighter Component', () => {
268273 ) ;
269274 } ;
270275
271- test ( 'forwards ref to the default container element (pre )' , async ( ) => {
276+ test ( 'forwards ref to the default container element (div )' , async ( ) => {
272277 let refCurrent : HTMLElement | null = null ;
273278
274279 render (
@@ -281,10 +286,8 @@ describe('ShikiHighlighter Component', () => {
281286
282287 await waitFor ( ( ) => {
283288 expect ( refCurrent ) . not . toBeNull ( ) ;
284- expect ( refCurrent ?. tagName . toLowerCase ( ) ) . toBe ( 'pre' ) ;
285- expect ( refCurrent ?. getAttribute ( 'data-testid' ) ) . toBe (
286- 'shiki-container'
287- ) ;
289+ expect ( refCurrent ?. tagName . toLowerCase ( ) ) . toBe ( 'div' ) ;
290+ expect ( refCurrent ?. getAttribute ( 'data-slot' ) ) . toBe ( 'container' ) ;
288291 } ) ;
289292 } ) ;
290293
@@ -303,9 +306,7 @@ describe('ShikiHighlighter Component', () => {
303306 await waitFor ( ( ) => {
304307 expect ( refCurrent ) . not . toBeNull ( ) ;
305308 expect ( refCurrent ?. tagName . toLowerCase ( ) ) . toBe ( 'div' ) ;
306- expect ( refCurrent ?. getAttribute ( 'data-testid' ) ) . toBe (
307- 'shiki-container'
308- ) ;
309+ expect ( refCurrent ?. getAttribute ( 'data-slot' ) ) . toBe ( 'container' ) ;
309310 } ) ;
310311 } ) ;
311312
@@ -324,7 +325,7 @@ describe('ShikiHighlighter Component', () => {
324325 expect ( refCurrent ) . not . toBeNull ( ) ;
325326 expect ( typeof refCurrent ?. focus ) . toBe ( 'function' ) ;
326327 expect ( typeof refCurrent ?. getBoundingClientRect ) . toBe ( 'function' ) ;
327- expect ( refCurrent ?. tagName . toLowerCase ( ) ) . toBe ( 'pre ' ) ;
328+ expect ( refCurrent ?. tagName . toLowerCase ( ) ) . toBe ( 'div ' ) ;
328329 } ) ;
329330 } ) ;
330331 } ) ;
0 commit comments