@@ -4,10 +4,10 @@ import { useFormikContext } from 'formik'
4
4
import { cloneDeep } from 'lodash'
5
5
import { AxiosError } from 'axios'
6
6
7
- import { deleteChangedFile , getPipelineStrategies , rdiPipelineSelector , setChangedFile } from 'uiSrc/slices/rdi/pipeline'
7
+ import { deleteChangedFile , getPipelineStrategies , rdiPipelineSelector , setChangedFile , setPipelineJobs } from 'uiSrc/slices/rdi/pipeline'
8
8
import { cleanup , fireEvent , mockedStore , render , screen } from 'uiSrc/utils/test-utils'
9
9
import { sendPageViewTelemetry , TelemetryPageView , sendEventTelemetry , TelemetryEvent } from 'uiSrc/telemetry'
10
- import { MOCK_RDI_PIPELINE_CONFIG , MOCK_RDI_PIPELINE_DATA , MOCK_RDI_PIPELINE_JOB2 } from 'uiSrc/mocks/data/rdi'
10
+ import { MOCK_RDI_PIPELINE_CONFIG , MOCK_RDI_PIPELINE_DATA , MOCK_RDI_PIPELINE_JOB1 , MOCK_RDI_PIPELINE_JOB2 } from 'uiSrc/mocks/data/rdi'
11
11
import { FileChangeType } from 'uiSrc/slices/interfaces'
12
12
import { addErrorNotification } from 'uiSrc/slices/app/notifications'
13
13
import JobWrapper from './JobWrapper'
@@ -23,11 +23,26 @@ jest.mock('uiSrc/slices/rdi/pipeline', () => ({
23
23
rdiPipelineSelector : jest . fn ( ) . mockReturnValue ( {
24
24
loading : false ,
25
25
schema : { jobs : { test : { } } } ,
26
+ config : `connections:
27
+ target:
28
+ type: redis
29
+ ` ,
30
+ jobs : [ {
31
+ name : 'jobName' ,
32
+ value : `job:
33
+ transform:
34
+ type: sql
35
+ `
36
+ } , {
37
+ name : 'job2' ,
38
+ value : `job2:
39
+ transform:
40
+ type: redis
41
+ `
42
+ } ] ,
26
43
} ) ,
27
44
} ) )
28
45
29
- jest . mock ( 'formik' )
30
-
31
46
let store : typeof mockedStore
32
47
beforeEach ( ( ) => {
33
48
cleanup ( )
@@ -36,14 +51,6 @@ beforeEach(() => {
36
51
} )
37
52
38
53
describe ( 'JobWrapper' , ( ) => {
39
- beforeEach ( ( ) => {
40
- const mockUseFormikContext = {
41
- setFieldValue : jest . fn ,
42
- values : MOCK_RDI_PIPELINE_DATA ,
43
- } ;
44
- ( useFormikContext as jest . Mock ) . mockReturnValue ( mockUseFormikContext )
45
- } )
46
-
47
54
it ( 'should render' , ( ) => {
48
55
expect ( render ( < JobWrapper /> ) ) . toBeTruthy ( )
49
56
} )
@@ -62,31 +69,16 @@ describe('JobWrapper', () => {
62
69
} )
63
70
} )
64
71
65
- it ( 'should render loading spinner' , ( ) => {
66
- const rdiPipelineSelectorMock = jest . fn ( ) . mockReturnValue ( {
67
- loading : true ,
68
- } ) ;
69
- ( rdiPipelineSelector as jest . Mock ) . mockImplementation ( rdiPipelineSelectorMock )
70
-
71
- render ( < JobWrapper /> )
72
-
73
- expect ( screen . getByTestId ( 'rdi-job-loading' ) ) . toBeInTheDocument ( )
74
- } )
75
-
76
72
it ( 'should push to config page' , ( ) => {
77
73
const rdiPipelineSelectorMock = jest . fn ( ) . mockReturnValue ( {
78
74
loading : false ,
75
+ config : MOCK_RDI_PIPELINE_CONFIG ,
76
+ jobs : [ MOCK_RDI_PIPELINE_JOB2 ] ,
79
77
} ) ;
80
- ( rdiPipelineSelector as jest . Mock ) . mockImplementation ( rdiPipelineSelectorMock )
78
+ ( rdiPipelineSelector as jest . Mock ) . mockImplementationOnce ( rdiPipelineSelectorMock )
81
79
const pushMock = jest . fn ( )
82
80
reactRouterDom . useHistory = jest . fn ( ) . mockReturnValueOnce ( { push : pushMock } )
83
81
84
- const mockUseFormikContext = {
85
- setFieldValue : jest . fn ,
86
- values : { config : MOCK_RDI_PIPELINE_CONFIG , jobs : [ MOCK_RDI_PIPELINE_JOB2 ] } ,
87
- } ;
88
- ( useFormikContext as jest . Mock ) . mockReturnValueOnce ( mockUseFormikContext )
89
-
90
82
render ( < JobWrapper /> )
91
83
92
84
expect ( pushMock ) . toBeCalledWith ( '/integrate/rdiInstanceId/pipeline-management/config' )
@@ -97,7 +89,7 @@ describe('JobWrapper', () => {
97
89
loading : false ,
98
90
error : '' ,
99
91
} ) ;
100
- ( rdiPipelineSelector as jest . Mock ) . mockImplementation ( rdiPipelineSelectorMock )
92
+ ( rdiPipelineSelector as jest . Mock ) . mockImplementationOnce ( rdiPipelineSelectorMock )
101
93
const pushMock = jest . fn ( )
102
94
reactRouterDom . useHistory = jest . fn ( ) . mockReturnValueOnce ( { push : pushMock } )
103
95
@@ -141,9 +133,10 @@ describe('JobWrapper', () => {
141
133
const rdiPipelineSelectorMock = jest . fn ( ) . mockReturnValue ( {
142
134
loading : false ,
143
135
schema : { jobs : { test : { } } } ,
144
- data : { jobs : [ { name : 'jobName' , value : 'value' } ] }
136
+ data : { jobs : [ { name : 'jobName' , value : 'value' } ] } ,
137
+ jobs : [ { name : 'jobName' , value : 'value' } ]
145
138
} ) ;
146
- ( rdiPipelineSelector as jest . Mock ) . mockImplementation ( rdiPipelineSelectorMock )
139
+ ( rdiPipelineSelector as jest . Mock ) . mockImplementationOnce ( rdiPipelineSelectorMock )
147
140
148
141
render ( < JobWrapper /> )
149
142
@@ -155,6 +148,7 @@ describe('JobWrapper', () => {
155
148
156
149
const expectedActions = [
157
150
getPipelineStrategies ( ) ,
151
+ setPipelineJobs ( expect . any ( Array ) ) ,
158
152
setChangedFile ( { name : 'jobName' , status : FileChangeType . Modified } )
159
153
]
160
154
@@ -165,7 +159,8 @@ describe('JobWrapper', () => {
165
159
const rdiPipelineSelectorMock = jest . fn ( ) . mockReturnValue ( {
166
160
loading : false ,
167
161
schema : { jobs : { test : { } } } ,
168
- data : { jobs : [ { name : 'jobName' , value : '123' } ] }
162
+ data : { jobs : [ { name : 'jobName' , value : '123' } ] } ,
163
+ jobs : [ { name : 'jobName' } ] ,
169
164
} ) ;
170
165
( rdiPipelineSelector as jest . Mock ) . mockImplementation ( rdiPipelineSelectorMock )
171
166
@@ -179,6 +174,7 @@ describe('JobWrapper', () => {
179
174
180
175
const expectedActions = [
181
176
getPipelineStrategies ( ) ,
177
+ setPipelineJobs ( [ { name : 'jobName' , value : '123' } ] ) ,
182
178
deleteChangedFile ( 'jobName' )
183
179
]
184
180
@@ -189,16 +185,12 @@ describe('JobWrapper', () => {
189
185
const rdiPipelineSelectorMock = jest . fn ( ) . mockReturnValue ( {
190
186
loading : false ,
191
187
schema : { jobs : { test : { } } } ,
192
- data : { jobs : [ { name : 'jobName' , value : 'sources:incorrect\n target:' } ] }
188
+ data : { jobs : [ { name : 'jobName' , value : 'sources:incorrect\n target:' } ] } ,
189
+ config : MOCK_RDI_PIPELINE_CONFIG ,
190
+ jobs : [ { name : 'jobName' , value : 'sources:incorrect\n target:' } ]
193
191
} ) ;
194
192
( rdiPipelineSelector as jest . Mock ) . mockImplementation ( rdiPipelineSelectorMock )
195
193
196
- const mockUseFormikContext = {
197
- setFieldValue : jest . fn ,
198
- values : { config : MOCK_RDI_PIPELINE_CONFIG , jobs : [ { name : 'jobName' , value : 'sources:incorrect\n target:' } ] } ,
199
- } ;
200
- ( useFormikContext as jest . Mock ) . mockReturnValue ( mockUseFormikContext )
201
-
202
194
const { queryByTestId } = render ( < JobWrapper /> )
203
195
204
196
fireEvent . click ( screen . getByTestId ( 'rdi-job-dry-run' ) )
0 commit comments