@@ -265,6 +265,56 @@ describe('vnode', () => {
265
265
setCurrentRenderingInstance ( null )
266
266
} )
267
267
268
+ test ( 'cloneVNode class normalization' , ( ) => {
269
+ const vnode = createVNode ( 'div' )
270
+ const expectedProps = {
271
+ class : 'a b'
272
+ }
273
+ expect ( cloneVNode ( vnode , { class : 'a b' } ) . props ) . toMatchObject (
274
+ expectedProps
275
+ )
276
+ expect ( cloneVNode ( vnode , { class : [ 'a' , 'b' ] } ) . props ) . toMatchObject (
277
+ expectedProps
278
+ )
279
+ expect (
280
+ cloneVNode ( vnode , { class : { a : true , b : true } } ) . props
281
+ ) . toMatchObject ( expectedProps )
282
+ expect (
283
+ cloneVNode ( vnode , { class : [ { a : true , b : true } ] } ) . props
284
+ ) . toMatchObject ( expectedProps )
285
+ } )
286
+
287
+ test ( 'cloneVNode style normalization' , ( ) => {
288
+ const vnode = createVNode ( 'div' )
289
+ const expectedProps = {
290
+ style : {
291
+ color : 'blue' ,
292
+ width : '300px'
293
+ }
294
+ }
295
+ expect (
296
+ cloneVNode ( vnode , { style : 'color: blue; width: 300px;' } ) . props
297
+ ) . toMatchObject ( expectedProps )
298
+ expect (
299
+ cloneVNode ( vnode , {
300
+ style : {
301
+ color : 'blue' ,
302
+ width : '300px'
303
+ }
304
+ } ) . props
305
+ ) . toMatchObject ( expectedProps )
306
+ expect (
307
+ cloneVNode ( vnode , {
308
+ style : [
309
+ {
310
+ color : 'blue' ,
311
+ width : '300px'
312
+ }
313
+ ]
314
+ } ) . props
315
+ ) . toMatchObject ( expectedProps )
316
+ } )
317
+
268
318
describe ( 'mergeProps' , ( ) => {
269
319
test ( 'class' , ( ) => {
270
320
let props1 : Data = { class : 'c' }
0 commit comments