itemengine-cypress-automation 1.0.573-IEI-7080-f70315e.0 → 1.0.573-IEI-7079-ed54ea2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/cypress/e2e/ILC/ChartsBar/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +205 -0
  2. package/cypress/e2e/ILC/ChartsBar/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +205 -0
  3. package/cypress/e2e/ILC/ChartsBar/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +205 -0
  4. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +248 -1
  5. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +247 -0
  6. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +223 -0
  7. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +223 -0
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +175 -0
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +223 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +191 -0
  11. package/cypress/e2e/ILC/ChartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePointsLocked.js +24 -24
  12. package/cypress/e2e/ILC/ChartsLine/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +177 -0
  13. package/cypress/e2e/ILC/ChartsLine/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +206 -0
  14. package/cypress/e2e/ILC/ChartsLine/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +205 -0
  15. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +228 -0
  16. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +229 -1
  17. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +229 -1
  18. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +206 -0
  19. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +183 -0
  20. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +206 -0
  21. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +184 -0
  22. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsBasic.js +181 -0
  23. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/additionalSettingsBasic.js +37 -2
  24. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/additionalSettingsForAnswerInputFields.js +72 -4
  25. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +19 -1
  26. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +56 -1
  27. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/setLimitSection.js +57 -3
  28. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specialCharactersSection.js +15 -18
  29. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +54 -1
  30. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/styleAndLayoutCustomization.js +12 -0
  31. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/styleAndLayoutCustomizationAllViews.js +156 -0
  32. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +0 -2
  33. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +7 -108
  34. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +7 -108
  35. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +7 -108
  36. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +9 -124
  37. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +8 -123
  38. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +8 -123
  39. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +7 -108
  40. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +6 -93
  41. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +7 -108
  42. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/responseLevelAlternateAnswersBasicScoring.js +2 -23
  43. package/cypress/e2e/ILC/ImageHighlight/additionalSettings.js +86 -0
  44. package/cypress/e2e/ILC/ImageHighlight/backgroundImageAndCanvasProperties.js +60 -9
  45. package/cypress/e2e/ILC/ImageHighlight/customiseHighlightStyle.js +14 -12
  46. package/cypress/e2e/ILC/ImageHighlight/imageHighlightStyle.js +12 -3
  47. package/cypress/e2e/ILC/ImageHighlight/minimumScoringPenaltyPointsAndRoundingDropdown.js +65 -2
  48. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +15 -1
  49. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +1 -168
  50. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +284 -17
  51. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +397 -25
  52. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +320 -20
  53. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +0 -130
  54. package/cypress/e2e/ILC/SingleSelection/allOrNothingWithAlternativeAnswer.js +97 -10
  55. package/cypress/e2e/ILC/chartsDotsPlot/scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +164 -10
  56. package/cypress/e2e/ILC/chartsDotsPlot/scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +165 -11
  57. package/cypress/e2e/ILC/chartsDotsPlot/scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +165 -11
  58. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +24 -14
  59. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +18 -10
  60. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +26 -16
  61. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +25 -15
  62. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +18 -10
  63. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +24 -13
  64. package/cypress/e2e/ILC/dataApi/saveItems.js +1 -1
  65. package/cypress/e2e/ILC/dataApi/saveQuestions.js +7 -7
  66. package/cypress/e2e/ILC/dataApi/saveQuestionsMCQAlternateAnswers.js +6 -6
  67. package/cypress/pages/chartsBarPage.js +44 -1
  68. package/cypress/pages/chartsDotPlotPage.js +99 -1
  69. package/cypress/pages/chartsLinePage.js +48 -1
  70. package/cypress/pages/components/additionalSettingsPanel.js +9 -0
  71. package/cypress/pages/components/backgroundImageUploadComponent.js +1 -1
  72. package/cypress/pages/components/colorPopupComponent.js +1 -1
  73. package/cypress/pages/components/figCommonStyleAndLayoutComponent.js +4 -10
  74. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +14 -37
  75. package/cypress/pages/components/gradingViewEnumerationComponent.js +5 -0
  76. package/cypress/pages/components/imageCanvasComponent.js +0 -3
  77. package/cypress/pages/components/placeholderTextSectionComponent.js +10 -0
  78. package/cypress/pages/components/showAlternativeAnswersComponent.js +41 -65
  79. package/cypress/pages/fillInTheGapsOverImageTextPage.js +21 -1
  80. package/cypress/pages/imageHighlightPage.js +184 -7
  81. package/cypress/pages/itemPreviewPage.js +1 -0
  82. package/cypress/pages/multipleSelectionPage.js +32 -0
  83. package/cypress/pages/singleSelectionPage.js +17 -0
  84. package/cypress/support/helpers/utilities.js +16 -0
  85. package/package.json +1 -1
  86. package/scripts/sorry-cypress.mjs +47 -53
  87. package/service.yaml +2 -2
