itemengine-cypress-automation 1.0.181-figDropdown-5a8309d.0 → 1.0.181

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. package/cypress/e2e/ILC/AudioPlayerNew/previewContents.smoke.js +162 -0
  2. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +1 -1
  3. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +4 -5
  4. package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +64 -3
  5. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +1 -1
  6. package/cypress/e2e/ILC/FeedbackScaleNew/headerSection.js +29 -1
  7. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +2 -2
  8. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettings.js +1 -1
  9. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/studentViewSettings.js +1 -1
  10. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +1 -0
  11. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +2 -2
  12. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -1
  13. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/studentViewSettings.js +1 -1
  14. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +4 -4
  15. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  16. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +1 -1
  17. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +5 -5
  18. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +3 -4
  19. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  20. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +1 -0
  21. package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +1 -1
  22. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
  23. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +2 -2
  24. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +2 -2
  25. package/cypress/e2e/ILC/Graphing/addBackgroundShapesSection.js +2 -2
  26. package/cypress/e2e/ILC/Graphing/studentViewSettings.js +1 -1
  27. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +3 -3
  28. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +1 -1
  29. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +216 -0
  30. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +214 -0
  31. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +251 -0
  32. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingPenaltyScoring.js +52 -0
  33. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +243 -0
  34. package/cypress/e2e/ILC/ListOrderingNew/checkAnswerFunctionalityForAllViews.smoke.js +128 -0
  35. package/cypress/e2e/ILC/ListOrderingNew/previewContentsForAllViews.smoke.js +176 -0
  36. package/cypress/e2e/ILC/Matching/studentViewSettings.js +1 -1
  37. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +1 -0
  38. package/cypress/e2e/ILC/MultipleSelectionGridNew/studentViewSettings.js +1 -1
  39. package/cypress/e2e/ILC/NumberLine/LayoutSection.js +530 -0
  40. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +3 -3
  41. package/cypress/e2e/ILC/NumberLine/lineSettingsSection.js +119 -0
  42. package/cypress/e2e/ILC/NumberLine/numberLineSection.js +263 -0
  43. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +1 -1
  44. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +1 -1
  45. package/cypress/e2e/ILC/NumberLine/toolSettings.js +2 -1
  46. package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
  47. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +49 -1
  48. package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +1 -1
  49. package/cypress/e2e/ILC/SingleSelectionGridNew/studentViewSettings.js +1 -1
  50. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +2 -2
  51. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -1
  52. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -1
  53. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -1
  54. package/cypress/e2e/ILC/TextSelection/Scoring/basicScoringForAllTextSelectionTypes.smoke.js +0 -1
  55. package/cypress/e2e/ILC/TextSelection/additionalSettings.js +125 -0
  56. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +0 -1
  57. package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +0 -1
  58. package/cypress/e2e/ILC/TextSelection/editTabScoringSection.js +5 -4
  59. package/cypress/e2e/ILC/TextSelection/headerSection.js +73 -0
  60. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +2 -2
  61. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.smoke.js +179 -0
  62. package/cypress/e2e/ILC/TextSelection/specifyCorrectAnswerSection.js +89 -0
  63. package/cypress/e2e/ILC/TextSelection/studentViewSettings.js +436 -0
  64. package/cypress/e2e/ILC/TextSelection/styleAndLayoutCustomizationAccordion.js +277 -0
  65. package/cypress/e2e/ILC/TextSelection/textSelectionModesInPreviewTab.js +222 -0
  66. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyCorrectAnswerSection.js +260 -0
  67. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +380 -0
  68. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +5 -5
  69. package/cypress/fixtures/constants.js +1 -1
  70. package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +20 -20
  71. package/cypress/fixtures/theme/ilc.json +16 -16
  72. package/cypress/pages/audioPlayerPage.js +55 -543
  73. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  74. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -3
  75. package/cypress/pages/components/autoScoredStudentViewSettings.js +4 -4
  76. package/cypress/pages/components/commonComponents.js +1 -0
  77. package/cypress/pages/components/draggableOptionContainer.js +1 -0
  78. package/cypress/pages/components/equationEditorFlyout.js +3 -2
  79. package/cypress/pages/components/essayResponseCommonComponents.js +8 -2
  80. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +1 -0
  81. package/cypress/pages/components/imageCanvasComponent.js +2 -1
  82. package/cypress/pages/components/index.js +1 -0
  83. package/cypress/pages/components/optionsWrapperComponent.js +11 -0
  84. package/cypress/pages/components/styleAndLayoutCustomizationAccordionComponent.js +46 -0
  85. package/cypress/pages/components/toolSettingsComponent.js +6 -0
  86. package/cypress/pages/contentBlocksPage.js +2 -2
  87. package/cypress/pages/createItemPage.js +29 -0
  88. package/cypress/pages/dialogBoxBase.js +2 -2
  89. package/cypress/pages/drawingResponsePage.js +23 -4
  90. package/cypress/pages/feedbackScalePage.js +3 -0
  91. package/cypress/pages/graphingPage.js +18 -0
  92. package/cypress/pages/gridFillPage.js +18 -2
  93. package/cypress/pages/index.js +1 -1
  94. package/cypress/pages/itemPreviewSettingsPage.js +4 -0
  95. package/cypress/pages/listOrderingPage.js +122 -647
  96. package/cypress/pages/matchingPage.js +1 -1
  97. package/cypress/pages/multipleSelectionPage.js +23 -1
  98. package/cypress/pages/numberLinePage.js +1196 -59
  99. package/cypress/pages/rulerPage.js +6 -2
  100. package/cypress/pages/textSelectionPage.js +460 -22
  101. package/cypress/support/migrationHelpers/extractLrnQuestionData.js +3 -107
  102. package/cypress/support/migrationHelpers/lrnQestionTypesENUM.js +1 -2
  103. package/cypress/support/migrationHelpers/migrationScript.js +0 -13
  104. package/cypress/support/migrationHelpers/verifyIeQuestionData.js +6 -106
  105. package/package.json +2 -2
  106. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +0 -432
  107. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +0 -134
