@@ -97,6 +97,97 @@ describe('Task request details page', () => {
97
97
} ) ;
98
98
} ) ;
99
99
100
+ describe ( 'Task request details page with markdown support in description' , ( ) => {
101
+ let browser ;
102
+ let page ;
103
+ jest . setTimeout ( 60000 ) ;
104
+
105
+ beforeAll ( async ( ) => {
106
+ browser = await puppeteer . launch ( {
107
+ headless : 'new' ,
108
+ ignoreHTTPSErrors : true ,
109
+ args : [ '--incognito' , '--disable-web-security' ] ,
110
+ devtools : false ,
111
+ } ) ;
112
+ page = await browser . newPage ( ) ;
113
+ await page . setRequestInterception ( true ) ;
114
+ page . on ( 'request' , ( interceptedRequest ) => {
115
+ const url = interceptedRequest . url ( ) ;
116
+ if ( urlMappings . hasOwnProperty ( url ) ) {
117
+ interceptedRequest . respond ( {
118
+ ...defaultMockResponseHeaders ,
119
+ body : JSON . stringify ( urlMappings [ url ] ) ,
120
+ } ) ;
121
+ } else {
122
+ interceptedRequest . continue ( ) ;
123
+ }
124
+ } ) ;
125
+ await page . goto (
126
+ 'http://localhost:8000/task-requests/details/?id=dM5wwD9QsiTzi7eG7Oq6' ,
127
+ ) ;
128
+ } ) ;
129
+
130
+ afterAll ( async ( ) => {
131
+ await browser . close ( ) ;
132
+ } ) ;
133
+
134
+ it ( 'Checks the Modal working as expected' , async ( ) => {
135
+ await page . waitForNetworkIdle ( ) ;
136
+ await page . click ( '.info__more' ) ;
137
+ await page . waitForSelector ( '#requestor_details_modal_content' , {
138
+ visible : true ,
139
+ } ) ;
140
+ const modalHeading = await page . $eval (
141
+ '[data-modal-header="requestor-details-header"]' ,
142
+ ( element ) => element . textContent ,
143
+ ) ;
144
+ expect ( modalHeading ) . toBe ( 'Requestor Details' ) ;
145
+
146
+ const proposedStartDateHeading = await page . $eval (
147
+ '[data-modal-start-date-text="proposed-start-date-text"]' ,
148
+ ( element ) => element . textContent ,
149
+ ) ;
150
+ expect ( proposedStartDateHeading ) . toBe ( 'Proposed Start Date:' ) ;
151
+
152
+ const proposedStartDateValue = await page . $eval (
153
+ '[data-modal-start-date-value="proposed-start-date-value"]' ,
154
+ ( element ) => element . textContent ,
155
+ ) ;
156
+ expect ( proposedStartDateValue ) . toBe ( '30-10-2023' ) ;
157
+
158
+ const proposedEndDateHeading = await page . $eval (
159
+ '[data-modal-end-date-text="proposed-end-date-text"]' ,
160
+ ( element ) => element . textContent ,
161
+ ) ;
162
+ expect ( proposedEndDateHeading ) . toBe ( 'Proposed Deadline:' ) ;
163
+
164
+ const proposedEndDateValue = await page . $eval (
165
+ '[data-modal-end-date-value="proposed-end-date-value"]' ,
166
+ ( element ) => element . textContent ,
167
+ ) ;
168
+ expect ( proposedEndDateValue ) . toBe ( '5-11-2023' ) ;
169
+
170
+ const descriptionTextHeading = await page . $eval (
171
+ '[data-modal-description-text="proposed-description-text"]' ,
172
+ ( element ) => element . textContent ,
173
+ ) ;
174
+ expect ( descriptionTextHeading ) . toBe ( 'Description:' ) ;
175
+
176
+ const descriptionHtmlValue = await page . $eval (
177
+ '[data-modal-description-value="proposed-description-value"]' ,
178
+ ( element ) => element . innerHTML ,
179
+ ) ;
180
+ expect ( descriptionHtmlValue ) . toContain ( '<h3 id="heading">Heading</h3>' ) ;
181
+ } ) ;
182
+
183
+ it ( 'Should contain Approve and Reject buttons' , async function ( ) {
184
+ const approveButton = await page . $ ( '.requestors__conatainer__list__button' ) ;
185
+ const rejectButton = await page . $ ( '.request-details__reject__button' ) ;
186
+ expect ( approveButton ) . toBeTruthy ( ) ;
187
+ expect ( rejectButton ) . toBeTruthy ( ) ;
188
+ } ) ;
189
+ } ) ;
190
+
100
191
describe ( 'Task request details page with status creation' , ( ) => {
101
192
let browser ;
102
193
let page ;
0 commit comments