@@ -1,6 +1,8 @@
1
1
  import { chartsLinePage } from "../../../../pages";
2
2
  import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
3
 
4
+ const alternativeAnswerCheck = Cypress.env('ENABLE_ALTERNATIVE_ANSWER_ENHANCEMENT');
5
+
4
6
  describe('Create item page - Charts - Line: Partial equal weights scoring with alternative answer - When Correct answer points are more than alternative Answer points with locked Points', () => {
5
7
  before(() => {
6
8
  cy.loginAs('admin');
@@ -48,6 +50,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
48
50
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
49
51
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
50
52
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
53
+ if (alternativeAnswerCheck === 'true') {
54
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 5 pts, 5 pts, 5 pts, 5 pts)');
55
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
56
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
57
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
58
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
59
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
60
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
61
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
62
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
63
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
64
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
65
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
66
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
67
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
68
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
69
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
70
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
71
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
72
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
73
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
74
+ }
51
75
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
52
76
  });
53
77
 
@@ -70,6 +94,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
70
94
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
71
95
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
72
96
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
97
+ if (alternativeAnswerCheck === 'true') {
98
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 5 pts, 5 pts, 5 pts, 5 pts)');
99
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
100
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
101
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
102
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
103
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
104
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
105
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
106
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
107
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
108
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
109
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
110
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
111
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
112
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
113
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
114
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
115
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
116
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
117
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
118
+ }
73
119
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
74
120
  });
75
121
 
@@ -88,6 +134,9 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
88
134
  chartsLinePage.steps.verifyPointCorrectIncorrectIconInPreviewTab(4, 'correct');
89
135
  chartsLinePage.steps.verifyCorrectIncorrectStatusMessageNotExists();
90
136
  chartsLinePage.steps.verifyCorrectAnswerSectionNotExist();
137
+ if (alternativeAnswerCheck === 'true') {
138
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleNotExists();
139
+ }
91
140
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
92
141
  });
93
142
 
@@ -106,6 +155,9 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
106
155
  chartsLinePage.steps.verifyPointCorrectIncorrectIconInPreviewTab(4, 'correct');
107
156
  chartsLinePage.steps.verifyCorrectIncorrectStatusMessageNotExists();
108
157
  chartsLinePage.steps.verifyCorrectAnswerSectionNotExist();
158
+ if (alternativeAnswerCheck === 'true') {
159
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleNotExists();
160
+ }
109
161
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
110
162
  });
111
163
 
@@ -128,6 +180,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
128
180
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
129
181
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
130
182
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
183
+ if (alternativeAnswerCheck === 'true') {
184
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 5 pts, 5 pts, 5 pts, 5 pts)');
185
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
186
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
187
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
188
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
189
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
190
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
191
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
192
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
193
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
194
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
195
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
196
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
197
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
198
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
199
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
200
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
201
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
202
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
203
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
204
+ }
131
205
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
132
206
  });
133
207
 
@@ -150,6 +224,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
150
224
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
151
225
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
152
226
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
227
+ if (alternativeAnswerCheck === 'true') {
228
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 5 pts, 5 pts, 5 pts, 5 pts)');
229
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
230
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
231
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
232
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
233
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
234
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
235
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
236
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
237
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
238
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
239
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
240
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
241
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
242
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
243
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
244
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
245
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
246
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
247
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
248
+ }
153
249
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
154
250
  });
