itemengine-cypress-automation 1.0.582-IEI-7178-6c816dc.0 → 1.0.583-IEI-7048-71a8251.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 (74) hide show
  1. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +77 -0
  2. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +78 -1
  3. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +78 -1
  4. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +104 -9
  5. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsBasic.js +4 -0
  6. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +95 -0
  7. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +95 -0
  8. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +84 -0
  9. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +4 -0
  10. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +73 -0
  11. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +84 -0
  12. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +187 -2
  13. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +79 -1
  14. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +79 -0
  15. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +79 -0
  16. package/cypress/e2e/ILC/ListOrderingNew/Scoring/manuallyAndNonScored.js +4 -0
  17. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +103 -0
  18. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsBasic.js +4 -0
  19. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +103 -0
  20. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +103 -0
  21. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +91 -0
  22. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsBasic.js +4 -0
  23. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +79 -0
  24. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +91 -0
  25. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +209 -5
  26. package/cypress/e2e/ILC/ListOrderingNew/horizontalOrientationAllOrNothingForAllViews.smoke.js +195 -1
  27. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/HorizontalOrientation/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +103 -0
  28. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +85 -0
  29. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +82 -0
  30. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +85 -0
  31. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +109 -6
  32. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsBasic.js +4 -0
  33. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +103 -0
  34. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +103 -0
  35. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +91 -0
  36. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsBasic.js +4 -0
  37. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +79 -0
  38. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +91 -0
  39. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +203 -3
  40. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingGroupedScoring.js +9 -1
  41. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +102 -2
  42. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +102 -2
  43. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +107 -2
  44. package/cypress/e2e/ILC/Matching/Scoring/blankResponseScoring.js +36 -2
  45. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +5 -0
  46. package/cypress/e2e/ILC/Matching/Scoring/manuallyAndNonScored.js +1 -0
  47. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsScoringBasic.js +10 -1
  48. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +128 -2
  49. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +115 -2
  50. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +128 -2
  51. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsBasic.js +9 -1
  52. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +115 -2
  53. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +102 -2
  54. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +115 -2
  55. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +226 -2
  56. package/cypress/e2e/ILC/Matching/maximumCapacityPerDropzoneSection.js +9 -1
  57. package/cypress/e2e/ILC/MatchingDropdown/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +102 -2
  58. package/cypress/e2e/ILC/MatchingDropdown/Scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +102 -2
  59. package/cypress/e2e/ILC/MatchingDropdown/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +102 -2
  60. package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +32 -5
  61. package/cypress/e2e/ILC/MatchingDropdown/Scoring/manuallyAndNonScored.js +3 -0
  62. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsScoringBasic.js +10 -1
  63. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +128 -2
  64. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternatePoints.js +115 -2
  65. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternatePoints.js +128 -2
  66. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsBasic.js +9 -1
  67. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +115 -2
  68. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +102 -2
  69. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +115 -2
  70. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +216 -2
  71. package/cypress/pages/components/correctIncorrectAnswerLabelComponent.js +18 -1
  72. package/cypress/pages/listOrderingPage.js +60 -1
  73. package/cypress/pages/matchingPage.js +23 -1
  74. package/package.json +1 -1
@@ -3,6 +3,7 @@ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
3
  import utilities from "../../../support/helpers/utilities";
4
4
  const css = Cypress.env('css');
5
5
  const grepTags = Cypress.env('grepTags');
6
+ const alternativeAnswerCheck = Cypress.env('ENABLE_ALTERNATIVE_ANSWER_ENHANCEMENT');
6
7
  let correctAnswerViews = ['Question preview', 'Item preview', 'Grading view'];
7
8
  const views = utilities.getViews(correctAnswerViews);
8
9
  var itemReferenceID = "";
@@ -106,7 +107,11 @@ describe('Create item page - List ordering: All or nothing ', () => {
106
107
  listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(2);
107
108
  listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(3);
108
109
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
109
- utilities.verifyInnerText(listOrderingPage.correctAnswersLabel(), 'Correct answers');
110
+ if (alternativeAnswerCheck === 'true') {
111
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
112
+ } else {
113
+ utilities.verifyInnerText(listOrderingPage.correctAnswersLabel(), 'Correct answers');
114
+ }
110
115
  listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['2', '3', '4', '1']);
111
116
  };
