88
99import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest'
1010
11+ import apps from '@/apps'
12+
1113import { ADDRESS_LABELS } from '../../common/constants'
1214import trigger from '../../triggers/new-submission'
1315
@@ -24,6 +26,7 @@ const mocks = vi.hoisted(() => ({
2426 } ,
2527 }
2628 } ) ,
29+ removeMrfSteps : vi . fn ( ) ,
2730} ) )
2831
2932vi . mock ( '../../triggers/new-submission/get-mock-data' , ( ) => ( {
@@ -34,12 +37,26 @@ vi.mock('../../triggers/new-submission/fetch-form-schema', () => ({
3437 fetchFormSchema : mocks . fetchFormSchema ,
3538} ) )
3639
40+ vi . mock ( '../../triggers/new-submission/remove-mrf-steps' , ( ) => ( {
41+ removeMrfSteps : mocks . removeMrfSteps ,
42+ } ) )
43+
3744vi . mock ( '../../common/webhook-settings' , ( ) => ( {
3845 registerWebhookUrl : vi . fn ( ) ,
3946 verifyWebhookUrl : vi . fn ( ) ,
4047 getFormDetailsFromGlobalVariable : mocks . getFormDetailsFromGlobalVariable ,
4148} ) )
4249
50+ vi . mock ( '../../../../models/step' , ( ) => ( {
51+ default : {
52+ query : vi . fn ( ( ) => ( {
53+ findById : vi . fn ( ( ) => ( {
54+ throwIfNotFound : vi . fn ( ( ) => ( { parameters : { } } ) ) ,
55+ } ) ) ,
56+ } ) ) ,
57+ } ,
58+ } ) )
59+
4360describe ( 'new submission trigger' , ( ) => {
4461 let executionStep : IExecutionStep
4562
@@ -72,12 +89,24 @@ describe('new submission trigger', () => {
7289 } as unknown as IExecutionStep
7390 } )
7491
92+ afterEach ( ( ) => {
93+ vi . clearAllMocks ( )
94+ } )
95+
7596 describe ( 'testRun' , ( ) => {
7697 const $ = {
7798 auth : { data : { formId : '123' } } ,
7899 user :
{ email :
'[email protected] ' } , 100+ step : {
101+ id : '123' ,
102+ position : 1 ,
103+ } ,
104+ flow : {
105+ id : 'flow-id' ,
106+ } ,
79107 pushTriggerItem : pushTriggerItemMock ,
80108 getLastExecutionStep : getLastExecutionStepMock ,
109+ app : apps . formsg ,
81110 } as unknown as IGlobalVariable
82111
83112 const mockData = {
@@ -108,10 +137,6 @@ describe('new submission trigger', () => {
108137 } )
109138 } )
110139
111- afterEach ( ( ) => {
112- vi . clearAllMocks ( )
113- } )
114-
115140 it ( 'should use mock data if preferMock is true and there is no past submission' , async ( ) => {
116141 getLastExecutionStepMock . mockResolvedValue ( null )
117142 await trigger . testRun ( $ , { preferMock : true } )
@@ -223,6 +248,12 @@ describe('new submission trigger', () => {
223248 } ,
224249 } )
225250 } )
251+
252+ it ( 'should call remove MRF steps function if the form is storage mode' , async ( ) => {
253+ getLastExecutionStepMock . mockResolvedValue ( null )
254+ await trigger . testRun ( $ , { preferMock : false } )
255+ expect ( mocks . removeMrfSteps ) . toHaveBeenCalledOnce ( )
256+ } )
226257 } )
227258 describe ( 'dataOut metadata' , ( ) => {
228259 it ( 'ensures that only question, answer and answerArray props are visible' , async ( ) => {
@@ -355,7 +386,7 @@ describe('new submission trigger', () => {
355386 )
356387 } )
357388
358- it ( 'sets label to the associated question for attachment answers' , async ( ) => {
389+ it ( 'sets label to the associated question for attachment answers with question number ' , async ( ) => {
359390 executionStep . dataOut . fields = {
360391 fileFieldId : {
361392 question : 'Attach a file.' ,
@@ -365,14 +396,14 @@ describe('new submission trigger', () => {
365396 }
366397
367398 const metadata = await trigger . getDataOutMetadata ( executionStep )
368- expect ( metadata . fields . fileFieldId . answer . label ) . toEqual ( 'Attach a file.' )
399+ expect ( metadata . fields . fileFieldId . answer . label ) . toEqual (
400+ '1. Attach a file.' ,
401+ )
369402 } )
370403
371- it ( 'collapses header fields' , async ( ) => {
404+ it ( 'hides header fields' , async ( ) => {
372405 const metadata = await trigger . getDataOutMetadata ( executionStep )
373- expect (
374- metadata . fields . headerFieldId . question . isCollapsedByDefault ,
375- ) . toEqual ( true )
406+ expect ( metadata . fields . headerFieldId . isHidden ) . toEqual ( true )
376407 } )
377408
378409 it ( 'collapses question variables' , async ( ) => {
0 commit comments