1
1
import { QueryClient , QueryClientProvider } from '@tanstack/react-query'
2
+ import {
3
+ QueryClientProvider as QueryClientProviderV5 ,
4
+ QueryClient as QueryClientV5 ,
5
+ } from '@tanstack/react-queryV5'
2
6
import { render , screen } from '@testing-library/react'
3
7
import { graphql , http , HttpResponse } from 'msw'
4
8
import { setupServer } from 'msw/node'
@@ -9,34 +13,50 @@ import Sunburst, { getPathsToDisplay } from './Sunburst'
9
13
vi . mock ( 'ui/SunburstChart' , ( ) => ( { default : ( ) => 'Chart Mocked' } ) )
10
14
11
15
const queryClient = new QueryClient ( {
12
- defaultOptions : {
13
- queries : {
14
- retry : false ,
15
- } ,
16
- } ,
16
+ defaultOptions : { queries : { retry : false } } ,
17
+ } )
18
+ const queryClientV5 = new QueryClientV5 ( {
19
+ defaultOptions : { queries : { retry : false } } ,
17
20
} )
18
- const server = setupServer ( )
19
21
20
22
const wrapper = ( { children } ) => (
21
- < QueryClientProvider client = { queryClient } >
22
- < MemoryRouter initialEntries = { [ '/gh/codecov/cool-repo/tree/main' ] } >
23
- < Route path = "/:provider/:owner/:repo/tree/:branch" > { children } </ Route >
24
- </ MemoryRouter >
25
- </ QueryClientProvider >
23
+ < QueryClientProviderV5 client = { queryClientV5 } >
24
+ < QueryClientProvider client = { queryClient } >
25
+ < MemoryRouter initialEntries = { [ '/gh/codecov/cool-repo/tree/main' ] } >
26
+ < Route path = "/:provider/:owner/:repo/tree/:branch" > { children } </ Route >
27
+ </ MemoryRouter >
28
+ </ QueryClientProvider >
29
+ </ QueryClientProviderV5 >
26
30
)
27
31
32
+ const server = setupServer ( )
28
33
beforeAll ( ( ) => {
29
34
server . listen ( { onUnhandledRequest : 'warn' } )
30
35
} )
36
+
31
37
afterEach ( ( ) => {
32
38
queryClient . clear ( )
39
+ queryClientV5 . clear ( )
33
40
server . resetHandlers ( )
34
41
} )
42
+
35
43
afterAll ( ( ) => {
36
44
server . close ( )
37
45
} )
38
46
39
- const treeMock = { name : 'repoName' , children : [ ] }
47
+ const treeMock = [
48
+ {
49
+ name : 'repoName' ,
50
+ fullPath : 'repoName' ,
51
+ coverage : 100 ,
52
+ lines : 100 ,
53
+ hits : 100 ,
54
+ partials : 0 ,
55
+ misses : 0 ,
56
+ children : [ ] ,
57
+ } ,
58
+ ]
59
+
40
60
const overviewMock = {
41
61
owner : {
42
62
isCurrentUserActivated : true ,
@@ -52,6 +72,7 @@ const overviewMock = {
52
72
} ,
53
73
} ,
54
74
}
75
+
55
76
const repoConfigMock = {
56
77
owner : {
57
78
repository : {
@@ -64,37 +85,25 @@ const repoConfigMock = {
64
85
}
65
86
66
87
describe ( 'Sunburst' , ( ) => {
67
- function setup ( {
68
- repoOverviewData,
69
- coverageTreeRes,
70
- coverageTreeStatus = 200 ,
71
- } ) {
88
+ function setup ( { coverageTreeStatus = 200 } ) {
72
89
server . use (
73
90
graphql . query ( 'GetRepoOverview' , ( ) => {
74
- return HttpResponse . json ( { data : repoOverviewData } )
91
+ return HttpResponse . json ( { data : overviewMock } )
75
92
} ) ,
76
93
graphql . query ( 'RepoConfig' , ( ) => {
77
94
return HttpResponse . json ( { data : repoConfigMock } )
78
95
} ) ,
79
96
http . get ( '/internal/:provider/:owner/:repo/coverage/tree' , ( ) => {
80
- return HttpResponse . json (
81
- { data : coverageTreeRes } ,
82
- { status : coverageTreeStatus }
83
- )
97
+ return HttpResponse . json ( treeMock , {
98
+ status : coverageTreeStatus ,
99
+ } )
84
100
} )
85
101
)
86
102
}
87
103
88
104
describe ( 'successful call' , ( ) => {
89
- beforeEach ( ( ) => {
90
- setup ( {
91
- repoOverviewData : overviewMock ,
92
- coverageTreeRes : treeMock ,
93
- coverageTreeStatus : 200 ,
94
- } )
95
- } )
96
-
97
105
it ( 'renders something' , async ( ) => {
106
+ setup ( { coverageTreeStatus : 200 } )
98
107
render ( < Sunburst /> , { wrapper } )
99
108
100
109
const chart = await screen . findByText ( 'Chart Mocked' )
@@ -107,14 +116,10 @@ describe('Sunburst', () => {
107
116
beforeEach ( ( ) => {
108
117
// disable intentional error in vi log
109
118
vi . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
110
-
111
- setup ( {
112
- repoOverviewData : overviewMock ,
113
- coverageTreeStatus : 500 ,
114
- } )
115
119
} )
116
120
117
121
it ( 'renders something' , async ( ) => {
122
+ setup ( { repoOverviewData : overviewMock , coverageTreeStatus : 500 } )
118
123
render ( < Sunburst /> , { wrapper } )
119
124
120
125
const chart = await screen . findByText (
0 commit comments