112
117
  });
@@ -176,10 +181,184 @@ describe('Create item page - List ordering: All or nothing ', () => {
176
181
  listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(3);
177
182
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
178
183
  listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
184
+ if (alternativeAnswerCheck === 'true') {
185
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
186
+ }
179
187
  });
180
188
  });
181
189
  });
182
190
 
191
+ // alternative answer
192
+ if (alternativeAnswerCheck === 'true') {
193
+ views.forEach((view) => {
194
+ describe(`${view}: Auto scored - All or nothing scoring with alternative answer`, { tags: 'smoke' }, () => {
195
+ abortEarlySetup();
196
+ before(() => {
197
+ switch (view) {
198
+ case 'Question preview':
199
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
200
+ cy.barsPreLoaderWait();
201
+ listOrderingPage.steps.selectOrderingLayoutOption('Dropdown menu');
202
+ listOrderingPage.steps.addInputToOptionsInputField(options);
203
+ listOrderingPage.steps.addTextInQuestionInstructionsInputField('Arrange options in correct order.');
204
+ listOrderingPage.steps.allotPoints(20);
205
+ listOrderingPage.steps.selectPositionForAllOptionsSpecifyCorrectAnswerSection([{ optionIndex: 0, position: '2' }, { optionIndex: 1, position: '3' }, { optionIndex: 2, position: '4' }, { optionIndex: 3, position: '1' }])
206
+ listOrderingPage.steps.addAlternativeAnswerAccordion(1);
207
+ listOrderingPage.steps.selectPositionForAllOptionsSpecifyCorrectAnswerSection([{ optionIndex: 0, position: '3' }, { optionIndex: 1, position: '4' }, { optionIndex: 2, position: '2' }, { optionIndex: 3, position: '1' }]);
208
+ listOrderingPage.steps.allotPoints(12);
209
+ listOrderingPage.steps.switchToPreviewTab();
210
+ break;
211
+ case 'Item preview':
212
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
213
+ itemPreviewPage.steps.switchToPreviewTab();
214
+ break;
215
+ case 'Grading view':
216
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
217
+ break;
218
+ };
219
+ });
220
+
221
+ beforeEach(() => {
222
+ switch (view) {
223
+ case 'Question preview':
224
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
225
+ listOrderingPage.steps.resetQuestionPreview();
226
+ break;
227
+ case 'Item preview':
228
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
229
+ itemPreviewPage.steps.resetQuestionPreview();
230
+ break;
231
+ case 'Grading view':
232
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
233
+ break;
234
+ }
235
+ });
236
+
237
+ if (view === 'Question preview') {
238
+ after(() => {
239
+ listOrderingPage.steps.clickOnSaveQuestionButton();
240
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
241
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
242
+ });
243
+ };
244
+
245
+ it('When the user selects \'Grading\' view without attempting the question, then correct/incorrect icons should not be displayed besides all incorrect responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers along with numeration should be displayed', () => {
246
+ if (view === 'Grading view') {
247
+ utilities.verifyElementDisabledClass(studentViewPage.submitButton());
248
+ };
249
+ if (view === 'Question preview' || view === 'Item preview') {
250
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
251
+ listOrderingPage.steps.switchToGradingView();
252
+ listOrderingPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
253
+ listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(0);
254
+ listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(1);
255
+ listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(2);
256
+ listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(3);
257
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
258
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
259
+ listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['2', '3', '4', '1']);
260
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
261
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
262
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
263
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
264
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
265
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
266
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(12 points)', 1);
267
+ listOrderingPage.steps.verifyOptionsPositionInAlternativeAnswerSection(1, options, ['3', '4', '2', '1']);
268
+ };
269
+ });
270
+
271
+ it('When the user attempts the question incorrectly, then the user should be awarded 0 points and on switching to \'Grading\' view, incorrect icons should be displayed besides all incorrect responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers along with numeration should be displayed', () => {
272
+ listOrderingPage.steps.selectPositionForAllOptionsPreviewTab([{ optionIndex: 0, position: '1' }, { optionIndex: 1, position: '2' }, { optionIndex: 2, position: '3' }, { optionIndex: 3, position: '4' }]);
273
+ if (view === 'Grading view') {
274
+ studentViewPage.steps.submitResponse();
275
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
276
+ studentViewPage.steps.clickOnGoToGradingViewButton();
277
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
278
+ };
279
+ if (view === 'Question preview' || view === 'Item preview') {
280
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
281
+ listOrderingPage.steps.switchToGradingView();
282
+ };
283
+ listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(0);
284
+ listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(1);
285
+ listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(2);
286
+ listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(3);
287
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
288
+ listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['2', '3', '4', '1']);
289
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
290
+ listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['2', '3', '4', '1']);
291
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
292
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
293
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
294
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
295
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
296
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
297
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(12 points)', 1);
298
+ listOrderingPage.steps.verifyOptionsPositionInAlternativeAnswerSection(1, options, ['3', '4', '2', '1']);
299
+ });
300
+
301
+ it('When the user attempts the question partially correct, then the user should be awarded 0 points and on switching to \'Grading\' view, correct icon should be displayed besides the correct answer responses, incorrect icon should be displayed besides incorrect answer response, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers along with numeration should be displayed', () => {
302
+ if (view === 'Grading view') {
303
+ studentViewPage.steps.clearResponses();
304
+ };
305
+ listOrderingPage.steps.selectPositionForAllOptionsPreviewTab([{ optionIndex: 0, position: '2' }, { optionIndex: 1, position: '1' }, { optionIndex: 2, position: '4' }, { optionIndex: 3, position: '3' }]);
306
+ if (view === 'Grading view') {
307
+ studentViewPage.steps.submitResponse();
308
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
309
+ studentViewPage.steps.clickOnGoToGradingViewButton();
310
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
311
+ };
312
+ if (view === 'Question preview' || view === 'Item preview') {
313
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
314
+ listOrderingPage.steps.switchToGradingView();
315
+ };
316
+ listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(0);
317
+ listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(1);
318
+ listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(2);
319
+ listOrderingPage.steps.verifyIncorrectOptionIconDropdownLayout(3);
320
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
321
+ listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['2', '3', '4', '1']);
322
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
323
+ listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(options, ['2', '3', '4', '1']);
324
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
325
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
326
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
327
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
328
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
329
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
330
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(12 points)', 1);
331
+ listOrderingPage.steps.verifyOptionsPositionInAlternativeAnswerSection(1, options, ['3', '4', '2', '1']);
332
+ });
333
+
334
+ it('When user attempts the question correctly, the user should be awarded full points and on switching to \'Grading\' view, then correct icons should be displayed beside all the correct responses, correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is correct\' and correct answer section should not be displayed', () => {
335
+ if (view === 'Grading view') {
336
+ studentViewPage.steps.clearResponses();
337
+ };
338
+ listOrderingPage.steps.selectPositionForAllOptionsPreviewTab([{ optionIndex: 0, position: '2' }, { optionIndex: 1, position: '3' }, { optionIndex: 2, position: '4' }, { optionIndex: 3, position: '1' }]);
339
+ if (view === 'Grading view') {
340
+ studentViewPage.steps.submitResponse();
341
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
342
+ studentViewPage.steps.clickOnGoToGradingViewButton();
343
+ gradingViewPage.steps.verifyGradingViewScore(20, 20);
344
+ };
345
+ if (view === 'Question preview' || view === 'Item preview') {
346
+ listOrderingPage.steps.verifyPreviewScore(20, 20);
347
+ listOrderingPage.steps.switchToGradingView();
348
+ listOrderingPage.steps.verifyPreviewTabPointsBackgroundForCorrectAnswer();
349
+ };
350
+ listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(0);
351
+ listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(1);
352
+ listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(2);
353
+ listOrderingPage.steps.verifyCorrectOptionIconDropdownLayout(3);
354
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
355
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
356
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
357
+ });
358
+ });
359
+ });
360
+ };
361
+
183
362
  views.forEach((view) => {
184
363
  describe(`${view}: List ordering (Dropdown) - Manually scored`, { tags: 'smoke' }, () => {
185
364
  abortEarlySetup();
@@ -253,6 +432,9 @@ describe('Create item page - List ordering: All or nothing ', () => {
253
432
  };
254
433
  listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(0);
255
434
  listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
435
+ if (alternativeAnswerCheck === 'true') {
436
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
437
+ }
256
438
  });
257
439
  });
258
440
  });
