@@ -133,3 +133,68 @@ tap.test(
133133 } ) ;
134134 }
135135) ;
136+
137+ tap . test ( 'pseudo pattern variant data should merge arrays' , function ( test ) {
138+ const pl = stubPatternlab ( ) ;
139+ pl . config . patternMergeVariantArrays = true ;
140+
141+ const pattern = loadPattern ( '00-test/475-variant-test.mustache' , pl ) ;
142+
143+ addPattern ( pattern , pl ) ;
144+
145+ return pph . find_pseudopatterns ( pattern , pl ) . then ( ( ) => {
146+ test . equals ( pl . patterns [ 1 ] . patternPartial , 'test-variant-test-merge' ) ;
147+ test . equals (
148+ JSON . stringify ( pl . patterns [ 1 ] . jsonFileData ) ,
149+ JSON . stringify ( {
150+ a : 2 ,
151+ b : [ 8 , 3 ] ,
152+ c : { d : [ 6 , 7 ] , e : 8 , f : { a : [ 'a' ] , b : [ 'x' ] , c : [ 'c' ] } } ,
153+ } )
154+ ) ;
155+ } ) ;
156+ } ) ;
157+
158+ tap . test (
159+ 'pseudo pattern variant data should merge arrays if config "patternMergeVariantArrays" is not available as default behavior' ,
160+ function ( test ) {
161+ const pl = stubPatternlab ( ) ;
162+
163+ const pattern = loadPattern ( '00-test/475-variant-test.mustache' , pl ) ;
164+
165+ addPattern ( pattern , pl ) ;
166+
167+ return pph . find_pseudopatterns ( pattern , pl ) . then ( ( ) => {
168+ test . equals ( pl . patterns [ 1 ] . patternPartial , 'test-variant-test-merge' ) ;
169+ test . equals (
170+ JSON . stringify ( pl . patterns [ 1 ] . jsonFileData ) ,
171+ JSON . stringify ( {
172+ a : 2 ,
173+ b : [ 8 , 3 ] ,
174+ c : { d : [ 6 , 7 ] , e : 8 , f : { a : [ 'a' ] , b : [ 'x' ] , c : [ 'c' ] } } ,
175+ } )
176+ ) ;
177+ } ) ;
178+ }
179+ ) ;
180+
181+ tap . test ( 'pseudo pattern variant data should override arrays' , function ( test ) {
182+ const pl = stubPatternlab ( ) ;
183+ pl . config . patternMergeVariantArrays = false ;
184+
185+ const pattern = loadPattern ( '00-test/475-variant-test.mustache' , pl ) ;
186+
187+ addPattern ( pattern , pl ) ;
188+
189+ return pph . find_pseudopatterns ( pattern , pl ) . then ( ( ) => {
190+ test . equals ( pl . patterns [ 1 ] . patternPartial , 'test-variant-test-merge' ) ;
191+ test . equals (
192+ JSON . stringify ( pl . patterns [ 1 ] . jsonFileData ) ,
193+ JSON . stringify ( {
194+ a : 2 ,
195+ b : [ 8 ] ,
196+ c : { d : [ 6 , 7 ] , e : 8 , f : { a : [ 'a' ] , b : [ 'x' ] , c : [ 'c' ] } } ,
197+ } )
198+ ) ;
199+ } ) ;
200+ } ) ;
0 commit comments