@@ -229,7 +229,7 @@ describe('Create Item page - Graphing: All or nothing with alternative answer',
229
229
  utilities.verifyElementCount(graphingPage.graphLinePreviewTab(), 1);
230
230
  graphingPage.steps.verifyPointsPlottedOnPreviewTab([{ x: 2, xRange: 20, y: 1, yRange: 20 }, { x: 2, xRange: 20, y: -5, yRange: 20 }]);
231
231
  utilities.verifyElementCount(graphingPage.graphLineSegmentsPreviewTab(), 1);
232
- graphingPage.steps.verifyIncorrectPointsPlottedOnGraphPreviewTab([{ x: 6, xRange: 20, y: 0, yRange: 20 }, { x: 6, xRange: 20, y: 5, yRange: 20 }]);
232
+ graphingPage.steps.verifyCorrectPointsPlottedOnGraphPreviewTab([{ x: 6, xRange: 20, y: 0, yRange: 20 }, { x: 6, xRange: 20, y: 5, yRange: 20 }]);
233
233
 
234
234
  //Correct answer section
235
235
  utilities.verifyElementCount(graphingPage.graphCircleCorrectAnswerSection(), 2);
@@ -252,7 +252,7 @@ describe('Create Item page - Graphing: All or nothing with alternative answer',
252
252
  utilities.verifyElementCount(graphingPage.graphLinePreviewTab(), 1);
253
253
  graphingPage.steps.verifyPointsPlottedOnPreviewTab([{ x: 2, xRange: 20, y: 1, yRange: 20 }, { x: 2, xRange: 20, y: -5, yRange: 20 }]);
254
254
  utilities.verifyElementCount(graphingPage.graphLineSegmentsPreviewTab(), 1);
255
- graphingPage.steps.verifyIncorrectPointsPlottedOnGraphPreviewTab([{ x: 6, xRange: 20, y: 0, yRange: 20 }, { x: 6, xRange: 20, y: 5, yRange: 20 }]);
255
+ graphingPage.steps.verifyCorrectPointsPlottedOnGraphPreviewTab([{ x: 6, xRange: 20, y: 0, yRange: 20 }, { x: 6, xRange: 20, y: 5, yRange: 20 }]);
256
256
  graphingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
257
257
  graphingPage.steps.verifyCorrectAnswerSectionNotExist();
258
258
  });