155
251
 
@@ -172,6 +268,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
172
268
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
173
269
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
174
270
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
271
+ if (alternativeAnswerCheck === 'true') {
272
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 5 pts, 5 pts, 5 pts, 5 pts)');
273
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
274
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
275
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
276
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
277
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
278
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
279
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
280
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
281
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
282
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
283
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
284
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
285
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
286
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
287
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
288
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
289
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
290
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
291
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
292
+ }
175
293
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
176
294
  });
177
295
 
@@ -194,6 +312,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
194
312
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
195
313
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
196
314
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
315
+ if (alternativeAnswerCheck === 'true') {
316
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 5 pts, 5 pts, 5 pts, 5 pts)');
317
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
318
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
319
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
320
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
321
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
322
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
323
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
324
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
325
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
326
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
327
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
328
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
329
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
330
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
331
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
332
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
333
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
334
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
335
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
336
+ }
197
337
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
198
338
  });
199
339
 
@@ -216,6 +356,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
216
356
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
217
357
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
218
358
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
359
+ if (alternativeAnswerCheck === 'true') {
360
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 5 pts, 5 pts, 5 pts, 5 pts)');
361
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
362
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
363
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
364
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
365
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
366
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
367
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
368
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
369
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
370
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
371
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
372
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
373
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
374
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
375
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
376
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
377
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
378
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
379
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
380
+ }
219
381
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
220
382
  });
221
383
 
@@ -242,6 +404,28 @@ describe('Create item page - Charts - Line: Partial equal weights scoring with a
242
404
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
243
405
  chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
244
406
  chartsLinePage.steps.verifyCorrectIncorrectStatusMessageNotExists();
407
+ if (alternativeAnswerCheck === 'true') {
408
+ chartsLinePage.steps.verifyCorrectAnswersLabelAndPointVisible('(Points per response in order of appearance - 0 pts, 10 pts, 10 pts, 10 pts, 10 pts)');
409
+ chartsLinePage.steps.verifyLockedPointInCorrectAnswerSection({ pointIndex: 0, value: 3, range: 10 });
410
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 1, value: 4, range: 10 });
411
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 2, value: 5, range: 10 });
412
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 3, value: 6, range: 10 });
413
+ chartsLinePage.steps.verifyPointInCorrectAnswerSection({ pointIndex: 4, value: 1, range: 10 });
414
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleExists();
415
+ chartsLinePage.steps.disableShowAlternativeAnswersToggle();
416
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
417
+ chartsLinePage.steps.verifyAlternativeAnswersSectionNotExist();
418
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
419
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleChecked();
420
+ chartsLinePage.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(Points per response in order of appearance - 0 pts, 3 pts, 3 pts, 3 pts, 3 pts)');
421
+ chartsLinePage.steps.verifyLockedPointInAlternativeAnswerSection({ pointIndex: 0, value: 3, range: 10 });
422
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 1, value: 2, range: 10 });
423
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 2, value: 3, range: 10 });
424
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 3, value: 1, range: 10 });
425
+ chartsLinePage.steps.verifyPointValueInAlternativeAnswerSection({ pointIndex: 4, value: 0, range: 10 });
426
+ chartsLinePage.steps.clickShowAlternativeAnswersToggle();
427
+ chartsLinePage.steps.verifyShowAlternativeAnswersToggleUnchecked();
428
+ }
245
429
  chartsLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
246
430
  });
247
431
  });
@@ -142,4 +142,185 @@ describe('Create item page - Fill in the gaps over image with text: Partial equa
142
142
  fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(2, 20);
143
143
  });
144
144
  });
