itemengine-cypress-automation 1.0.19 → 1.0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (21) hide show
  1. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +432 -0
  2. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +134 -0
  3. package/cypress/e2e/ILC/EssayResponse/essayResponseCreateCustomCategory.js +932 -0
  4. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions1.js +333 -0
  5. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions2.js +332 -0
  6. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions3.js +522 -0
  7. package/cypress/e2e/ILC/EssayResponse/essayResponseEditCategoryFlyout.js +402 -0
  8. package/cypress/e2e/ILC/EssayResponse/essayResponseEditTabBasicSections.js +558 -0
  9. package/cypress/e2e/ILC/EssayResponse/essayResponseEquationEditor.js +572 -0
  10. package/cypress/e2e/ILC/EssayResponse/essayResponseEquationEditorCategories1.js +290 -0
  11. package/cypress/e2e/ILC/EssayResponse/essayResponseEquationEditorCategories2.js +514 -0
  12. package/cypress/e2e/ILC/EssayResponse/essayResponseHeaderSection.js +80 -0
  13. package/cypress/e2e/ILC/EssayResponse/essayResponsePreviewAddTable.js +412 -0
  14. package/cypress/e2e/ILC/EssayResponse/essayResponsePreviewEditTable.js +659 -0
  15. package/cypress/e2e/ILC/EssayResponse/essayResponsePreviewHyperlink.js +318 -0
  16. package/cypress/e2e/ILC/EssayResponse/essayResponseScoringSection.js +59 -0
  17. package/cypress/e2e/ILC/EssayResponse/essayResponseSpecialCharacters.js +33 -0
  18. package/cypress/e2e/ILC/EssayResponseBasic/essayResponseBasicCustomizeFormattingOptions.js +207 -0
  19. package/cypress/e2e/ILC/EssayResponseMath/essayResponseMathCharacters.js +38 -0
  20. package/cypress/e2e/ILC/EssayResponseMath/essayResponseMathCreateItem.js +243 -0
  21. package/package.json +1 -1