@@ -324,7 +506,7 @@ describe('Create item page - List ordering: All or nothing ', () => {
324
506
  listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(2);
325
507
  listOrderingPage.steps.verifyCorrectIncorrectOptionIconDropdownLayoutNotExists(3);
326
508
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
327
- utilities.verifyInnerText(listOrderingPage.correctAnswersLabel(), 'Correct answers');
509
+ utilities.verifyInnerText(listOrderingPage.correctAnswersLabel(), 'Correct answer');
328
510
  listOrderingPage.steps.verifyOptionsPositionInCorrectAnswerSection(['sprout', 'plant', 'flower', 'seed'], ['2', '3', '4', '1']);
329
511
  };
330
512
  });
@@ -411,6 +593,9 @@ describe('Create item page - List ordering: All or nothing ', () => {
411
593
  }
412
594
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
413
595
  listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
596
+ if (alternativeAnswerCheck === 'true') {
597
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
598
+ }
414
599
  });
415
600
  });
416
601
  });
@@ -1,6 +1,7 @@
1
1
  import { listOrderingPage } from "../../../../pages/listOrderingPage";
2
2
  import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
3
 
4
+ const alternativeAnswerCheck = Cypress.env('ENABLE_ALTERNATIVE_ANSWER_ENHANCEMENT');
4
5
  let options = ['sprout', 'plant', 'flower', 'seed'];