145
+
146
+ describe('Question preview: Auto scored - Partial equal weights: Rounding', () => {
147
+ abortEarlySetup();
148
+ before(() => {
149
+ fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
150
+ cy.barsPreLoaderWait();
151
+ fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
152
+ fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
153
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(30);
154
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(40);
155
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(80);
156
+ fillInTheGapsOverImageTextPage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
157
+ fillInTheGapsOverImageTextPage.steps.allotPoints(15);
158
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: 'Flower' }, { responseIndex: 1, responseText: 'Leaf' }, { responseIndex: 2, responseText: 'Stem' }]);
159
+ fillInTheGapsOverImageTextPage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
160
+ });
161
+
162
+ it('When the user sets \'Rounding\' to \'Round down if <=0.99\', attempts the question partially correct with an response such that points of the correctly attempted responses has decimal value greater than 0.5 and less than 0.99, then the points awarded should be rounded down to the nearest integer value', () => {
163
+ fillInTheGapsOverImageTextPage.steps.expandRoundingDropdown();
164
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromRoundingDropdown('round down if <= 0.99');
165
+ fillInTheGapsOverImageTextPage.steps.allotPoints(11);
166
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
167
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'Flower' }]);
168
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(3, 11);
169
+ });
170
+
171
+ it('When the user has set \'Rounding\' to \'Round down if <=0.99\', attempts the question partially correct with an response such that points of the correctly attempted responses has decimal value equal to 0.99, then the points awarded should be rounded down to the nearest integer value', () => {
172
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
173
+ fillInTheGapsOverImageTextPage.steps.allotPoints(8.97);
174
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
175
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Leaf' }]);
176
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(2, 8.97);
177
+ });
178
+
179
+ it('When the user sets \'Rounding\' to \'Round down if <=0.50\', attempts the question partially correct with an response such that points of the correctly attempted responses has decimal value less than 0.50, then the points awarded should be rounded down to the nearest integer value', () => {
180
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
181
+ fillInTheGapsOverImageTextPage.steps.expandRoundingDropdown();
182
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromRoundingDropdown('round down if <= 0.50');
183
+ fillInTheGapsOverImageTextPage.steps.allotPoints(10);
184
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
185
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 2, responseText: 'Stem' }]);
186
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(3, 10);
187
+ });
188
+
189
+ it('When the user has set \'Rounding\' to \'Round down if <=0.50\', attempts the question partially correct with an response such that points of the correctly attempted responses has decimal value equal to 0.50, then the points awarded should be rounded down to the nearest integer value', () => {
190
+ cy.log('Points allocation based on the test case requirements.');
191
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
192
+ fillInTheGapsOverImageTextPage.steps.allotPoints(4.5);
193
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
194
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 2, responseText: 'Stem' }]);
195
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(1, 4.5);
196
+ });
197
+
198
+ it('When the user sets \'Rounding\' to \'Round down if <=0.50, Round up if > 0.50\', attempts the question partially correct with an response such that points of the correctly attempted responses has decimal value less than 0.50, then the points awarded should be rounded down to the nearest integer value', () => {
199
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
200
+ fillInTheGapsOverImageTextPage.steps.expandRoundingDropdown();
201
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromRoundingDropdown('round down if <= 0.50; Round up if > 0.50');
202
+ fillInTheGapsOverImageTextPage.steps.allotPoints(10);
203
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
204
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 2, responseText: 'Stem' }]);
205
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(3, 10);
206
+ });
207
+
208
+ it('When the user has set \'Rounding\' to \'Round down if <=0.50, Round up if > 0.50\', attempts the question partially correct with an response such that points of the correctly attempted responses has decimal value equal to 0.50, then the points awarded should be rounded down to the nearest integer value', () => {
209
+ cy.log('Points allocation based on the test case requirements.');
210
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
211
+ fillInTheGapsOverImageTextPage.steps.allotPoints(4.5);
212
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
213
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Leaf' }]);
214
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(1, 4.5);
215
+ });
216
+
217
+ it('When the user has set \'Rounding\' to \'Round down if <=0.50, Round up if > 0.50\', attempts the question partially correct with an response such that points of the correctly attempted responses has decimal value greater than 0.50, then the points awarded should be rounded down to the nearest integer value', () => {
218
+ cy.log('Points allocation based on the test case requirements.');
219
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
220
+ fillInTheGapsOverImageTextPage.steps.allotPoints(11);
221
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
222
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Leaf' }]);
223
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(4, 11);
224
+ });
225
+
226
+ it('When \'Round negative score to zero\' is in checked state and the user attempts the question incorrectly, then the user should be awarded with 0 points', () => {
227
+ cy.log('Pre-step: Setting penalty scoring to \'Penalty points for the entire question\', allotting penalty points')
228
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
229
+ fillInTheGapsOverImageTextPage.steps.expandPenaltyScoringDropdown();
230
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromPenaltyScoringDropdown('Penalty points for the entire question');
231
+ fillInTheGapsOverImageTextPage.steps.allotPenaltyPoints(4);
232
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
233
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Roots' }]);
234
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(0, 11);
235
+ });
236
+
237
+ it('When the user unchecks \'Round negative score to zero\' checkbox and the user attempts the question incorrectly, then the user should be awarded with negative points', () => {
238
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
239
+ fillInTheGapsOverImageTextPage.steps.uncheckRoundNegativeScoresToZeroCheckbox();
240
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
241
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Roots' }]);
242
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(-4, 11);
243
+ });
244
+ });
245
+
246
+ describe('Question preview: Auto scored - Partial equal weights: Penalty scoring with \'Round negative score to zero\' unchecked', () => {
247
+ abortEarlySetup();
248
+ before(() => {
249
+ fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
250
+ cy.barsPreLoaderWait();
251
+ fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
252
+ fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
253
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(30);
254
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(40);
255
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(80);
256
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: 'Flower' }, { responseIndex: 1, responseText: 'Leaf' }, { responseIndex: 2, responseText: 'Stem' }]);
257
+ fillInTheGapsOverImageTextPage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
258
+ fillInTheGapsOverImageTextPage.steps.allotPoints(27);
259
+ });
260
+
261
+ //Penalty points for the entire question
262
+ it('When the user sets penalty scoring to \'Penalty points for the entire question\', allots penalty points and attempts the question incorrectly, then the user should be awarded with negative points', () => {
263
+ fillInTheGapsOverImageTextPage.steps.expandPenaltyScoringDropdown();
264
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromPenaltyScoringDropdown('Penalty points for the entire question');
265
+ fillInTheGapsOverImageTextPage.steps.uncheckRoundNegativeScoresToZeroCheckbox();
266
+ fillInTheGapsOverImageTextPage.steps.allotPenaltyPoints(2);
267
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
268
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Roots' }]);
269
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(-2, 27);
270
+ });
271
+
272
+ it('When the user attempts the question correctly along with an incorrect response, then penalty points should get deducted from the awarded points', () => {
273
+ fillInTheGapsOverImageTextPage.steps.resetQuestionPreview();
274
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Roots' }]);
275
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Leaf' }]);
276
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(7, 27);
277
+ });
278
+
279
+ it('When the user attempts the question correctly along with multiple incorrect responses, then penalty points should get deducted from the awarded points only once, the deducted penalty points should not increase as per number of attempted incorrect responses', () => {
280
+ fillInTheGapsOverImageTextPage.steps.resetQuestionPreview();
281
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Leaf' }]);
282
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'leaves' }]);
283
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 2, responseText: 'apple' }]);
284
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(7, 27);
285
+ });
286
+
287
+ it('When the user has defined penalty points and also sets minimum scoring to \'Award minimum score only if attempted\' and allots minimum points, then on attempting the question incorrectly, minimum points should be awarded', () => {
288
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
289
+ fillInTheGapsOverImageTextPage.steps.expandMinimumScoringDropdown();
290
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromMinimumScoringDropdown('Award minimum score only if attempted');
291
+ fillInTheGapsOverImageTextPage.steps.allotMinimumPoints(3);
292
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
293
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'leaves' }]);
294
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(3, 27);
295
+ cy.log('Post step: Switching to edit tab and resetting minimum scoring to "No minimum score"')
296
+ fillInTheGapsOverImageTextPage.steps.switchToEditTab();
297
+ fillInTheGapsOverImageTextPage.steps.expandMinimumScoringDropdown();
298
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromMinimumScoringDropdown('No minimum score');
299
+ });
300
+
301
+ //Penalty points for each incorrect cell - Specify total penalty points
302
+ it('When the user sets penalty scoring to \'Penalty points for each incorrect text container\', and \'Specify total penalty points\' radio button in checked state, allots total penalty points and attempts the question incorrectly, then the user should be awarded with negative points of incorrect response', () => {
303
+ fillInTheGapsOverImageTextPage.steps.expandPenaltyScoringDropdown();
304
+ fillInTheGapsOverImageTextPage.steps.selectOptionFromPenaltyScoringDropdown('Penalty points for each incorrect text container');
305
+ fillInTheGapsOverImageTextPage.steps.allotTotalPenaltyPoints(4);
306
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
307
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'leaves' }]);
308
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(-4, 27);
309
+ });
310
+
311
+ it('When the user attempts the question correctly along with an incorrect response, then penalty points should get deducted from the awarded points', () => {
312
+ fillInTheGapsOverImageTextPage.steps.resetQuestionPreview();
313
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'leaves' }]);
314
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Leaf' }]);
315
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(6.3333, 27);
316
+ });
317
+
318
+ it('When the user attempts the question correctly along with multiple incorrect responses, then penalty points for each incorrect response should get deducted from the awarded points', () => {
319
+ fillInTheGapsOverImageTextPage.steps.resetQuestionPreview();
320
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 1, responseText: 'Leaf' }]);
321
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'leaves' }]);
322
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsPreviewTab([{ responseIndex: 2, responseText: 'apple' }]);
323
+ fillInTheGapsOverImageTextPage.steps.verifyPreviewScore(6.3333, 27);
324
+ });
325
+ });
145
326
  });
