generated from ministryofjustice/hmpps-template-typescript
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcypress.config.ts
193 lines (183 loc) · 10.6 KB
/
cypress.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
import { defineConfig } from 'cypress'
import 'reflect-metadata'
import moment, { Moment } from 'moment/moment'
import { resetStubs, verifyEndpointCalled } from './integration_tests/wiremock'
import auth from './integration_tests/mockApis/auth'
import tokenVerification from './integration_tests/mockApis/tokenVerification'
import licence from './integration_tests/mockApis/licence'
import delius from './integration_tests/mockApis/delius'
import prisonerSearch from './integration_tests/mockApis/prisonerSearch'
import prison from './integration_tests/mockApis/prison'
import probationSearch from './integration_tests/mockApis/probationSearch'
import events from './integration_tests/support/events'
import feComponent from './integration_tests/mockApis/feComponent'
import manageUsersApi from './integration_tests/mockApis/manageUsers'
import prisonRegister from './integration_tests/mockApis/prisonRegister'
import gotenbergApi from './integration_tests/mockApis/gotenberg'
export default defineConfig({
chromeWebSecurity: false,
fixturesFolder: 'integration_tests/fixtures',
screenshotsFolder: 'integration_tests/screenshots',
videosFolder: 'integration_tests/videos',
reporter: 'cypress-multi-reporters',
reporterOptions: {
configFile: 'reporter-config.json',
},
taskTimeout: 60000,
viewportHeight: 1200,
viewportWidth: 1300,
e2e: {
setupNodeEvents(on) {
on('task', {
...manageUsersApi,
...tokenVerification,
reset: resetStubs,
verifyEndpointCalled,
getSignInUrl: auth.getSignInUrl,
stubPrisonSignIn: auth.stubPrisonSignIn,
stubProbationSignIn: auth.stubProbationSignIn,
stubProbationAcoSignIn: auth.stubProbationAcoSignIn,
stubAuthPing: auth.stubPing,
stubSystemToken: auth.systemToken,
stubFeComponents: () =>
Promise.all([
feComponent.stubFeComponents(),
feComponent.stubFeComponentsJs(),
feComponent.stubFeComponentsCss(),
]),
stubFeComponentsFail: feComponent.stubFeComponentsFail,
stubFeComponentsPing: feComponent.stubFeComponentsPing,
stubUpdateResponsibleCom: licence.stubUpdateResponsibleCom,
stubUpdateProbationTeam: licence.stubUpdateProbationTeam,
stubUpdatePrisonUserDetails: licence.stubUpdatePrisonUserDetails,
stubGetLicence: licence.stubGetLicence,
stubGetHdcLicence: licence.stubGetHdcLicence,
stubGetHdcLicenceData: licence.stubGetHdcLicenceData,
stubGetEmptyLicence: licence.stubGetEmptyLicence,
stubGetPssLicence: licence.stubGetPssLicence,
stubPostLicence: licence.stubPostLicence,
stubPostPssLicence: licence.stubPostPssLicence,
stubGetExistingLicenceForOffenderWithResult: licence.stubGetExistingLicenceForOffenderWithResult,
stubGetActiveAndVariationLicencesForOffender: licence.stubGetActiveAndVariationLicencesForOffender,
stubGetLicencesForOffender: licence.stubGetLicencesForOffender,
stubGetPssLicencesForOffender: licence.stubGetPssLicencesForOffender,
stubPutAppointmentPerson: licence.stubPutAppointmentPerson,
stubPutAppointmentTime: licence.stubPutAppointmentTime,
stubPutAppointmentAddress: licence.stubPutAppointmentAddress,
stubPutContactNumber: licence.stubPutContactNumber,
stubPutBespokeConditions: licence.stubPutBespokeConditions,
stubPutAdditionalConditions: licence.stubPutAdditionalConditions,
stubGetLicenceWithConditionToComplete: licence.stubGetLicenceWithConditionToComplete,
stubGetLicenceWithPssConditionToComplete: licence.stubGetLicenceWithPssConditionToComplete,
stubPutAdditionalConditionData: licence.stubPutAdditionalConditionData,
stubGetExistingLicencesForOffenders: licence.stubGetExistingLicencesForOffenders,
stubGetExistingLicenceForOffenderNoResult: licence.stubGetExistingLicenceForOffenderNoResult,
stubSubmitStatus: licence.stubSubmitStatus,
stubUpdateLicenceStatus: licence.stubUpdateLicenceStatus,
stubGetLicencesForStatus: licence.stubGetLicencesForStatus,
stubGetCompletedLicence: licence.stubGetCompletedLicence,
stubRecordAuditEvent: licence.stubRecordAuditEvent,
stubCreateVariation: licence.stubCreateVariation,
stubUpdateSpoDiscussion: licence.stubUpdateSpoDiscussion,
stubUpdateVloDiscussion: licence.stubUpdateVloDiscussion,
stubUpdateReasonForVariation: licence.stubUpdateReasonForVariation,
stubGetLicenceVariationInProgress: licence.stubGetLicenceVariationInProgress,
stubDiscardLicence: licence.stubDiscardLicence,
stubUpdatePrisonInformation: licence.stubUpdatePrisonInformation,
stubUpdateSentenceDates: licence.stubUpdateSentenceDates,
stubMatchLicenceEvents: licence.stubMatchLicenceEvents,
stubApproveVariation: licence.stubApproveVariation,
stubReferVariation: licence.stubReferVariation,
stubUpdateStandardConditions: licence.stubUpdateStandardConditions,
stubGetHdcLicencesForOffender: licence.stubGetHdcLicencesForOffender,
stubGetVariationsSubmittedByRegionForOffender: licence.stubGetVariationsSubmittedByRegionForOffender,
stubGetLicencePolicyConditions: licence.stubGetLicencePolicyConditions,
stubGetActivePolicyConditions: licence.stubGetActivePolicyConditions,
stubGetPolicyChanges: licence.stubGetPolicyChanges,
stubUpdateOffenderDetails: licence.stubUpdateOffenderDetails,
stubGetBankHolidays: licence.stubGetBankHolidays,
stubAddAdditionalCondition: licence.stubAddAdditionalCondition,
stubGetLicenceWithSkippedInputs: licence.stubGetLicenceWithSkippedInputs,
stubGetLicenceInHardStop: licence.stubGetLicenceInHardStop,
stubGetTimedOutLicence: licence.stubGetTimedOutLicence,
stubGetTimedOutEditLicence: licence.stubGetTimedOutEditLicence,
stubGetHardStopLicence: licence.stubGetHardStopLicence,
stubGetOmuEmail: licence.stubGetOmuEmail,
stubGetHardStopAndTimedOutLicences: licence.stubGetHardStopAndTimedOutLicences,
stubGetProbationSearchResults: licence.stubSearchForOffenderOnStaffCaseload,
stubLicencesPing: licence.stubPing,
stubGetComReviewCount: licence.stubGetComReviewCount,
stubGetCaseloadItem: licence.stubGetCaseloadItem,
stubGetCaseloadItemInHardStop: licence.stubGetCaseloadItemInHardStop,
stubGetHdcCaseloadItem: licence.stubGetHdcCaseloadItem,
stubGetPreviouslyApprovedAndTimedOutLicencesCaseload:
licence.stubGetPreviouslyApprovedAndTimedOutLicencesCaseload,
stubGetHardStopAndTimedOutLicencesCaseload: licence.stubGetHardStopAndTimedOutLicencesCaseload,
stubGetHardStopAndTimedOutAndSubmittedLicencesCaseload:
licence.stubGetHardStopAndTimedOutAndSubmittedLicencesCaseload,
stubGetApprovedLicenceInHardStop: licence.stubGetApprovedLicenceInHardStop,
stubGetPssCaseloadItem: licence.stubGetPssCaseloadItem,
stubDeactivateLicenceAndVariations: licence.stubDeactivateLicenceAndVariations,
stubGetApprovalCaseload: licence.stubGetApprovalCaseload,
stubGetRecentlyApprovedCaseload: licence.stubGetRecentlyApproved,
stubGetPrisonOmuCaseload: licence.stubGetPrisonOmuCaseload,
stubGetProbationOmuCaseload: licence.stubGetProbationOmuCaseload,
stubGetStaffCreateCaseload: licence.stubGetStaffCreateCaseload,
stubGetStaffVaryCaseload: licence.stubGetStaffVaryCaseload,
stubGetStaffCreateCaseloadForHardStop: licence.stubGetStaffCreateCaseloadForHardStop,
stubDeleteAdditionalConditionById: licence.stubDeleteAdditionalConditionById,
stubDeleteAdditionalConditionsByCode: licence.stubDeleteAdditionalConditionsByCode,
stubPostExclusionZone: licence.stubPostExclusionZone,
stubGetStaffDetails: delius.stubGetStaffDetails,
stubGetStaffDetailsByStaffCode: delius.stubGetStaffDetailsByStaffCode,
stubGetStaffDetailsByList: delius.stubGetStaffDetailsByList,
stubAssignRole: delius.stubAssignRole,
stubGetPduHeads: delius.stubGetPduHeads,
stubGetResponsibleCommunityManager: delius.stubGetResponsibleCommunityManager,
stubGetManagerEmailAddresses: delius.stubGetManagerEmailAddresses,
stubDeliusPing: delius.stubPing,
searchPrisonersByNomisIds: licence.searchPrisonersByNomisIds,
searchPssPrisonersByNomisIds: licence.searchPssPrisonersByNomisIds,
searchPrisonersByReleaseDate: licence.searchPrisonersByReleaseDate,
searchPrisonersByBookingIds: prisonerSearch.searchPrisonersByBookingIds,
stubPrisonerSearchApiPing: prisonerSearch.stubPing,
stubGetPrisonUserDetails: prison.stubGetUserDetails,
stubGetPrisonUserCaseloads: prison.stubGetUserCaseloads,
stubGetPrisonerImage: prison.stubGetPrisonerImage,
stubGetPrisonerDetail: prison.stubGetPrisonerDetail,
stubGetRecalledPrisonerDetail: prison.stubGetRecalledPrisonerDetail,
stubGetPrisonerSentencesAndOffences: prison.stubGetPrisonerSentencesAndOffences,
stubGetPrisonerSentencesAndOffencesWithPastSsd: prison.stubGetPrisonerSentencesAndOffencesWithPastSsd,
stubGetPrisonInformation: prison.stubGetPrisonInformation,
stubGetHdcStatus: prison.stubGetHdcStatus,
stubGetPrisons: prison.stubGetPrisons,
stubPrisonApiPing: prison.stubPing,
stubPrisonRegisterApiPing: prisonRegister.stubPing,
stubGetProbationer: probationSearch.stubGetProbationer,
stubGetOffendersByCrn: probationSearch.stubGetOffendersByCrn,
stubGetOffendersByNomsNumber: probationSearch.stubGetOffendersByNomsNumber,
stubProbationSearchPing: probationSearch.stubPing,
stubGotenbergApiPing: gotenbergApi.stubPing,
sendDomainEvent: events.sendDomainEvent,
sendPrisonEvent: events.sendPrisonEvent,
sendProbationEvent: events.sendProbationEvent,
purgeQueues: events.purgeQueues,
getNextWorkingDay: (dates: string[]): Moment => {
const appointmentDate = moment().add(1, 'year').add(1, 'week').day(7)
while (
appointmentDate.isoWeekday() === 6 ||
appointmentDate.isoWeekday() === 7 ||
dates.find(date => moment(date).isSame(appointmentDate, 'day')) !== undefined
) {
appointmentDate.add(1, 'day')
}
return appointmentDate
},
})
},
baseUrl: 'http://localhost:3007',
excludeSpecPattern: '**/!(*.cy).ts',
specPattern: 'integration_tests/integration/**/*.cy.{js,jsx,ts,tsx}',
supportFile: 'integration_tests/support/index.ts',
},
})