@@ -11,12 +11,11 @@ function TestWrapper({ children }: { children: React.ReactNode }) {
1111 jsonDocument = { [ ] }
1212 jsonUnitexEnrichment = { {
1313 persName : [
14- { term : "Paris " , displayed : true , frequency : 1 } ,
14+ { term : "Albert Einstein " , displayed : true , frequency : 1 } ,
1515 { term : "Einstein" , displayed : true , frequency : 2 } ,
1616 { term : "Nancy" , displayed : true , frequency : 5 } ,
1717 ] ,
1818 placeName : [
19- { term : "Paris" , displayed : true , frequency : 1 } ,
2019 {
2120 term : "London" ,
2221 displayed : false ,
@@ -92,4 +91,49 @@ describe("Highlight", () => {
9291 await expect . element ( element ) . toHaveAttribute ( "data-term" , "nancy" ) ;
9392 await expect . element ( element ) . toHaveAttribute ( "data-group" , "persName" ) ;
9493 } ) ;
94+
95+ it ( "should support nested highlights" , async ( ) => {
96+ const screen = await render (
97+ < Highlight
98+ data = { {
99+ tag : "highlight" ,
100+ attributes : { groups : "persName" , term : "albert-einstein" } ,
101+ value : [
102+ {
103+ tag : "#text" ,
104+ value : "Albert " ,
105+ } ,
106+ {
107+ tag : "highlight" ,
108+ attributes : { groups : "persName" , term : "einstein" } ,
109+ value : "Einstein" ,
110+ } ,
111+ ] ,
112+ } }
113+ /> ,
114+ {
115+ wrapper : TestWrapper ,
116+ } ,
117+ ) ;
118+
119+ const outerElement = screen . getByRole ( "mark" ) . filter ( {
120+ hasText : "Albert Einstein" ,
121+ exact : true ,
122+ } ) ;
123+ await expect . element ( outerElement ) . toBeInTheDocument ( ) ;
124+ await expect . element ( outerElement ) . toHaveTextContent ( "Albert Einstein" ) ;
125+ await expect
126+ . element ( outerElement )
127+ . toHaveAttribute ( "data-term" , "albert-einstein" ) ;
128+ await expect
129+ . element ( outerElement )
130+ . toHaveAttribute ( "data-group" , "persName" ) ;
131+
132+ const innerElement = screen . getByText ( "Einstein" , { exact : true } ) ;
133+ await expect . element ( innerElement ) . toBeInTheDocument ( ) ;
134+ await expect . element ( innerElement ) . toHaveAttribute ( "data-term" , "einstein" ) ;
135+ await expect
136+ . element ( innerElement )
137+ . toHaveAttribute ( "data-group" , "persName" ) ;
138+ } ) ;
95139} ) ;
0 commit comments