@@ -1,7 +1,8 @@
1
- import { fillInTheGapsOverImageTextPage } from "../../../pages";
1
+ import { fillInTheGapsOverImageTextPage, itemPreviewPage } from "../../../pages";
2
2
  import abortEarlySetup from "../../../support/helpers/abortEarly";
3
3
  import utilities from "../../../support/helpers/utilities";
4
4
  const fontSizes = { 'Tiny': '12px', 'Small': '14px', 'Default': '16px', 'Normal': '18px', 'Big': '22px', 'Huge': '26px' };
5
+ let itemReferenceID = "";
5
6
 
6
7
  describe('Fill In the gaps over image with text - Additional settings', () => {
7
8
  before(() => {
@@ -15,6 +16,15 @@ describe('Fill In the gaps over image with text - Additional settings', () => {
15
16
  });
16
17
 
17
18
  fillInTheGapsOverImageTextPage.tests.verifyAdditionalSettingsAccordionProperties();
19
+
20
+ it('When the user expands the Additional settings accordion make some changes and collapse and re-expand it, the changes should persist', () => {
21
+ fillInTheGapsOverImageTextPage.steps.checkCustomizePlaceholderTextCheckbox();
22
+ fillInTheGapsOverImageTextPage.steps.selectEnumerationType('without enumeration');
23
+ fillInTheGapsOverImageTextPage.steps.collapsedAdditionalSettings();
24
+ fillInTheGapsOverImageTextPage.steps.expandAdditionalSettings();
25
+ fillInTheGapsOverImageTextPage.steps.verifyWithoutEnumerationRadioButtonCheckedState();
26
+ fillInTheGapsOverImageTextPage.steps.verifyCustomizePlaceholderTextCheckboxChecked();
27
+ });
18
28
  });
19
29
 
20
30
  describe('Additional settings: Font size - Contents in edit tab', () => {
@@ -73,7 +83,7 @@ describe('Fill In the gaps over image with text - Additional settings', () => {
73
83
  });
74
84
  });
75
85
  });
