@@ -6,11 +6,12 @@ import {
66 type ComponentInternalInstance ,
77 getCurrentInstance ,
88} from '../src/component'
9+ import { defineComponent } from '../src/apiDefineComponent'
910
1011const define = makeRender ( )
1112describe ( 'api: expose' , ( ) => {
1213 test ( 'via setup context' , ( ) => {
13- const { component : Child } = define ( {
14+ const Child = defineComponent ( {
1415 setup ( _ , { expose } ) {
1516 expose ( {
1617 foo : 1 ,
@@ -23,15 +24,14 @@ describe('api: expose', () => {
2324 } ,
2425 } )
2526 const childRef = ref ( )
26- const { render } = define ( {
27+ define ( {
2728 render : ( ) => {
2829 const n0 = createComponent ( Child )
2930 setRef ( n0 , childRef )
3031 return n0
3132 } ,
32- } )
33+ } ) . render ( )
3334
34- render ( )
3535 expect ( childRef . value ) . toBeTruthy ( )
3636 expect ( childRef . value . foo ) . toBe ( 1 )
3737 expect ( childRef . value . bar ) . toBe ( 2 )
@@ -40,56 +40,70 @@ describe('api: expose', () => {
4040
4141 test ( 'via setup context (expose empty)' , ( ) => {
4242 let childInstance : ComponentInternalInstance | null = null
43- const { component : Child } = define ( {
43+ const Child = defineComponent ( {
4444 setup ( _ ) {
4545 childInstance = getCurrentInstance ( )
4646 } ,
4747 } )
4848 const childRef = shallowRef ( )
49- const { render } = define ( {
49+ define ( {
5050 render : ( ) => {
5151 const n0 = createComponent ( Child )
5252 setRef ( n0 , childRef )
5353 return n0
5454 } ,
55- } )
55+ } ) . render ( )
5656
57- render ( )
5857 expect ( childInstance ! . exposed ) . toBeUndefined ( )
5958 expect ( childRef . value ) . toBe ( childInstance ! )
6059 } )
6160
61+ test ( 'with mount' , ( ) => {
62+ const { instance } = define ( {
63+ setup ( _ , { expose } ) {
64+ expose ( {
65+ foo : 1 ,
66+ } )
67+ return {
68+ bar : 2 ,
69+ }
70+ } ,
71+ } ) . render ( )
72+ expect ( instance ! . exposed ! . foo ) . toBe ( 1 )
73+ expect ( instance ! . exposed ! . bar ) . toBe ( undefined )
74+ } )
75+
6276 test ( 'warning for ref' , ( ) => {
63- const { render } = define ( {
77+ define ( {
6478 setup ( _ , { expose } ) {
6579 expose ( ref ( 1 ) )
6680 } ,
67- } )
68- render ( )
81+ } ) . render ( )
82+
6983 expect (
7084 'expose() should be passed a plain object, received ref' ,
7185 ) . toHaveBeenWarned ( )
7286 } )
7387
7488 test ( 'warning for array' , ( ) => {
75- const { render } = define ( {
89+ define ( {
7690 setup ( _ , { expose } ) {
7791 expose ( [ 'focus' ] )
7892 } ,
79- } )
80- render ( )
93+ } ) . render ( )
94+
8195 expect (
8296 'expose() should be passed a plain object, received array' ,
8397 ) . toHaveBeenWarned ( )
8498 } )
8599
86100 test ( 'warning for function' , ( ) => {
87- const { render } = define ( {
101+ define ( {
88102 setup ( _ , { expose } ) {
89103 expose ( ( ) => null )
90104 } ,
91- } )
92- render ( )
105+ } ) . render ( )
106+
93107 expect (
94108 'expose() should be passed a plain object, received function' ,
95109 ) . toHaveBeenWarned ( )
0 commit comments