@@ -10,18 +10,18 @@ import {renderHook, act} from '@testing-library/react-hooks'
10
10
11
11
import { BannersProvider , useBanners } from './BannersProvider'
12
12
13
- const bannersManagerMock : Banners . Manager = {
13
+ const bannersManagerMock : Banners . Manager < 't' > = {
14
14
dismiss : jest . fn ( ) ,
15
15
dismissedAt : jest . fn ( ) ,
16
16
}
17
17
18
- type Props = {
18
+ type Props < K extends string = string > = {
19
19
queryClient : QueryClient
20
- bannersManager ?: Banners . Manager
20
+ bannersManager ?: Banners . Manager < K >
21
21
}
22
22
23
23
export const wrapperManagerFixture =
24
- ( { queryClient, bannersManager} : Props ) =>
24
+ < K extends string = string > ( { queryClient, bannersManager} : Props < K > ) =>
25
25
( { children} : { children : React . ReactNode } ) =>
26
26
(
27
27
< QueryClientProvider client = { queryClient } >
@@ -36,7 +36,7 @@ export const wrapperManagerFixture =
36
36
)
37
37
38
38
export const wrapperManagerFixtureMissing =
39
- ( { queryClient} : Props ) =>
39
+ ( { queryClient} : { queryClient : QueryClient } ) =>
40
40
( { children} : { children : React . ReactNode } ) =>
41
41
(
42
42
< QueryClientProvider client = { queryClient } >
@@ -46,7 +46,7 @@ export const wrapperManagerFixtureMissing =
46
46
</ QueryClientProvider >
47
47
)
48
48
49
- describe ( 'ResolverProvider ' , ( ) => {
49
+ describe ( 'BannersProvider ' , ( ) => {
50
50
let queryClient : QueryClient
51
51
52
52
beforeEach ( ( ) => {
@@ -58,14 +58,13 @@ describe('ResolverProvider', () => {
58
58
queryClient . clear ( )
59
59
} )
60
60
61
- it ( 'works' , ( ) => {
61
+ it ( 'works when provider is set ' , ( ) => {
62
62
const wrapper = wrapperManagerFixture ( {
63
63
queryClient,
64
64
bannersManager : bannersManagerMock ,
65
65
} )
66
- const { result} = renderHook ( ( ) => useBanners ( ) , {
67
- wrapper,
68
- } )
66
+
67
+ const { result} = renderHook ( ( ) => useBanners ( ) , { wrapper} )
69
68
70
69
act ( ( ) => {
71
70
result . current . manager . dismiss ( 'test-banner' )
@@ -76,15 +75,11 @@ describe('ResolverProvider', () => {
76
75
expect ( bannersManagerMock . dismissedAt ) . toHaveBeenCalledWith ( 'test-banner' )
77
76
} )
78
77
79
- it ( 'fails' , ( ) => {
80
- const wrapper = wrapperManagerFixtureMissing ( {
81
- queryClient,
82
- } )
83
- const { result} = renderHook ( ( ) => useBanners ( ) , {
84
- wrapper,
85
- } )
78
+ it ( 'fails when provider is missing' , ( ) => {
79
+ const wrapper = wrapperManagerFixtureMissing ( { queryClient} )
80
+
81
+ const { result} = renderHook ( ( ) => useBanners ( ) , { wrapper} )
86
82
87
- expect ( ( ) => result . current . manager . dismiss ( 'test-banner' ) ) . toThrow ( )
88
- expect ( ( ) => result . current . manager . dismissedAt ( 'test-banner' ) ) . toThrow ( )
83
+ expect ( result . current ) . toBeUndefined ( )
89
84
} )
90
85
} )
0 commit comments