76
-
86
+
77
87
  describe('Additional settings: Accessibility section', () => {
78
88
  abortEarlySetup();
79
89
  before(() => {
@@ -95,4 +105,29 @@ describe('Fill In the gaps over image with text - Additional settings', () => {
95
105
 
96
106
  fillInTheGapsOverImageTextPage.tests.verifyDetailsSection();
97
107
  });
108
+
109
+ describe('Additional settings: Details section Grading view', () => {
110
+ abortEarlySetup();
111
+ before(() => {
112
+ fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
113
+ cy.barsPreLoaderWait();
114
+ fillInTheGapsOverImageTextPage.steps.addTextInQuestionInstructionsInputField('Navigating to fill in the gaps over image with text');
115
+ fillInTheGapsOverImageTextPage.steps.expandAdditionalSettings();
116
+ fillInTheGapsOverImageTextPage.steps.enterTextInTeacherGuidelinesInputField('Teacher scoring guidelines');
117
+ fillInTheGapsOverImageTextPage.steps.enterTextInSampleAnswerInputField('Sample answer');
118
+ fillInTheGapsOverImageTextPage.steps.enterTextInAcknowledgementsInputField('Acknowledgements');
119
+ });
120
+
121
+ it('When the user navigates to the grading view, the Details section information should be displayed correctly', () => {
122
+ fillInTheGapsOverImageTextPage.steps.clickOnSaveQuestionButton();
123
+ fillInTheGapsOverImageTextPage.steps.clickOnConfirmButton();
124
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
125
+ cy.wrap(itemPreviewPage.steps.getItemReferenceID()).then((referenceId) => {
126
+ itemReferenceID = referenceId;
127
+ cy.visit(`/item-engine/demo/render-item/grading-view/${utilities.base64Encoding(itemReferenceID)}`);
128
+ fillInTheGapsOverImageTextPage.steps.verifyTeacherGuidelinesLabelInGradingView('Teacher Guidelines');
129
+ fillInTheGapsOverImageTextPage.steps.verifyTeacherGuidelinesDescriptionInGradingView('Teacher scoring guidelines');
130
+ });
131
+ });
132
+ });
98
133
  });
@@ -1,4 +1,4 @@
1
- import { fillInTheGapsOverImageTextPage } from "../../../pages";
1
+ import { fillInTheGapsOverImageTextPage, itemPreviewPage, studentViewPage, dialogBoxBase } from "../../../pages";
2
2
  import abortEarlySetup from "../../../support/helpers/abortEarly";
3
3
  import utilities from "../../../support/helpers/utilities";
4
4
  const enumerationOptions = {
@@ -9,6 +9,9 @@ const enumerationOptions = {
9
9
  'Roman numeral (lowercase)': ['i', 'ii'],
10
10
  };
11
11
  const css = Cypress.env('css');
12
+ let correctAnswerViews = ['Question preview', 'Item preview', 'Grading view'];
13
+ const views = utilities.getViews(correctAnswerViews);
14
+ let itemReferenceID = "";
12
15
 
13
16
  describe('Fill In the gaps over image with text - Additional settings : Placeholder text, Grading view, ARIA label for text containers', () => {
14
17
  before(() => {
@@ -110,7 +113,7 @@ describe('Fill In the gaps over image with text - Additional settings : Placehol
110
113
  fillInTheGapsOverImageTextPage.steps.insertResponseArea(80);
111
114
  fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: 'Flower' }, { responseIndex: 1, responseText: 'Leaf' }]);
112
115
  fillInTheGapsOverImageTextPage.steps.allotPoints(20);
113
- //fillInTheGapsOverImageTextPage.steps.checkAllowStudentToCheckAnswerCheckbox();
116
+ //fillInTheGapsOverImageTextPage.steps.checkAllowStudentToCheckAnswerCheckbox();
114
117
  fillInTheGapsOverImageTextPage.steps.expandAdditionalSettings();
115
118
  });
116
119
 
@@ -154,12 +157,11 @@ describe('Fill In the gaps over image with text - Additional settings : Placehol
154
157
  'font-weight': css.fontWeight.regular
155
158
  });
156
159
  utilities.verifyCSS(fillInTheGapsOverImageTextPage.correctAnswerResponseWrapperWithoutEnumeration().parents('.response-input-field'), {
157
- 'border': `1px solid ${css.color.correctAnswer}`
160
+ 'border': `1px solid ${css.color.primaryBtnBg}`
158
161
  });
159
162
  })