5
6
  let correctAnswerArray = ['seed', 'sprout', 'plant', 'flower'];
6
7
  let alternateCorrectAnswerArray = ['seed', 'flower', 'sprout', 'plant'];
@@ -40,6 +41,18 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
40
41
  listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
41
42
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
42
43
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
44
+ if (alternativeAnswerCheck === 'true') {
45
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(25 points)', 0);
46
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'flower', 'sprout', 'plant' ]);
47
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
48
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
49
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
50
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
51
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
52
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
53
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
54
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'sprout', 'plant', 'flower', ]);
55
+ }
43
56
  });
44
57
 
45
58
  it('When the user attempts the question with responses from the correct accordion, then the user should be awarded with points specified for correct accordion (less than full points) and on switching to \'Grading\' view, correct icons should be displayed beside all the correct responses, a status message with text \'Your answer is correct\' and correct answer section should not be displayed', () => {
@@ -55,6 +68,9 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
55
68
  listOrderingPage.steps.verifyCorrectOptionIcon('flower');
56
69
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
57
70
  listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
71
+ if (alternativeAnswerCheck === 'true') {
72
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
73
+ }
58
74
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
59
75
  /*cy.log('When the user has attempted the question with responses from the correct accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is correct\' and correct answer section should not be displayed')
60
76
  listOrderingPage.steps.checkAnswer()
@@ -80,6 +96,9 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
80
96
  listOrderingPage.steps.verifyCorrectOptionIcon('flower');
81
97
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
82
98
  listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
99
+ if (alternativeAnswerCheck === 'true') {
100
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
101
+ }
83
102
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
84
103
  /*cy.log('When the user has attempted the question with responses from the alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is correct\' and correct answer section should not be displayed')
85
104
  listOrderingPage.steps.checkAnswer()
@@ -104,6 +123,18 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
104
123
  listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
105
124
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
106
125
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
126
+ if (alternativeAnswerCheck === 'true') {
127
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(25 points)', 0);
128
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'flower', 'sprout', 'plant' ]);
129
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
130
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
131
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
132
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
133
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
134
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
135
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
136
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'sprout', 'plant', 'flower', ]);
137
+ }
107
138
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
108
139
  /*cy.log('When the user has attempted the question with partially correct options exclusively from the correct accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
109
140
  listOrderingPage.steps.checkAnswer()
@@ -128,6 +159,18 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
128
159
  listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
129
160
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
130
161
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
162
+ if (alternativeAnswerCheck === 'true') {
163
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(25 points)', 0);
164
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'flower', 'sprout', 'plant' ]);
165
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
166
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
167
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
168
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
169
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
170
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
171
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
172
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'sprout', 'plant', 'flower', ]);
173
+ }
131
174
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
132
175
  /*cy.log('When the user has attempted the question with partially correct options exclusively from the alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
133
176
  listOrderingPage.steps.checkAnswer();
@@ -153,6 +196,18 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
153
196
  listOrderingPage.steps.verifyCorrectOptionIcon('plant');
154
197
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
155
198
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
199
+ if (alternativeAnswerCheck === 'true') {
200
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(25 points)', 0);
201
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'flower', 'sprout', 'plant' ]);
202
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
203
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
204
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
205
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
206
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
207
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
208
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
209
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'sprout', 'plant', 'flower', ]);
210
+ }
156
211
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
157
212
  /*cy.log('When the user has attempted the question with equal number of correct responses from correct and alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, incorrect icon should be displayed beside empty responses a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
158
213
  listOrderingPage.steps.checkAnswer()
@@ -177,6 +232,18 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
177
232
  listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
178
233
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
179
234
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
235
+ if (alternativeAnswerCheck === 'true') {
236
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(25 points)', 0);
237
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'flower', 'sprout', 'plant' ]);
238
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
239
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
240
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
241
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
242
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
243
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
244
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
245
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'sprout', 'plant', 'flower', ]);
246
+ }
180
247
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
181
248
  /*cy.log('When the user has attempted the question with the common response between correct and alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
182
249
  listOrderingPage.steps.checkAnswer();
@@ -200,7 +267,18 @@ describe('Create item page - List ordering: All or nothing scoring with alternat
200
267
  listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
201
268
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
202
269
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
203
-
270
+ if (alternativeAnswerCheck === 'true') {
271
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(25 points)', 0);
272
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'flower', 'sprout', 'plant' ]);
273
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
274
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
275
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
276
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
277
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
278
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
279
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
280
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'sprout', 'plant', 'flower', ]);
281
+ }
204
282
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
205
283
 
206
284
  /*cy.log('When the user has attempted the question incorrectly and clicks on \'Check answer\' button, then incorrect icons should be displayed besides all incorrect responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
@@ -4,6 +4,7 @@ import abortEarlySetup from "../../../../support/helpers/abortEarly";
4
4
  let options = ['sprout', 'plant', 'flower', 'seed'];
5
5
  let correctAnswerArray = ['seed', 'sprout', 'plant', 'flower'];
6
6
  let alternateCorrectAnswerArray = ['seed', 'flower', 'sprout', 'plant'];
7
+ const alternativeAnswerCheck = Cypress.env('ENABLE_ALTERNATIVE_ANSWER_ENHANCEMENT');
7
8
 
8
9
  describe('Create Item page - List ordering: All or nothing scoring with alternative answer - When Correct answer points are equal to the alternative answer points', () => {
9
10
  before(() => {
@@ -39,6 +40,18 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
39
40
  listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
40
41
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
41
42
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
43
+ if (alternativeAnswerCheck === 'true') {
44
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
45
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'sprout', 'plant', 'flower', ]);
46
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
47
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
48
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
49
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
50
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
51
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
52
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
53
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'flower', 'sprout', 'plant' ]);
54
+ }
42
55
  });
43
56
 
44
57
  it('When the user attempts the question with responses from the correct accordion, then the user should be awarded full points and on switching to \'Grading\' view, correct icons should be displayed beside all the correct responses, a status message with text \'Your answer is correct\' and correct answer section should not be displayed', () => {
@@ -54,6 +67,9 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
54
67
  listOrderingPage.steps.verifyCorrectOptionIcon('flower');
55
68
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
56
69
  listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
70
+ if (alternativeAnswerCheck === 'true') {
71
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
72
+ }
57
73
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
58
74
  /*cy.log('When the user has attempted the question with responses from the correct accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is correct\' and correct answer section should not be displayed')
59
75
  listOrderingPage.steps.checkAnswer()
@@ -79,6 +95,9 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
79
95
  listOrderingPage.steps.verifyCorrectOptionIcon('flower');
80
96
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
81
97
  listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
98
+ if (alternativeAnswerCheck === 'true') {
99
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleNotExists();
100
+ }
82
101
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
83
102
  /*cy.log('When the user has attempted the question with responses from the alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is correct\' and correct answer section should not be displayed')
84
103
  listOrderingPage.steps.checkAnswer()
@@ -103,6 +122,18 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
103
122
  listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
104
123
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
105
124
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
125
+ if (alternativeAnswerCheck === 'true') {
126
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
127
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'sprout', 'plant', 'flower', ]);
128
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
129
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
130
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
131
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
132
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
133
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
134
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
135
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'flower', 'sprout', 'plant' ]);
136
+ }
106
137
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
107
138
  /*cy.log('When the user has attempted the question with partially correct options exclusively from the correct accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
108
139
  listOrderingPage.steps.checkAnswer()
@@ -127,6 +158,18 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
127
158
  listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
128
159
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
129
160
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
161
+ if (alternativeAnswerCheck === 'true') {
162
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
163
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'sprout', 'plant', 'flower', ]);
164
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
165
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
166
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
167
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
168
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
169
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
170
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
171
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'flower', 'sprout', 'plant' ]);
172
+ }
130
173
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
131
174
  /*cy.log('When the user has attempted the question with partially correct options exclusively from the alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
132
175
  listOrderingPage.steps.checkAnswer();
@@ -152,6 +195,18 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
152
195
  listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
153
196
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
154
197
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
198
+ if (alternativeAnswerCheck === 'true') {
199
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
200
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'sprout', 'plant', 'flower', ]);
201
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
202
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
203
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
204
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
205
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
206
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
207
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
208
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'flower', 'sprout', 'plant' ]);
209
+ }
155
210
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
156
211
  /*cy.log('When the user has attempted the question with equal number of correct responses from correct and alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, incorrect icon should be displayed beside empty responses a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
157
212
  listOrderingPage.steps.checkAnswer();
@@ -176,6 +231,18 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
176
231
  listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
177
232
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
178
233
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
234
+ if (alternativeAnswerCheck === 'true') {
235
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
236
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'sprout', 'plant', 'flower', ]);
237
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
238
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
239
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
240
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
241
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
242
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
243
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
244
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'flower', 'sprout', 'plant' ]);
245
+ }
179
246
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
180
247
  /*cy.log('When the user has attempted the question with the common response between correct and alternative accordion and clicks on \'Check answer\' button, then correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
181
248
  listOrderingPage.steps.checkAnswer()
@@ -200,6 +267,18 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
200
267
  listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
201
268
  listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
202
269
  listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
270
+ if (alternativeAnswerCheck === 'true') {
271
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Correct answer', '(20 points)', 0);
272
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(0, ['seed', 'sprout', 'plant', 'flower', ]);
273
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleExists();
274
+ listOrderingPage.steps.disableShowAlternativeAnswersToggle();
275
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleUnchecked();
276
+ listOrderingPage.steps.verifyAlternativeAnswersSectionNotExist();
277
+ listOrderingPage.steps.clickShowAlternativeAnswersToggle();
278
+ listOrderingPage.steps.verifyShowAlternativeAnswersToggleChecked();
279
+ listOrderingPage.steps.verifyAnswerLabelAndPoints('Alternative answer', '(20 points)', 1);
280
+ listOrderingPage.steps.verifyOptionsInCorrectAndAlternativeAnswerSection(1, ['seed', 'flower', 'sprout', 'plant' ]);
281
+ }
203
282
  listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
204
283
  /*cy.log('When the user has attempted the question incorrectly and clicks on \'Check answer\' button, then incorrect icons should be displayed besides all incorrect responses, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
205
284
  listOrderingPage.steps.checkAnswer();