1
1
import { expectTypeOf } from 'expect-type'
2
- import type { ComponentProps , SvelteComponent } from 'svelte'
3
2
import { describe , test } from 'vitest'
4
3
5
4
import * 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'
40
6
7
+ describe ( 'render query and utility types' , ( ) => {
41
8
test ( 'render result has default queries' , ( ) => {
42
- const result = subject . render ( Simple , { name : 'Alice' , count : 42 } )
9
+ const result = subject . render ( Component , { name : 'Alice' } )
43
10
44
11
expectTypeOf ( result . getByRole ) . parameters . toMatchTypeOf <
45
12
[ role : subject . ByRoleMatcher , options ?: subject . ByRoleOptions ]
@@ -55,8 +22,8 @@ describe('types', () => {
55
22
( ) => ''
56
23
)
57
24
const result = subject . render (
58
- Simple ,
59
- { name : 'Alice' , count : 42 } ,
25
+ Component ,
26
+ { name : 'Alice' } ,
60
27
{ queries : { getByVibes } }
61
28
)
62
29
0 commit comments