160
163
  });
161
164
 
162
-
163
165
  it('Accessibility of correct answer section', { tags: 'a11y' }, () => {
164
166
  cy.checkAccessibility(fillInTheGapsOverImageTextPage.correctAnswerSectionWithoutEnumerationWrapper().parents('[class*="question-preview-wrapper"]'));
165
167
  });
@@ -248,4 +250,70 @@ describe('Fill In the gaps over image with text - Additional settings : Placehol
248
250
  fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldAriaLabelPreviewTab(1, 'Add answer for response 2');
249
251
  });
250
252
  });
253
+
254
+ views.forEach((view) => {
255
+ describe(`${view}: Additional Settings: Grading view style with numeration`, () => {
256
+ abortEarlySetup();
257
+ before(() => {
258
+ switch (view) {
259
+ case 'Question preview':
260
+ fillInTheGapsOverImageTextPage.steps.navigateToCreateQuestion('fill in the gaps over image with text');
261
+ cy.barsPreLoaderWait();
262
+ fillInTheGapsOverImageTextPage.steps.uploadFile('highlightImage.jpg');
263
+ fillInTheGapsOverImageTextPage.steps.verifyImageIsUploaded();
264
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(2);
265
+ fillInTheGapsOverImageTextPage.steps.insertResponseArea(30);
266
+ fillInTheGapsOverImageTextPage.steps.allotPoints(20);
267
+ fillInTheGapsOverImageTextPage.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: 'Flower' }, { responseIndex: 1, responseText: 'Leaf' }]);
268
+ fillInTheGapsOverImageTextPage.steps.expandAdditionalSettings();
269
+ fillInTheGapsOverImageTextPage.steps.selectIdentifierToggleButton('Alphabet (uppercase)');
270
+ fillInTheGapsOverImageTextPage.steps.switchToPreviewTab();
271
+ fillInTheGapsOverImageTextPage.steps.switchToGradingView();
272
+ break;
273
+ case 'Item preview':
274
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
275
+ itemPreviewPage.steps.switchToPreviewTab();
276
+ fillInTheGapsOverImageTextPage.steps.switchToGradingView();
277
+ break;
278
+ case 'Grading view':
279
+ cy.visit(`/item-engine/demo/render-item/grading-view/${utilities.base64Encoding(itemReferenceID)}`);
280
+ break;
281
+ };
282
+ });
283
+
284
+ beforeEach(() => {
285
+ switch (view) {
286
+ case 'Question preview':
287
+ break;
288
+ case 'Item preview':
289
+ fillInTheGapsOverImageTextPage.steps.switchToGradingView();
290
+ break;
291
+ case 'Grading view':
292
+ cy.visit(`/item-engine/demo/render-item/grading-view/${utilities.base64Encoding(itemReferenceID)}`);
293
+ break;
294
+ }
295
+ });
296
+
297
+ if (view === 'Question preview') {
298
+ after(() => {
299
+ fillInTheGapsOverImageTextPage.steps.clickOnSaveQuestionButton();
300
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
301
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
302
+ });
303
+ };
304
+
305
+ if (view === 'Grading view') {
306
+ it(`When the user selected with numeration radio button, then the numeration should be displayed in the answer input fields in the ${view}`, () => {
307
+ fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldEnumeration(['A', 'B']);
308
+ });
309
+ }
310
+
311
+ if (view === 'Item preview' || view === 'Question preview') {
312
+ it(`When the user selected with numeration radio button, then the numeration should be displayed in the answer input fields as well as correct answer options in the correct answer section in the ${view}`, () => {
313
+ fillInTheGapsOverImageTextPage.steps.verifyAnswerInputFieldEnumeration(['A', 'B']);
314
+ fillInTheGapsOverImageTextPage.steps.verifyCorrectAnswerResponsesEnumeration(['A', 'B']);
315
+ });
316
+ }
317
+ });
318
+ });
251
319
  });