@@ -227,9 +227,9 @@ describe('Graphing: Add background shapes section', () => {
227
227
  graphingPage.steps.switchToEditTab();
228
228
  graphingPage.steps.clickOnGraphTitle();
229
229
  graphingPage.steps.enterTextInTitlePopupAddLabelInputField('Edit graph title');
230
- graphingPage.steps.clickOnTitlePopupCancelButton();
230
+ graphingPage.steps.clickOnTitlePopupSaveButton();
231
231
  graphingPage.steps.switchToPreviewTab();
232
- utilities.verifyInnerText(graphingPage.graphTitlePreviewTab(), 'Graph title');
232
+ utilities.verifyInnerText(graphingPage.graphTitlePreviewTab(), 'Edit graph title');
233
233
  });
234
234
 
235
235
  //X axis
@@ -103,7 +103,7 @@ describe('Create Item page - Graphing: Student view settings', () => {
103
103
  it('When the user selects \'No limit\' option from the dropdown then user should be able to check answer multiple times', () => {
104
104
  graphingPage.steps.switchToEditTab();
105
105
  graphingPage.steps.expandMaxCheckAnswerAttemptsDropdown();
106
- graphingPage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('no limit');
106
+ graphingPage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('0');
107
107
  graphingPage.steps.switchToPreviewTab();
108
108
  graphingPage.steps.verifyCheckAnswerButtonEnabled();
109
109
  graphingPage.steps.selectGraphToolOptionPreviewTab('Vector');
@@ -60,7 +60,7 @@ describe('Create item page - Grid fill : Preview contents', () => {
60
60
  }
61
61
  if (view === 'Student view') {
62
62
  studentViewPage.steps.submitResponse();
63
- utilities.verifyElementVisibilityState(studentViewPage.buttonGoToGradingView(), 'visible');
63
+ utilities.verifyElementVisibilityState(studentViewPage.buttonGoToGradingView(), 'exist');
64
64
  }
65
65
  });
66
66
 
@@ -73,7 +73,7 @@ describe('Create item page - Grid fill : Preview contents', () => {
73
73
  utilities.verifyElementVisibilityState(gridFillPage.gridWrapperPreviewTab(), 'visible');
74
74
  gridFillPage.steps.verifyRowsCountPreviewTab(4);
75
75
  gridFillPage.steps.verifyColumnsCountPreviewTab(6);
76
- utilities.verifyElementCount(gridFillPage.cellInPreviewTab(), 24);
76
+ gridFillPage.steps.getCellCountInGridPreviewTab(24);
77
77
  });
78
78
 
79
79
  it('Cell with \'Hide\' customization should be displayed', () => {
@@ -163,7 +163,7 @@ describe('Create item page - Grid fill : Preview contents', () => {
163
163
  utilities.verifyCSS(utilities.getNthElement(gridFillPage.cellInPreviewTab(), 7), {
164
164
  'border-color': css.color.figDefaultComponentBorder
165
165
  });
166
- gridFillPage.steps.verifyDefaultResponseBackgroundColorPreviewTab(1,2);
166
+ gridFillPage.steps.verifyDefaultResponseBackgroundColorPreviewTab(1, 2);
167
167
  break;
168
168
  case 'Grading view':
169
169
  case 'Correct answer view':
@@ -192,7 +192,7 @@ describe('Create item page - Grid fill: Student view settings', () => {
192
192
  it('When the user selects \'No limit\' option from the dropdown then user should be able to check answer multiple times', () => {
193
193
  gridFillPage.steps.switchToEditTab();
194
194
  gridFillPage.steps.expandMaxCheckAnswerAttemptsDropdown();
195
- gridFillPage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('no limit');
195
+ gridFillPage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('0');
196
196
  gridFillPage.steps.switchToPreviewTab();
197
197
  gridFillPage.steps.verifyCheckAnswerButtonEnabled();
198
198
  gridFillPage.steps.selectCellPreviewTab(0, 0);
@@ -0,0 +1,216 @@
1
+ import { listOrderingPage } from "../../../../pages/listOrderingPage";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+
4
+ let options = ['sprout', 'plant', 'flower', 'seed'];
5
+ let correctAnswerArray = ['seed', 'sprout', 'plant', 'flower'];
6
+ let alternateCorrectAnswerArray = ['seed', 'flower', 'sprout', 'plant'];
7
+
8
+ describe('Create item page - List ordering: All or nothing scoring with alternative answer - When alternative answer points are more than correct answer points', () => {
9
+ before(() => {
10
+ cy.loginAs('admin');
11
+ });
12
+
13
+ describe('Question preview: AutoScored - All or nothing with alternative answer: When alternative answer points are more than correct answer points', () => {
14
+ abortEarlySetup();
15
+ before(() => {
16
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
17
+ cy.barsPreLoaderWait();
18
+ listOrderingPage.steps.addTextInQuestionInstructionsInputField('Arrange options in correct order.');
19
+ listOrderingPage.steps.addInputToOptionsInputField(options);
20
+ listOrderingPage.steps.clickAndReorderOptionInSpecifyCorrectAnswerSection('seed', 0);
21
+ listOrderingPage.steps.clickAndReorderOptionInSpecifyCorrectAnswerSection('sprout', 1);
22
+ listOrderingPage.steps.allotPoints(20);
23
+ listOrderingPage.steps.verifyOptionsOrderInSpecifyCorrectAnswerSection(correctAnswerArray);
24
+ listOrderingPage.steps.addAlternativeAnswerAccordion(1);
25
+ listOrderingPage.steps.clickAndReorderOptionInSpecifyCorrectAnswerSection('seed', 0);
26
+ listOrderingPage.steps.clickAndReorderOptionInSpecifyCorrectAnswerSection('plant', 3);
27
+ listOrderingPage.steps.clickAndReorderOptionInSpecifyCorrectAnswerSection('flower', 1);
28
+ listOrderingPage.steps.verifyOptionsOrderInSpecifyCorrectAnswerSection(alternateCorrectAnswerArray);
29
+ listOrderingPage.steps.allotPoints(25);
30
+ listOrderingPage.steps.checkAllowStudentsToCheckAnswerCheckbox();
31
+ listOrderingPage.steps.switchToPreviewTab();
32
+ });
33
+
34
+ it('When the user switches to the \'Grading view\' without attempting the question, then correct/incorrect icons should be displayed for the default list order, "Your answer is incorrect" label and correct answers section with a label \'Correct answers\' should be displayed with correct answers from the alternative accordion', () => {
35
+ listOrderingPage.steps.verifyPreviewScore(0, 25);
36
+ listOrderingPage.steps.switchToGradingView();
37
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
38
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
39
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
40
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
41
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
42
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
43
+ });
44
+
45
+ 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', () => {
46
+ listOrderingPage.steps.resetQuestionPreview();
47
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
48
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 1);
49
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(correctAnswerArray);
50
+ listOrderingPage.steps.verifyPreviewScore(20, 25);
51
+ listOrderingPage.steps.switchToGradingView();
52
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
53
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
54
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
55
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
56
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
57
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
58
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
59
+ 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
+ listOrderingPage.steps.checkAnswer()
61
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
62
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
63
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
64
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
65
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
66
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
67
+ });
68
+
69
+ it('When the user attempts the question with responses from the alternative accordion, then the user should be awarded with 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', () => {
70
+ listOrderingPage.steps.resetQuestionPreview();
71
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
72
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('plant', 3);
73
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 1);
74
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(alternateCorrectAnswerArray);
75
+ listOrderingPage.steps.verifyPreviewScore(25, 25);
76
+ listOrderingPage.steps.switchToGradingView();
77
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
78
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
79
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
80
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
81
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
82
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
83
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
84
+ 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
+ listOrderingPage.steps.checkAnswer()
86
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
87
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
88
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
89
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
90
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
91
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
92
+ });
93
+
94
+ it('When the user attempts the question with partially correct options exclusively from the correct accordion, then the user should be awarded 0 points and on switching to \'Grading\' view, correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion along with dropzone numeration should be displayed', () => {
95
+ listOrderingPage.steps.resetQuestionPreview();
96
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 0);
97
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 1);
98
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['flower', 'sprout', 'plant', 'seed']);
99
+ listOrderingPage.steps.verifyPreviewScore(0, 25);
100
+ listOrderingPage.steps.switchToGradingView();
101
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
102
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
103
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
104
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
105
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
106
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
107
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
108
+ 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
+ listOrderingPage.steps.checkAnswer()
110
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
111
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
112
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
113
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
114
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
115
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
116
+ });
117
+
118
+ it('When the user attempts the question with partially correct options exclusively from the alternative accordion, then the user should be awarded 0 points and on switching to \'Grading\' view, correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion along with dropzone cell numeration should be displayed', () => {
119
+ listOrderingPage.steps.resetQuestionPreview();
120
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('plant', 0);
121
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 1);
122
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['plant', 'flower', 'sprout', 'seed']);
123
+ listOrderingPage.steps.verifyPreviewScore(0, 25);
124
+ listOrderingPage.steps.switchToGradingView();
125
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
126
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
127
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
128
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
129
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
130
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
131
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
132
+ 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
+ listOrderingPage.steps.checkAnswer();
134
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
135
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
136
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
137
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
138
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
139
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
140
+ });
141
+
142
+ it('When the user has attempted the question with equal number of correct responses from correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, correct icon should be displayed besides response field with alternative answer responses, red cross-mark icon should be displayed beside responses from the correct accordion, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion along with dropzone cell numeration should be displayed', () => {
143
+ listOrderingPage.steps.resetQuestionPreview();
144
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
145
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 1);
146
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('plant', 3);
147
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['seed', 'sprout', 'flower', 'plant']);
148
+ listOrderingPage.steps.verifyPreviewScore(0, 25);
149
+ listOrderingPage.steps.switchToGradingView();
150
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
151
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
152
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
153
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
154
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
155
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
156
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
157
+ 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
+ listOrderingPage.steps.checkAnswer()
159
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
160
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
161
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
162
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
163
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
164
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
165
+ });
166
+
167
+ it('Race condition : When the user attempts the question with the common response between correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, correct icon should be besides the common response, , \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion along with dropzone cell numeration should be displayed', () => {
168
+ listOrderingPage.steps.resetQuestionPreview();
169
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
170
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 3);
171
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['seed', 'plant', 'flower', 'sprout']);
172
+ listOrderingPage.steps.verifyPreviewScore(0, 25);
173
+ listOrderingPage.steps.switchToGradingView();
174
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
175
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
176
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
177
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
178
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
179
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
180
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
181
+ 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
+ listOrderingPage.steps.checkAnswer();
183
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
184
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
185
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
186
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
187
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
188
+ });
189
+
190
+ 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 dropzone cell numeration should be displayed', () => {
191
+ listOrderingPage.steps.resetQuestionPreview();
192
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 3);
193
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 0);
194
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['flower', 'plant', 'seed', 'sprout']);
195
+ listOrderingPage.steps.verifyPreviewScore(0, 25);
196
+ listOrderingPage.steps.switchToGradingView();
197
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
198
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
199
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
200
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
201
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(alternateCorrectAnswerArray);
202
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
203
+
204
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
205
+
206
+ 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')
207
+ listOrderingPage.steps.checkAnswer();
208
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
209
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
210
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
211
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
212
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
213
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
214
+ });
215
+ });
216
+ });
@@ -0,0 +1,214 @@
1
+ import { listOrderingPage } from "../../../../pages/listOrderingPage";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+
4
+ let options = ['sprout', 'plant', 'flower', 'seed'];
5
+ let correctAnswerArray = ['seed', 'sprout', 'plant', 'flower'];
6
+ let alternateCorrectAnswerArray = ['seed', 'flower', 'sprout', 'plant'];
7
+
8
+ 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
+ before(() => {
10
+ cy.loginAs('admin');
11
+ });
12
+
13
+ describe('Question Preview: AutoScored - All or nothing with alternative answer: Alternate answer case: When Correct answer points are equal to the alternative answer points', () => {
14
+ abortEarlySetup();
15
+ before(() => {
16
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
17
+ cy.barsPreLoaderWait();
18
+ listOrderingPage.steps.addTextInQuestionInstructionsInputField('Arrange options in correct order.');
19
+ listOrderingPage.steps.addInputToOptionsInputField(options);
20
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
21
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 1);
22
+ listOrderingPage.steps.allotPoints(20);
23
+ listOrderingPage.steps.verifyOptionsOrderInSpecifyCorrectAnswerSection(correctAnswerArray);
24
+ listOrderingPage.steps.clickOnAddAlternateAnswerButton();
25
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
26
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('plant', 3);
27
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 1);
28
+ listOrderingPage.steps.verifyOptionsOrderInSpecifyCorrectAnswerSection(alternateCorrectAnswerArray);
29
+ listOrderingPage.steps.allotPoints(20);
30
+ listOrderingPage.steps.checkAllowStudentsToCheckAnswerCheckbox();
31
+ listOrderingPage.steps.switchToPreviewTab();
32
+ });
33
+
34
+ it('When the user switches to the \'Grading view\' without attempting the question, then correct/incorrect icons should be displayed for the default list order, "Your answer is incorrect" label and correct answers section with a label \'Correct answers\' should be displayed with correct answers from the correct accordion', () => {
35
+ listOrderingPage.steps.switchToGradingView();
36
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
37
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
38
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
39
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
40
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
41
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
42
+ });
43
+
44
+ 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', () => {
45
+ listOrderingPage.steps.resetQuestionPreview();
46
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
47
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 1);
48
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(correctAnswerArray);
49
+ listOrderingPage.steps.verifyPreviewScore(20, 20);
50
+ listOrderingPage.steps.switchToGradingView();
51
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
52
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
53
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
54
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
55
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
56
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
57
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
58
+ 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
+ listOrderingPage.steps.checkAnswer()
60
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
61
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
62
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
63
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
64
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
65
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
66
+ });
67
+
68
+ it('When the user attempts the question with responses from the alternative accordion, then the user should be awarded with 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', () => {
69
+ listOrderingPage.steps.resetQuestionPreview();
70
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
71
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('plant', 3);
72
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 1);
73
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(alternateCorrectAnswerArray);
74
+ listOrderingPage.steps.verifyPreviewScore(20, 20);
75
+ listOrderingPage.steps.switchToGradingView();
76
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
77
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
78
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
79
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
80
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
81
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
82
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
83
+ 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
+ listOrderingPage.steps.checkAnswer()
85
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
86
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
87
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
88
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
89
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
90
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
91
+ });
92
+
93
+ it('When the user attempts the question with partially correct options exclusively from the correct accordion, then the user should be awarded 0 points and on switching to \'Grading\' view, correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion along with dropzone numeration should be displayed', () => {
94
+ listOrderingPage.steps.resetQuestionPreview();
95
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 0);
96
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 1);
97
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['flower', 'sprout', 'plant', 'seed']);
98
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
99
+ listOrderingPage.steps.switchToGradingView();
100
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
101
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
102
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
103
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
104
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
105
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
106
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
107
+ 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
+ listOrderingPage.steps.checkAnswer()
109
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
110
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
111
+ listOrderingPage.steps.verifyCorrectOptionIcon('plant');
112
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
113
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
114
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
115
+ });
116
+
117
+ it('When the user attempts the question with partially correct options exclusively from the alternative accordion, then the user should be awarded 0 points and on switching to \'Grading\' view, correct icon should be displayed besides the correct answer responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion along with dropzone cell numeration should be displayed', () => {
118
+ listOrderingPage.steps.resetQuestionPreview();
119
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('plant', 0);
120
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 1);
121
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['plant', 'flower', 'sprout', 'seed']);
122
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
123
+ listOrderingPage.steps.switchToGradingView();
124
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
125
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
126
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
127
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
128
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
129
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
130
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
131
+ 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
+ listOrderingPage.steps.checkAnswer();
133
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
134
+ listOrderingPage.steps.verifyCorrectOptionIcon('flower');
135
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
136
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
137
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
138
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
139
+ });
140
+
141
+ it('When the user has attempted the question with equal number of correct responses from correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, correct icon should be displayed besides response field with correct answer responses, red cross-mark icon should be displayed beside responses from the alternative tab, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion along with dropzone cell numeration should be displayed', () => {
142
+ listOrderingPage.steps.resetQuestionPreview();
143
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
144
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 1);
145
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('plant', 3);
146
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['seed', 'sprout', 'flower', 'plant']);
147
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
148
+ listOrderingPage.steps.switchToGradingView();
149
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
150
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
151
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
152
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
153
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
154
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
155
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
156
+ 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
+ listOrderingPage.steps.checkAnswer();
158
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
159
+ listOrderingPage.steps.verifyCorrectOptionIcon('sprout');
160
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
161
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
162
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
163
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
164
+ });
165
+
166
+ it('Race condition : When the user attempts the question with the common response between correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, correct icon should be besides the common response, \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
167
+ listOrderingPage.steps.resetQuestionPreview();
168
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('seed', 0);
169
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 3);
170
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['seed', 'plant', 'flower', 'sprout']);
171
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
172
+ listOrderingPage.steps.switchToGradingView();
173
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
174
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
175
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
176
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
177
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
178
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
179
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
180
+ 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
+ listOrderingPage.steps.checkAnswer()
182
+ listOrderingPage.steps.verifyCorrectOptionIcon('seed');
183
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
184
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
185
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
186
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
187
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
188
+ });
189
+
190
+ 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 dropzone cell numeration should be displayed', () => {
191
+ listOrderingPage.steps.resetQuestionPreview();
192
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('sprout', 3);
193
+ listOrderingPage.steps.clickAndReorderOptionInPreviewTab('flower', 0);
194
+ listOrderingPage.steps.verifyOptionsOrderInPreviewTab(['flower', 'plant', 'seed', 'sprout']);
195
+ listOrderingPage.steps.verifyPreviewScore(0, 20);
196
+ listOrderingPage.steps.switchToGradingView();
197
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
198
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
199
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
200
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
201
+ listOrderingPage.steps.verifyOptionsInCorrectAnswerSection(correctAnswerArray);
202
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
203
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
204
+ 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
+ listOrderingPage.steps.checkAnswer();
206
+ listOrderingPage.steps.verifyIncorrectOptionIcon('flower');
207
+ listOrderingPage.steps.verifyIncorrectOptionIcon('plant');
208
+ listOrderingPage.steps.verifyIncorrectOptionIcon('seed');
209
+ listOrderingPage.steps.verifyIncorrectOptionIcon('sprout');
210
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExists();
211
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
212
+ });
213
+ });
214
+ });