@@ -87,8 +87,6 @@ describe('AdminService', () => {
8787 getHandlesByUserIds : jest . Mock ;
8888 } ;
8989 let topcoderChallengesService : {
90- findChallengeByProjectAndTitle : jest . Mock ;
91- findChallengeIdFromProjectPhases : jest . Mock ;
9290 getChallengeById : jest . Mock ;
9391 getProjectById : jest . Mock ;
9492 } ;
@@ -138,8 +136,6 @@ describe('AdminService', () => {
138136 } ) ,
139137 } ;
140138 topcoderChallengesService = {
141- findChallengeByProjectAndTitle : jest . fn ( ) . mockResolvedValue ( undefined ) ,
142- findChallengeIdFromProjectPhases : jest . fn ( ) . mockResolvedValue ( undefined ) ,
143139 getChallengeById : jest . fn ( ) . mockResolvedValue ( undefined ) ,
144140 getProjectById : jest . fn ( ) . mockResolvedValue ( undefined ) ,
145141 } ;
@@ -155,178 +151,6 @@ describe('AdminService', () => {
155151 ) ;
156152 } ) ;
157153
158- it ( 'returns engagement budgetApproverHandle from challenge approvalApprovedBy' , async ( ) => {
159- prisma . winnings . findFirst . mockResolvedValue ( {
160- winning_id : 'winning-1' ,
161- category : 'ENGAGEMENT_PAYMENT' ,
162- created_by : '654321' ,
163- external_id : 'assignment-1' ,
164- attributes : { } ,
165- } ) ;
166- topcoderEngagementsService . getAssignmentContextById . mockResolvedValue ( {
167- assignmentId : 'assignment-1' ,
168- challengeId : 'da8b0e8b-f56a-419b-9e4e-b8afe06375e2' ,
169- engagementId : 'engagement-1' ,
170- engagementTitle : 'Software Developer I' ,
171- projectId : '100575' ,
172- projectName : 'Ai Reviewer Wf testing' ,
173- ratePerHour : '15.5' ,
174- standardHoursPerWeek : 12 ,
175- startDate : '2026-04-30T12:00:00.000Z' ,
176- durationMonths : 1 ,
177- } ) ;
178- topcoderChallengesService . getChallengeById . mockResolvedValue ( {
179- id : 'da8b0e8b-f56a-419b-9e4e-b8afe06375e2' ,
180- name : 'Software Developer I' ,
181- projectId : 100575 ,
182- approvalApprovedBy : 'kartik' ,
183- } ) ;
184-
185- const result = await service . getWinningPaymentDetails (
186- 'winning-1' ,
187- '123456' ,
188- [ 'Payment Admin' ] ,
189- ) ;
190-
191- expect ( topcoderChallengesService . getChallengeById ) . toHaveBeenCalledWith (
192- 'da8b0e8b-f56a-419b-9e4e-b8afe06375e2' ,
193- ) ;
194- expect (
195- topcoderChallengesService . findChallengeIdFromProjectPhases ,
196- ) . not . toHaveBeenCalled ( ) ;
197- expect ( result . data ?. engagementDetails ?. budgetApproverHandle ) . toBe ( 'kartik' ) ;
198- } ) ;
199-
200- it ( 'returns engagement budgetApproverHandle via project phase challengeGuid' , async ( ) => {
201- prisma . winnings . findFirst . mockResolvedValue ( {
202- winning_id : 'winning-1' ,
203- category : 'ENGAGEMENT_PAYMENT' ,
204- created_by : '654321' ,
205- external_id : 'assignment-1' ,
206- attributes : { } ,
207- } ) ;
208- topcoderEngagementsService . getAssignmentContextById . mockResolvedValue ( {
209- assignmentId : 'assignment-1' ,
210- engagementId : 'engagement-1' ,
211- engagementTitle : 'Software Developer I' ,
212- projectId : '100575' ,
213- ratePerHour : '15.5' ,
214- standardHoursPerWeek : 12 ,
215- startDate : '2026-04-30T12:00:00.000Z' ,
216- durationMonths : 1 ,
217- } ) ;
218- topcoderChallengesService . findChallengeIdFromProjectPhases . mockResolvedValue (
219- 'da8b0e8b-f56a-419b-9e4e-b8afe06375e2' ,
220- ) ;
221- topcoderChallengesService . getChallengeById . mockResolvedValue ( {
222- id : 'da8b0e8b-f56a-419b-9e4e-b8afe06375e2' ,
223- name : 'Software Developer I' ,
224- projectId : 100575 ,
225- approvalApprovedBy : 'kartik' ,
226- } ) ;
227-
228- const result = await service . getWinningPaymentDetails (
229- 'winning-1' ,
230- '123456' ,
231- [ 'Payment Admin' ] ,
232- ) ;
233-
234- expect (
235- topcoderChallengesService . findChallengeIdFromProjectPhases ,
236- ) . toHaveBeenCalledWith ( '100575' , 'Software Developer I' ) ;
237- expect ( topcoderChallengesService . getChallengeById ) . toHaveBeenCalledWith (
238- 'da8b0e8b-f56a-419b-9e4e-b8afe06375e2' ,
239- ) ;
240- expect ( result . data ?. engagementDetails ?. budgetApproverHandle ) . toBe ( 'kartik' ) ;
241- } ) ;
242-
243- it ( 'returns engagement budgetApproverHandle via project and title search' , async ( ) => {
244- prisma . winnings . findFirst . mockResolvedValue ( {
245- winning_id : 'winning-1' ,
246- category : 'ENGAGEMENT_PAYMENT' ,
247- created_by : '654321' ,
248- external_id : 'assignment-1' ,
249- attributes : { } ,
250- } ) ;
251- topcoderEngagementsService . getAssignmentContextById . mockResolvedValue ( {
252- assignmentId : 'assignment-1' ,
253- engagementId : 'engagement-1' ,
254- engagementTitle : 'Software Developer I' ,
255- projectId : '100575' ,
256- projectName : 'Ai Reviewer Wf testing' ,
257- ratePerHour : '15.5' ,
258- standardHoursPerWeek : 12 ,
259- startDate : '2026-04-30T12:00:00.000Z' ,
260- durationMonths : 1 ,
261- } ) ;
262- topcoderChallengesService . findChallengeByProjectAndTitle . mockResolvedValue ( {
263- id : 'challenge-uuid-1' ,
264- name : 'Software Developer I' ,
265- projectId : 100575 ,
266- approvalApprovedBy : 'kartik' ,
267- } ) ;
268- topcoderChallengesService . getChallengeById . mockResolvedValue ( {
269- id : 'challenge-uuid-1' ,
270- name : 'Software Developer I' ,
271- projectId : 100575 ,
272- approvalApprovedBy : 'kartik' ,
273- } ) ;
274-
275- const result = await service . getWinningPaymentDetails (
276- 'winning-1' ,
277- '123456' ,
278- [ 'Payment Admin' ] ,
279- ) ;
280-
281- expect (
282- topcoderChallengesService . findChallengeByProjectAndTitle ,
283- ) . toHaveBeenCalledWith ( '100575' , 'Software Developer I' ) ;
284- expect ( topcoderChallengesService . getChallengeById ) . toHaveBeenCalledWith (
285- 'challenge-uuid-1' ,
286- ) ;
287- expect ( result . data ?. engagementDetails ?. budgetApproverHandle ) . toBe ( 'kartik' ) ;
288- } ) ;
289-
290- it ( 'returns engagement budgetApproverHandle from winnings attributes challengeId' , async ( ) => {
291- prisma . winnings . findFirst . mockResolvedValue ( {
292- winning_id : 'winning-1' ,
293- category : 'ENGAGEMENT_PAYMENT' ,
294- created_by : '654321' ,
295- external_id : 'assignment-1' ,
296- attributes : {
297- challengeId : 'challenge-uuid-1' ,
298- } ,
299- } ) ;
300- topcoderEngagementsService . getAssignmentContextById . mockResolvedValue ( {
301- assignmentId : 'assignment-1' ,
302- engagementId : 'engagement-1' ,
303- engagementTitle : 'May 19 pvt eng' ,
304- projectId : '100575' ,
305- projectName : 'Ai Reviewer Wf testing' ,
306- ratePerHour : '2.99' ,
307- standardHoursPerWeek : 11 ,
308- startDate : '2026-05-23T12:00:00.000Z' ,
309- durationMonths : 2 ,
310- } ) ;
311- topcoderChallengesService . getChallengeById . mockResolvedValue ( {
312- id : 'challenge-uuid-1' ,
313- name : 'Engagement challenge' ,
314- projectId : 100575 ,
315- approvalApprovedBy : 'kartik' ,
316- } ) ;
317-
318- const result = await service . getWinningPaymentDetails (
319- 'winning-1' ,
320- '123456' ,
321- [ 'Payment Admin' ] ,
322- ) ;
323-
324- expect ( topcoderChallengesService . getChallengeById ) . toHaveBeenCalledWith (
325- 'challenge-uuid-1' ,
326- ) ;
327- expect ( result . data ?. engagementDetails ?. budgetApproverHandle ) . toBe ( 'kartik' ) ;
328- } ) ;
329-
330154 it ( 'returns paymentApproverHandle for engagement payments from audit trail' , async ( ) => {
331155 prisma . winnings . findFirst . mockResolvedValue ( {
332156 winning_id : 'winning-1' ,
0 commit comments