@@ -0,0 +1,514 @@
1
+ import { equationEditorCategoriesAndSymbols } from "../../../fixtures/equationEditorCategoriesAndSymbols ";
2
+ import { commonComponents } from "../../../pages/components";
3
+ import { equationEditorFlyout } from "../../../pages/components/equationEditorFlyout";
4
+ import { essayResponsePage } from "../../../pages/essayResponsePage";
5
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
6
+ const css = Cypress.env('css');
7
+
8
+ const defaultSelectedCategories = ['Keypad', 'Basic', 'Greek', 'Operators', 'Relationships', 'Arrows', 'Delimiters', 'Misc'];
9
+ const allCategories = Object.values(equationEditorCategoriesAndSymbols)
10
+
11
+ describe('Create question page - Essay Response: Equation Editor categories', () => {
12
+ before(() => {
13
+ cy.loginAs('admin');
14
+ });
15
+
16
+ describe('Equation editor input category: Delimiters', () => {
17
+ abortEarlySetup();
18
+ before(() => {
19
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
20
+ essayResponsePage.steps.expandCustomizeFormattingOptionsAccordion();
21
+ essayResponsePage.steps.selectCustomizedFormattingOption(['Equation Editor'])
22
+ cy.barsPreLoaderWait();
23
+ essayResponsePage.steps.switchToPreviewTab();
24
+ essayResponsePage.previewTabToolbarOption('Equation Editor')
25
+ .click();
26
+ });
27
+
28
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesTabs('delimiters');
29
+
30
+ it('On clicking the symbols it should be displayed in the input field of Equation editor and user should be able to form meaningful equations using the category', () => {
31
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.lFloor.ariaLabel)
32
+ .click();
33
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.rFloor.ariaLabel)
34
+ .click();
35
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.lCeil.ariaLabel)
36
+ .click();
37
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.rCeil.ariaLabel)
38
+ .click();
39
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.forwardSlash.ariaLabel)
40
+ .click();
41
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.openCurlBracket.ariaLabel)
42
+ .click();
43
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.closedCurlBracket.ariaLabel)
44
+ .click();
45
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.groupInParathesis.ariaLabel)
46
+ .click();
47
+ equationEditorFlyout.inputFieldCursor()
48
+ .type('a{rightarrow}');
49
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.groupInBrackets.ariaLabel)
50
+ .click();
51
+ equationEditorFlyout.inputFieldCursor()
52
+ .type('a{rightarrow}');
53
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.squareRoundBrackets.ariaLabel)
54
+ .click();
55
+ equationEditorFlyout.inputFieldCursor()
56
+ .type('a{rightarrow}');
57
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.roundSquareBrackets.ariaLabel)
58
+ .click();
59
+ equationEditorFlyout.inputFieldCursor()
60
+ .type('a{rightarrow}');
61
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.angleBracket.ariaLabel)
62
+ .click();
63
+ equationEditorFlyout.inputFieldCursor()
64
+ .type('a{rightarrow}');
65
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.singleSquareOpen.ariaLabel)
66
+ .click();
67
+ equationEditorFlyout.inputFieldCursor()
68
+ .type('a{rightarrow}');
69
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.delimiters.symbols.singleSquareClose.ariaLabel)
70
+ .click();
71
+ });
72
+
73
+ equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField('delimiters')
74
+ essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('⌊⌋⌈⌉/{}(a)[a][a)(a]⟨a⟩[a]', '2/10000');
75
+ });
76
+
77
+ describe('Equation editor input category: Misc', () => {
78
+ abortEarlySetup();
79
+ before(() => {
80
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
81
+ essayResponsePage.steps.expandCustomizeFormattingOptionsAccordion();
82
+ essayResponsePage.steps.selectCustomizedFormattingOption(['Equation Editor'])
83
+ cy.barsPreLoaderWait();
84
+ essayResponsePage.steps.switchToPreviewTab();
85
+ essayResponsePage.previewTabToolbarOption('Equation Editor')
86
+ .click();
87
+ });
88
+
89
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesTabs('misc');
90
+
91
+ it('On clicking the symbols it should be displayed in the input field of Equation editor and user should be able to form meaningful equations using the category', () => {
92
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.forAll.ariaLabel)
93
+ .click();
94
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.dotsBottom.ariaLabel)
95
+ .click();
96
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.horizontalDots.ariaLabel)
97
+ .click();
98
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.verticalDots.ariaLabel)
99
+ .click();
100
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.diagonalDots.ariaLabel)
101
+ .click();
102
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.sqrt.ariaLabel)
103
+ .click();
104
+ equationEditorFlyout.inputFieldCursor()
105
+ .type('4{rightarrow}');
106
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.triangle.ariaLabel)
107
+ .click();
108
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.ell.ariaLabel)
109
+ .click();
110
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.top.ariaLabel)
111
+ .click();
112
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.flat.ariaLabel)
113
+ .click();
114
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.natural.ariaLabel)
115
+ .click();
116
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.sharp.ariaLabel)
117
+ .click();
118
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.elliptic.ariaLabel)
119
+ .click();
120
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.perpendicularTo.ariaLabel)
121
+ .click();
122
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.clubSuit.ariaLabel)
123
+ .click();
124
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.diamondSuit.ariaLabel)
125
+ .click();
126
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.heartSuit.ariaLabel)
127
+ .click();
128
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.spadeSuit.ariaLabel)
129
+ .click();
130
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.exponent.ariaLabel)
131
+ .click();
132
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.underscore.ariaLabel)
133
+ .click();
134
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.backSlash.ariaLabel)
135
+ .click();
136
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.forwardSlash.ariaLabel)
137
+ .click();
138
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.vert.ariaLabel)
139
+ .click();
140
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.nabla.ariaLabel)
141
+ .click();
142
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.planck.ariaLabel)
143
+ .click();
144
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.angstrom.ariaLabel)
145
+ .click();
146
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.circle.ariaLabel)
147
+ .click();
148
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.bullet.ariaLabel)
149
+ .click();
150
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.not.ariaLabel)
151
+ .click();
152
+ equationEditorFlyout.categoryCharacters(` ${equationEditorCategoriesAndSymbols.misc.symbols.real.ariaLabel}`)
153
+ .click();
154
+ equationEditorFlyout.categoryCharacters(` ${equationEditorCategoriesAndSymbols.misc.symbols.imaginary.ariaLabel}`)
155
+ .click();
156
+ equationEditorFlyout.categoryCharacters(` ${equationEditorCategoriesAndSymbols.misc.symbols.partialDerivative.ariaLabel}`)
157
+ .click();
158
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.infinity.ariaLabel)
159
+ .click();
160
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.alpeh.ariaLabel)
161
+ .click();
162
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.degree.ariaLabel)
163
+ .click();
164
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.misc.symbols.angle.ariaLabel)
165
+ .click();
166
+ });
167
+
168
+ equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField('misc')
169
+ essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('∀…⋯⋮⋱√4△ℓ⊤♭♮♯℘⊥♧♢♡♤^_\\/|∇ℏÅ∘•¬ℜℑ∂∞ℵ°∠', '1/10000');
170
+ });
171
+
172
+ describe('Equation editor input category: Matrices', () => {
173
+ abortEarlySetup();
174
+ before(() => {
175
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
176
+ essayResponsePage.steps.expandCustomizeFormattingOptionsAccordion();
177
+ essayResponsePage.steps.selectCustomizedFormattingOption(['Equation Editor'])
178
+ essayResponsePage.steps.selectingCategories([`${equationEditorCategoriesAndSymbols['matrices'].displayName}`]);
179
+ cy.barsPreLoaderWait();
180
+ essayResponsePage.steps.switchToPreviewTab();
181
+ essayResponsePage.previewTabToolbarOption('Equation Editor')
182
+ .click();
183
+ });
184
+
185
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesTabs('matrices');
186
+
187
+ it('On clicking the symbols it should be displayed in the input field of Equation editor and user should be able to form meaningful equations using the category', () => {
188
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.matrix.ariaLabel)
189
+ .click();
190
+ equationEditorFlyout.inputFieldCursor()
191
+ .type('5');
192
+ for (let i = 1; i < 4; i++) {
193
+ equationEditorFlyout.inputFieldFirstEmptyBox()
194
+ .type(i);
195
+ }
196
+ equationEditorFlyout.inputFieldCursor()
197
+ .type('{rightarrow}{rightarrow}');
198
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.twoByTwoMatrixBoundedBrackets.ariaLabel)
199
+ .click();
200
+ equationEditorFlyout.inputFieldCursor()
201
+ .type('5');
202
+ for (let i = 1; i < 4; i++) {
203
+ equationEditorFlyout.inputFieldFirstEmptyBox()
204
+ .type(i);
205
+ }
206
+ equationEditorFlyout.inputFieldCursor()
207
+ .type('{rightarrow}{rightarrow}');
208
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.matrixBoundedParenthesis.ariaLabel)
209
+ .click();
210
+ equationEditorFlyout.inputFieldCursor()
211
+ .type('5');
212
+ for (let i = 1; i < 4; i++) {
213
+ equationEditorFlyout.inputFieldFirstEmptyBox()
214
+ .type(i);
215
+ }
216
+ equationEditorFlyout.inputFieldCursor()
217
+ .type('{rightarrow}{rightarrow}');
218
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.matrixBoundedBraces.ariaLabel)
219
+ .click();
220
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.singleMatrixBoundedBrackets.ariaLabel)
221
+ .click();
222
+ equationEditorFlyout.inputFieldCursor()
223
+ .type('5');
224
+ for (let i = 1; i < 4; i++) {
225
+ equationEditorFlyout.inputFieldFirstEmptyBox()
226
+ .type(i);
227
+ }
228
+ equationEditorFlyout.inputFieldCursor()
229
+ .type('{rightarrow}{rightarrow}');
230
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.matrixBoundedVerticalLines.ariaLabel)
231
+ .click();
232
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.insertColumnInMatrix.ariaLabel)
233
+ .click();
234
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.insertRowInMatrix.ariaLabel)
235
+ .click();
236
+ for (let i = 1; i < 10; i++) {
237
+ equationEditorFlyout.inputFieldFirstEmptyBox()
238
+ .type(i);
239
+ }
240
+ equationEditorFlyout.inputFieldCursor()
241
+ .type('{rightarrow}{rightarrow}');
242
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.matrixBoundedDoubleVerticalLines.ariaLabel)
243
+ .click();
244
+ equationEditorFlyout.inputFieldCursor()
245
+ .type('5');
246
+ for (let i = 1; i < 4; i++) {
247
+ equationEditorFlyout.inputFieldFirstEmptyBox()
248
+ .type(i);
249
+ }
250
+ equationEditorFlyout.inputFieldCursor()
251
+ .type('{rightarrow}{rightarrow}');
252
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.threeByThreeMatrixBoundedBrackets.ariaLabel)
253
+ .click();
254
+ equationEditorFlyout.inputFieldCursor()
255
+ .type('5');
256
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.subscript.ariaLabel)
257
+ .click();
258
+ equationEditorFlyout.inputFieldCursor()
259
+ .type('2');
260
+ equationEditorFlyout.inputFieldFirstEmptyBox()
261
+ .type('2');
262
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.superscript.ariaLabel)
263
+ .click();
264
+ equationEditorFlyout.inputFieldCursor()
265
+ .type('2')
266
+ equationEditorFlyout.inputFieldFirstEmptyBox()
267
+ .type('3');
268
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.factorial.ariaLabel)
269
+ .click();
270
+ for (let i = 1; i < 7; i++) {
271
+ equationEditorFlyout.inputFieldFirstEmptyBox()
272
+ .type(i);
273
+ }
274
+ equationEditorFlyout.inputFieldCursor()
275
+ .type('{rightarrow}{rightarrow}');
276
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.dotsBottom.ariaLabel)
277
+ .click();
278
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.dotsMiddle.ariaLabel)
279
+ .click();
280
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.verticalDots.ariaLabel)
281
+ .click();
282
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.matrices.symbols.diagonalDots.ariaLabel)
283
+ .click();
284
+ });
285
+
286
+ equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField('matrices')
287
+ essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('5123[5123](5123){[5]123}|123456789|‖5123‖[52223!123456]…⋯⋮⋱', '1/10000')
288
+ });
289
+
290
+ describe('Equation editor symbol category: Trigonometric Functions', () => {
291
+ abortEarlySetup();
292
+ before(() => {
293
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
294
+ essayResponsePage.steps.expandCustomizeFormattingOptionsAccordion();
295
+ essayResponsePage.steps.selectCustomizedFormattingOption(['Equation Editor'])
296
+ essayResponsePage.steps.selectingCategories([`${equationEditorCategoriesAndSymbols['trigonometry'].displayName}`]);
297
+ cy.barsPreLoaderWait();
298
+ essayResponsePage.steps.switchToPreviewTab();
299
+ essayResponsePage.previewTabToolbarOption('Equation Editor')
300
+ .click();
301
+ });
302
+
303
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutCategoryTooltip('trigonometry');
304
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesTabs('trigonometry', '1/10000');
305
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesFunctionality('trigonometry', '1/10000');
306
+ });
307
+
308
+ describe('Equation editor symbol category: Units', () => {
309
+ abortEarlySetup();
310
+ before(() => {
311
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
312
+ essayResponsePage.steps.expandCustomizeFormattingOptionsAccordion();
313
+ essayResponsePage.steps.selectCustomizedFormattingOption(['Equation Editor'])
314
+ essayResponsePage.steps.selectingCategories([`${equationEditorCategoriesAndSymbols['units'].displayName}`]);
315
+ cy.barsPreLoaderWait();
316
+ essayResponsePage.steps.switchToPreviewTab();
317
+ essayResponsePage.previewTabToolbarOption('Equation Editor')
318
+ .click();
319
+ });
320
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesTabs('units');
321
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesFunctionality('units', '2/10000');
322
+ });
323
+
324
+ describe('Equation editor input category: Calculus Symbols', () => {
325
+ abortEarlySetup();
326
+ before(() => {
327
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
328
+ essayResponsePage.steps.expandCustomizeFormattingOptionsAccordion();
329
+ essayResponsePage.steps.selectCustomizedFormattingOption(['Equation Editor'])
330
+ essayResponsePage.steps.selectingCategories([`${equationEditorCategoriesAndSymbols['calculus'].displayName}`]);
331
+ cy.barsPreLoaderWait();
332
+ essayResponsePage.steps.switchToPreviewTab();
333
+ essayResponsePage.previewTabToolbarOption('Equation Editor')
334
+ .click();
335
+ });
336
+
337
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutCategoryTooltip('calculus');
338
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesTabs('calculus');
339
+
340
+ it('On clicking the symbols it should be displayed in the input field of Equation editor and user should be able to form meaningful equations using the category', () => {
341
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.limit.ariaLabel)
342
+ .click();
343
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.epsilon.ariaLabel)
344
+ .click();
345
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.eulersNumber.ariaLabel)
346
+ .click();
347
+ equationEditorFlyout.previewInputField()
348
+ .click();
349
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.deltaUppercase.ariaLabel)
350
+ .click();
351
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.derivative.ariaLabel)
352
+ .click();
353
+ equationEditorFlyout.inputFieldCursor()
354
+ .type('2y');
355
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.secondDerivative.ariaLabel)
356
+ .click();
357
+ equationEditorFlyout.inputFieldCursor()
358
+ .type('2xy');
359
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.integral.ariaLabel)
360
+ .click();
361
+ equationEditorFlyout.inputFieldFirstEmptyBox()
362
+ .type('2')
363
+ equationEditorFlyout.inputFieldFirstEmptyBox()
364
+ .type('3{rightarrow}{rightarrow}{rightarrow}')
365
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.nDerivative.ariaLabel)
366
+ .click();
367
+ equationEditorFlyout.inputFieldFirstEmptyBox()
368
+ .type('3')
369
+ equationEditorFlyout.inputFieldFirstEmptyBox()
370
+ .type('3');
371
+ equationEditorFlyout.previewInputField()
372
+ .click();
373
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.doubleIntegral.ariaLabel)
374
+ .click();
375
+ equationEditorFlyout.inputFieldCursor()
376
+ .type('2{rightarrow}{rightarrow}{rightarrow}');
377
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.partialDerivative.ariaLabel)
378
+ .click();
379
+ equationEditorFlyout.inputFieldCursor()
380
+ .type('2');
381
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.timeDerivative.ariaLabel)
382
+ .click();
383
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.tripleIntegral.ariaLabel)
384
+ .click();
385
+ equationEditorFlyout.inputFieldCursor()
386
+ .type('1{rightarrow}');
387
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.timeSecondDerivative.ariaLabel)
388
+ .click();
389
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.lineIntegral.ariaLabel)
390
+ .click();
391
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.vector.ariaLabel)
392
+ .click();
393
+ equationEditorFlyout.inputFieldCursor()
394
+ .type('x{rightarrow}');
395
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.closedSurfaceIntegral.ariaLabel)
396
+ .click();
397
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.unitVector.ariaLabel)
398
+ .click();
399
+ equationEditorFlyout.inputFieldCursor()
400
+ .type('x{rightarrow}');
401
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.closedVolumeIntegral.ariaLabel)
402
+ .click();
403
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.underSim.ariaLabel)
404
+ .click();
405
+ equationEditorFlyout.inputFieldCursor()
406
+ .type('x{rightarrow}{rightarrow}');
407
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.summation.ariaLabel)
408
+ .click();
409
+ equationEditorFlyout.inputFieldFirstEmptyBox()
410
+ .type('3');
411
+ equationEditorFlyout.inputFieldFirstEmptyBox()
412
+ .type('4{rightarrow}');
413
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.absoluteValue.ariaLabel)
414
+ .click();
415
+ equationEditorFlyout.inputFieldCursor()
416
+ .type('5{rightarrow}');
417
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.infinity.ariaLabel)
418
+ .click();
419
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.calculus.symbols.nabla.ariaLabel)
420
+ .click();
421
+ });
422
+
423
+ equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField('calculus')
424
+ essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('limx→ϵeΔdydx2yd2ydx22xy∫32d3ydx3∬2∂y∂x2y˙∭1y¨∮x→∯x^∰x~∑34|5|∞∇', '3/10000')
425
+ });
426
+
427
+ describe('Equation editor input category: Geometric Symbols', () => {
428
+ abortEarlySetup();
429
+ before(() => {
430
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
431
+ essayResponsePage.steps.expandCustomizeFormattingOptionsAccordion();
432
+ essayResponsePage.steps.selectCustomizedFormattingOption(['Equation Editor'])
433
+ essayResponsePage.steps.selectingCategories([`${equationEditorCategoriesAndSymbols['geometry'].displayName}`]);
434
+ cy.barsPreLoaderWait();
435
+ essayResponsePage.steps.switchToPreviewTab();
436
+ essayResponsePage.previewTabToolbarOption('Equation Editor')
437
+ .click();
438
+ });
439
+
440
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutCategoryTooltip('geometry');
441
+ equationEditorFlyout.tests.verifyEquationEditorFlyoutSymbolCategoriesTabs('geometry');
442
+
443
+
444
+ it('On clicking the symbols it should be displayed in the input field of Equation editor and user should be able to form meaningful equations using the category', () => {
445
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.circle.ariaLabel)
446
+ .click();
447
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.square.ariaLabel)
448
+ .click();
449
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.triangle.ariaLabel)
450
+ .click();
451
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.parallelogram.ariaLabel)
452
+ .click();
453
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.perpendicularTo.ariaLabel)
454
+ .click();
455
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.similarTo.ariaLabel)
456
+ .click();
457
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.congruentTo.ariaLabel)
458
+ .click();
459
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.parallelTo.ariaLabel)
460
+ .click();
461
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.notParallel.ariaLabel)
462
+ .click();
463
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.pi.ariaLabel)
464
+ .click();
465
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.dotMultiplier.ariaLabel)
466
+ .click();
467
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.degree.ariaLabel)
468
+ .click();
469
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.prime.ariaLabel)
470
+ .click();
471
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.doublePrime.ariaLabel)
472
+ .click();
473
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.angle.ariaLabel)
474
+ .click();
475
+ equationEditorFlyout.inputFieldCursor()
476
+ .type('45');
477
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.measureOfAngle.ariaLabel)
478
+ .click();
479
+ equationEditorFlyout.inputFieldCursor()
480
+ .type('30');
481
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.arc.ariaLabel)
482
+ .click();
483
+ equationEditorFlyout.inputFieldCursor()
484
+ .type('2{rightarrow}');
485
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.topLineSegment.ariaLabel)
486
+ .click();
487
+ equationEditorFlyout.inputFieldCursor()
488
+ .type('2{rightarrow}');
489
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.vector.ariaLabel)
490
+ .click();
491
+ equationEditorFlyout.inputFieldCursor()
492
+ .type('2{rightarrow}');
493
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.topDoubleSidedArrow.ariaLabel)
494
+ .click();
495
+ equationEditorFlyout.inputFieldCursor()
496
+ .type('2{rightarrow}');
497
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.topLeftArrow.ariaLabel)
498
+ .click();
499
+ equationEditorFlyout.inputFieldCursor()
500
+ .type('2{rightarrow}');
501
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.topRightArrow.ariaLabel)
502
+ .click();
503
+ equationEditorFlyout.inputFieldCursor()
504
+ .type('2{rightarrow}');
505
+ equationEditorFlyout.categoryCharacters(equationEditorCategoriesAndSymbols.geometry.symbols.recurringDecimal.ariaLabel)
506
+ .click();
507
+ equationEditorFlyout.inputFieldCursor()
508
+ .type('2{rightarrow}');
509
+ });
510
+
511
+ equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField('geometry')
512
+ essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('◯□△▱⊥~≅∥∦π·°′″∠45m∠302⌒2―2→2↔2←2→2˙', '1/10000');
513
+ });
514
+ });
@@ -0,0 +1,80 @@
1
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
2
+ import { essayResponsePage, dialogBoxBase } from "../../../pages";
3
+ import { commonComponents } from "../../../pages/components";
4
+
5
+ describe('Create question page - Essay response: Header section and Saving question', () => {
6
+ before(() => {
7
+ cy.loginAs('admin');
8
+ });
9
+
10
+ describe('Header section contents', () => {
11
+ abortEarlySetup();
12
+ before(() => {
13
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
14
+ });
15
+
16
+ essayResponsePage.tests.verifyCreateQuestionPageQuestionTypeHeader('Essay response - rich text');
17
+ });
18
+
19
+ describe('Tabs section', () => {
20
+ abortEarlySetup();
21
+ before(() => {
22
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
23
+ });
24
+
25
+ essayResponsePage.tests.verifyTabsSection();
26
+ });
27
+
28
+ describe('Cancel button', () => {
29
+ abortEarlySetup();
30
+ before(() => {
31
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
32
+ });
33
+
34
+ essayResponsePage.tests.verifyCancelButton('essay response - rich text');
35
+ });
36
+
37
+ describe('Save Question button', () => {
38
+ abortEarlySetup();
39
+ before(() => {
40
+ essayResponsePage.steps.navigateToCreateQuestion('essay response - rich text');
41
+ cy.barsPreLoaderWait();
42
+ });
43
+
44
+ describe('Validation error messages', () => {
45
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
46
+
47
+ it('Validation error messages should be displayed below required input fields', () => {
48
+ essayResponsePage.questionInstructionsLabelEditTab()
49
+ .parents('.edit-question-instruction-wrapper')
50
+ .within(() => {
51
+ commonComponents.errorMessage()
52
+ .verifyInnerText('Error: Question instructions are required.')
53
+ .and('be.visible');
54
+ });
55
+ essayResponsePage.pleaseEnterPointsErrorMessage()
56
+ .verifyInnerText('Error: Please enter points.');
57
+ });
58
+
59
+ it('Validation error messages should disappear when required input fields are filled', () => {
60
+ essayResponsePage.steps.addQuestionInstructions();
61
+ essayResponsePage.questionInstructionsLabelEditTab()
62
+ .parents('.edit-question-instruction-wrapper')
63
+ .within(() => {
64
+ commonComponents.errorMessage()
65
+ .should('not.exist');
66
+ });
67
+ essayResponsePage.steps.allotPoints(20);
68
+ essayResponsePage.pleaseEnterPointsErrorMessage()
69
+ .should('not.exist');
70
+ });
71
+ });
72
+
73
+ describe('Saving a question', () => {
74
+ it('When user has filled all the mandatory fields then on clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
75
+ essayResponsePage.steps.saveAQuestionAndVerifySnackbar();
76
+ });
77
+ essayResponsePage.tests.verifySavedSuccessfullySnackbarCSSanda11y();
78
+ });
79
+ });
80
+ });