11import  {  expectTypeOf  }  from  'expect-type' 
2- import  type  {  ComponentProps ,  SvelteComponent  }  from  'svelte' 
32import  {  describe ,  test  }  from  'vitest' 
43
54import  *  as  subject  from  '../index.js' 
6- import  Simple  from  './fixtures/Simple.svelte' 
7- 
8- describe ( 'types' ,  ( )  =>  { 
9-   test ( 'render is a function that accepts a Svelte component' ,  ( )  =>  { 
10-     subject . render ( Simple ,  {  name : 'Alice' ,  count : 42  } ) 
11-     subject . render ( Simple ,  {  props : {  name : 'Alice' ,  count : 42  }  } ) 
12-   } ) 
13- 
14-   test ( 'rerender is a function that accepts partial props' ,  async  ( )  =>  { 
15-     const  {  rerender }  =  subject . render ( Simple ,  {  name : 'Alice' ,  count : 42  } ) 
16- 
17-     await  rerender ( {  name : 'Bob'  } ) 
18-     await  rerender ( {  count : 0  } ) 
19-   } ) 
20- 
21-   test ( 'invalid prop types are rejected' ,  ( )  =>  { 
22-     // @ts -expect-error: name should be a string 
23-     subject . render ( Simple ,  {  name : 42  } ) 
24- 
25-     // @ts -expect-error: name should be a string 
26-     subject . render ( Simple ,  {  props : {  name : 42  }  } ) 
27-   } ) 
28- 
29-   test ( 'render result has container and component' ,  ( )  =>  { 
30-     const  result  =  subject . render ( Simple ,  {  name : 'Alice' ,  count : 42  } ) 
31- 
32-     expectTypeOf ( result ) . toMatchTypeOf < { 
33-       container : HTMLElement 
34-       component : SvelteComponent < {  name : string  } > 
35-       debug : ( el ?: HTMLElement )  =>  void 
36-       rerender : ( props : Partial < ComponentProps < Simple > > )  =>  Promise < void > 
37-       unmount : ( )  =>  void 
38-     } > ( ) 
39-   } ) 
5+ import  Component  from  './fixtures/Comp.svelte' 
406
7+ describe ( 'render query and utility types' ,  ( )  =>  { 
418  test ( 'render result has default queries' ,  ( )  =>  { 
42-     const  result  =  subject . render ( Simple ,  {  name : 'Alice' ,   count :  42  } ) 
9+     const  result  =  subject . render ( Component ,  {  name : 'Alice'  } ) 
4310
4411    expectTypeOf ( result . getByRole ) . parameters . toMatchTypeOf < 
4512      [ role : subject . ByRoleMatcher ,  options ?: subject . ByRoleOptions ] 
@@ -55,8 +22,8 @@ describe('types', () => {
5522      ( )  =>  '' 
5623    ) 
5724    const  result  =  subject . render ( 
58-       Simple , 
59-       {  name : 'Alice' ,   count :  42  } , 
25+       Component , 
26+       {  name : 'Alice'  } , 
6027      {  queries : {  getByVibes }  } 
6128    ) 
6229
0 commit comments