@@ -21,6 +21,7 @@ import { FieldSchemaMap } from "../../../visualBuilder/utils/fieldSchemaMap";
2121import { visualBuilderStyles } from "../../../visualBuilder/visualBuilder.style" ;
2222import visualBuilderPostMessage from "../../../visualBuilder/utils/visualBuilderPostMessage" ;
2323import { EventManager } from "@contentstack/advanced-post-message" ;
24+ import * as cslpdata from "../../../cslp/cslpdata" ;
2425
2526const mockVisualBuilderPostMessage =
2627 visualBuilderPostMessage as MockedObject < EventManager > ;
@@ -101,7 +102,7 @@ const mockQuerySelectorAll = vi.fn().mockImplementation((selector) => {
101102 return mockElements ; // For onlyHighlighted=true case
102103 } else if (
103104 selector ===
104- ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field"
105+ ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field, .visual-builder__lower-order-variant-field "
105106 ) {
106107 return mockElements ; // For onlyHighlighted=false case
107108 }
@@ -303,7 +304,7 @@ describe("useVariantFieldsPostMessageEvent", () => {
303304
304305 // Verify querySelectorAll was called with the correct selector
305306 expect ( mockQuerySelectorAll ) . toHaveBeenCalledWith (
306- ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field"
307+ ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field, .visual-builder__lower-order-variant-field "
307308 ) ;
308309
309310 // Verify that classes were removed from elements correctly
@@ -312,7 +313,8 @@ describe("useVariantFieldsPostMessageEvent", () => {
312313 "visual-builder__disabled-variant-field" ,
313314 "visual-builder__variant-field" ,
314315 visualBuilderStyles ( ) [ "visual-builder__variant-field" ] ,
315- "visual-builder__base-field"
316+ "visual-builder__base-field" ,
317+ "visual-builder__lower-order-variant-field"
316318 ) ;
317319 } ) ;
318320 } ) ;
@@ -339,7 +341,7 @@ describe("addVariantFieldClass", () => {
339341 const variantUid = "variant-123" ;
340342 const highlightVariantFields = true ;
341343
342- addVariantFieldClass ( variantUid , highlightVariantFields ) ;
344+ addVariantFieldClass ( variantUid , highlightVariantFields , [ ] ) ;
343345
344346 // Verify querySelectorAll was called with the correct selector
345347 expect ( mockQuerySelectorAll ) . toHaveBeenCalledWith ( "[data-cslp]" ) ;
@@ -370,7 +372,7 @@ describe("addVariantFieldClass", () => {
370372 const variantUid = "variant-123" ;
371373 const highlightVariantFields = false ;
372374
373- addVariantFieldClass ( variantUid , highlightVariantFields ) ;
375+ addVariantFieldClass ( variantUid , highlightVariantFields , [ ] ) ;
374376
375377 // First element has the variant ID but should not get highlight class
376378 expect ( mockElements [ 0 ] . getAttribute ) . toHaveBeenCalledWith ( "data-cslp" ) ;
@@ -381,6 +383,23 @@ describe("addVariantFieldClass", () => {
381383 "visual-builder__variant-field"
382384 ) ;
383385 } ) ;
386+
387+ it ( "should handle lower order variant fields correctly" , ( ) => {
388+ // @ts -expect-error mocking only required properties
389+ vi . spyOn ( cslpdata , "extractDetailsFromCslp" ) . mockImplementation ( ( cslpValue ) => {
390+ return {
391+ variant : cslpValue . split ( ":" ) [ 1 ]
392+ }
393+ } ) ;
394+ const variantUid = "variant-456" ;
395+ const highlightVariantFields = false ;
396+ const variantOrder = [ "variant-123" , "variant-456" ] ;
397+
398+ addVariantFieldClass ( variantUid , highlightVariantFields , variantOrder ) ;
399+
400+ // Verify that classes were added to elements correctly
401+ expect ( mockElements [ 0 ] . classList . add ) . toHaveBeenCalledWith ( "visual-builder__variant-field" , "visual-builder__lower-order-variant-field" ) ;
402+ } ) ;
384403} ) ;
385404
386405describe ( "removeVariantFieldClass" , ( ) => {
@@ -421,7 +440,7 @@ describe("removeVariantFieldClass", () => {
421440
422441 // Verify querySelectorAll was called with the correct selector
423442 expect ( mockQuerySelectorAll ) . toHaveBeenCalledWith (
424- ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field"
443+ ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field, .visual-builder__lower-order-variant-field "
425444 ) ;
426445
427446 // Verify classes were removed
@@ -430,7 +449,8 @@ describe("removeVariantFieldClass", () => {
430449 "visual-builder__disabled-variant-field" ,
431450 "visual-builder__variant-field" ,
432451 visualBuilderStyles ( ) [ "visual-builder__variant-field" ] ,
433- "visual-builder__base-field"
452+ "visual-builder__base-field" ,
453+ "visual-builder__lower-order-variant-field"
434454 ) ;
435455 } ) ;
436456 } ) ;
@@ -440,7 +460,7 @@ describe("removeVariantFieldClass", () => {
440460
441461 // Verify querySelectorAll was called with the correct selector
442462 expect ( mockQuerySelectorAll ) . toHaveBeenCalledWith (
443- ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field"
463+ ".visual-builder__disabled-variant-field, .visual-builder__variant-field, .visual-builder__base-field, .visual-builder__lower-order-variant-field "
444464 ) ;
445465 } ) ;
446466} ) ;
0 commit comments