@@ -9,92 +9,133 @@ describe(classNamingCtx.name, () => {
99
1010 describe ( "classnames" , ( ) => {
1111 const classes = classNamingCtx ( { classnames} )
12- it ( "map" , ( ) => expect ( classes (
13- {
12+ it ( "map" , ( ) => expect ( {
13+ ... classes ( {
1414 class1 : true ,
1515 class2 : false ,
1616 class3 : "" ,
1717 //@ts -expect-error Truthy not allowed by TS
1818 class4 : 1 ,
19- }
20- ) ) . toStrictEqual ( {
19+ } )
20+ } ) . toStrictEqual ( {
2121 className : "class1 hash4"
2222 } ) )
2323
24- it ( "array" , ( ) => expect ( classes (
25- true && "class1" ,
26- false && "class2" ,
27- "" && "class3" ,
28- 1 && "class4"
29- ) ) . toStrictEqual ( {
24+ it ( "array" , ( ) => expect ( {
25+ ...classes (
26+ true && "class1" ,
27+ false && "class2" ,
28+ "" && "class3" ,
29+ 1 && "class4"
30+ )
31+ } ) . toStrictEqual ( {
3032 className : "class1 hash4"
3133 } ) )
3234
33- it ( "map + array" , ( ) => expect ( classes (
34- {
35- class1 : false ,
36- class4 : true
37- } ,
38- "class1" ,
39- false && "class4"
40- ) ) . toStrictEqual ( {
35+ it ( "map + array" , ( ) => expect ( {
36+ ...classes (
37+ {
38+ class1 : false ,
39+ class4 : true
40+ } ,
41+ "class1" ,
42+ false && "class4"
43+ )
44+ } ) . toStrictEqual ( {
4145 className : "hash4 class1"
4246 } ) )
4347
44- it ( "redundant in map" , ( ) => expect ( classes ( {
45- //@ts -expect-error Object literal may only specify known properties, and 'etc' does not exist
46- etc : true
47- } ) ) . toStrictEqual ( {
48+ it ( "redundant in map" , ( ) => expect ( {
49+ ...classes ( {
50+ //@ts -expect-error Object literal may only specify known properties, and 'etc' does not exist
51+ etc : true
52+ } )
53+ } ) . toStrictEqual ( {
4854 className : "etc"
4955 } ) )
5056
51- it ( "redundant in array" , ( ) => expect ( classes (
52- //@ts -expect-error Argument of type '"etc"' is not assignable
53- "etc"
54- ) ) . toStrictEqual ( {
57+ it ( "redundant in array" , ( ) => expect ( {
58+ ...classes (
59+ //@ts -expect-error Argument of type '"etc"' is not assignable
60+ "etc"
61+ )
62+ } ) . toStrictEqual ( {
5563 className : "etc"
5664 } ) )
5765
5866 //TODO Raise TS error
59- it ( "propagate absent className" , ( ) => expect ( classes (
60- true ,
61- { class1 : true } ,
62- "class4"
63- ) ) . toStrictEqual ( {
67+ it ( "propagate absent className" , ( ) => expect ( {
68+ ...classes (
69+ true ,
70+ { class1 : true } ,
71+ "class4"
72+ )
73+ } ) . toStrictEqual ( {
6474 className : "class1 hash4"
6575 } ) )
6676 } )
6777
6878 describe ( "className + classnames" , ( ) => {
6979 const classes = classNamingCtx ( { className, classnames} )
70- it ( "only propagated" , ( ) => expect ( classes (
71- true
72- ) ) . toStrictEqual ( {
73- className
74- } ) )
80+ it ( "only propagated" , ( ) => expect ( {
81+ ...classes (
82+ true
83+ )
84+ } ) . toStrictEqual ( {
85+ className
86+ } ) )
7587
76- it ( "without propagation" , ( ) => expect ( classes (
77- "class1" ,
78- "class4"
79- ) ) . toStrictEqual ( {
88+ it ( "without propagation" , ( ) => expect ( {
89+ ...classes (
90+ "class1" ,
91+ "class4"
92+ )
93+ } ) . toStrictEqual ( {
8094 className : "class1 hash4"
8195 } ) )
8296
83- it ( "both" , ( ) => expect ( classes (
84- true ,
85- "class1" ,
86- "class4"
87- ) ) . toStrictEqual ( {
97+ it ( "both" , ( ) => expect ( {
98+ ...classes (
99+ true ,
100+ "class1" ,
101+ "class4"
102+ )
103+ } ) . toStrictEqual ( {
88104 className : "App class1 hash4"
89105 } ) )
90106 } )
91107
92- it ( "only propagate classnames" , ( ) => expect ( classNamingCtx (
93- { classnames} ,
94- { withClassNames : true }
95- ) ( ) ) . toStrictEqual ( {
108+ it ( "only propagate classnames" , ( ) => expect ( {
109+ ...classNamingCtx (
110+ { classnames} ,
111+ { withClassNames : true }
112+ ) (
113+ )
114+ } ) . toStrictEqual ( {
96115 className : "" ,
97116 classnames
98117 } ) )
99118
119+ describe ( "chained" , ( ) => {
120+ it ( "Cur" , ( ) => expect ( {
121+ //@ts -expect-error
122+ ...classNamingCtx ( { classnames} ) (
123+ { class1 : true }
124+ ) ( { class2 : true }
125+ ) ( { class1 : false }
126+ ) ( { class3 : true } )
127+ } ) . not . toStrictEqual ( {
128+ className : "class3"
129+ } ) )
130+ it ( "TBD" , ( ) => expect ( {
131+ //@ts -expect-error
132+ ...classNamingCtx ( { classnames} ) (
133+ { class1 : true }
134+ ) ( { class2 : true }
135+ ) ( { class1 : false }
136+ ) ( { class3 : true } )
137+ } ) . not . toStrictEqual ( {
138+ className : "class2 class3"
139+ } ) )
140+ } )
100141} )
0 commit comments