@@ -191,13 +191,21 @@ describe('defineCustomElement', () => {
191
191
192
192
test ( 'handling properties set before upgrading' , ( ) => {
193
193
const E = defineCustomElement ( {
194
- props : [ 'foo' ] ,
194
+ props : {
195
+ foo : String ,
196
+ dataAge : Number
197
+ } ,
198
+ setup ( props ) {
199
+ expect ( props . foo ) . toBe ( 'hello' )
200
+ expect ( props . dataAge ) . toBe ( 5 )
201
+ } ,
195
202
render ( ) {
196
203
return `foo: ${ this . foo } `
197
204
}
198
205
} )
199
206
const el = document . createElement ( 'my-el-upgrade' ) as any
200
207
el . foo = 'hello'
208
+ el . dataset . age = 5
201
209
container . appendChild ( el )
202
210
customElements . define ( 'my-el-upgrade' , E )
203
211
expect ( el . shadowRoot . innerHTML ) . toBe ( `foo: hello` )
@@ -363,26 +371,26 @@ describe('defineCustomElement', () => {
363
371
364
372
// should inject styles
365
373
expect ( e1 . shadowRoot ! . innerHTML ) . toBe (
366
- `<div>hello</div>< style>div { color: red }</style>`
374
+ `<style>div { color: red }</style><div>hello</div >`
367
375
)
368
376
expect ( e2 . shadowRoot ! . innerHTML ) . toBe (
369
- `<div>world</div>< style>div { color: red }</style>`
377
+ `<style>div { color: red }</style><div>world</div >`
370
378
)
371
379
372
380
// attr
373
381
e1 . setAttribute ( 'msg' , 'attr' )
374
382
await nextTick ( )
375
383
expect ( ( e1 as any ) . msg ) . toBe ( 'attr' )
376
384
expect ( e1 . shadowRoot ! . innerHTML ) . toBe (
377
- `<div>attr</div>< style>div { color: red }</style>`
385
+ `<style>div { color: red }</style><div>attr</div >`
378
386
)
379
387
380
388
// props
381
389
expect ( `msg` in e1 ) . toBe ( true )
382
390
; ( e1 as any ) . msg = 'prop'
383
391
expect ( e1 . getAttribute ( 'msg' ) ) . toBe ( 'prop' )
384
392
expect ( e1 . shadowRoot ! . innerHTML ) . toBe (
385
- `<div>prop</div>< style>div { color: red }</style>`
393
+ `<style>div { color: red }</style><div>prop</div >`
386
394
)
387
395
} )
388
396
@@ -391,6 +399,9 @@ describe('defineCustomElement', () => {
391
399
defineAsyncComponent ( ( ) => {
392
400
return Promise . resolve ( {
393
401
props : [ 'msg' ] ,
402
+ setup ( props ) {
403
+ expect ( typeof props . msg ) . toBe ( 'string' )
404
+ } ,
394
405
render ( this : any ) {
395
406
return h ( 'div' , this . msg )
396
407
}
@@ -429,6 +440,9 @@ describe('defineCustomElement', () => {
429
440
defineAsyncComponent ( ( ) => {
430
441
return Promise . resolve ( {
431
442
props : { n : Number } ,
443
+ setup ( props ) {
444
+ expect ( props . n ) . toBe ( 20 )
445
+ } ,
432
446
render ( this : any ) {
433
447
return h ( 'div' , this . n + ',' + typeof this . n )
434
448
}
0 commit comments