itemengine-cypress-automation 1.0.169-uploadResponseMigration-83ab996.0 → 1.0.169

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. package/cypress/e2e/ILC/BrainingCampManipulative/additionalSettings.js +83 -0
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +200 -0
  3. package/cypress/e2e/ILC/BrainingCampManipulative/editTabScoringSection.js +56 -0
  4. package/cypress/e2e/ILC/BrainingCampManipulative/gradingViewAndCorrectAnswerViewContents.smoke.js +95 -0
  5. package/cypress/e2e/ILC/BrainingCampManipulative/headerSection.js +71 -0
  6. package/cypress/e2e/ILC/BrainingCampManipulative/previewTabContent.smoke.js +72 -0
  7. package/cypress/e2e/ILC/BrainingCampManipulative/toolSettings.js +71 -0
  8. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +2 -2
  9. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +22 -11
  10. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +432 -0
  11. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +134 -0
  12. package/cypress/e2e/ILC/FeedbackScaleNew/feedbackScaleStylePreviewTab.js +161 -0
  13. package/cypress/e2e/ILC/FeedbackScaleNew/numbersFeedbackScaleStyle.js +308 -0
  14. package/cypress/e2e/ILC/FeedbackScaleNew/previewContentsForAllViews.smoke.js +216 -0
  15. package/cypress/e2e/ILC/FeedbackScaleNew/starsHeartsFeedbackScaleStyle.js +336 -0
  16. package/cypress/e2e/ILC/FeedbackScaleNew/textFeedbackScaleStyle.js +570 -0
  17. package/cypress/e2e/ILC/FeedbackScaleNew/thumbsFeedbackScaleStyle.js +214 -0
  18. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettings.js +356 -0
  19. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettingsResponseAccordion.js +299 -0
  20. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +18 -7
  21. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +11 -6
  22. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +355 -0
  23. package/cypress/e2e/ILC/Graphing/previewContentsForAllViews.smoke.js +0 -1
  24. package/cypress/e2e/ILC/Graphing/toolsControlsAndBackgroundSection.js +2 -36
  25. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +22 -34
  26. package/cypress/e2e/ILC/GridFill/checkAnswerFunctionalityForAllViews.smoke.js +8 -24
  27. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +5 -25
  28. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +68 -114
  29. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +67 -111
  30. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +71 -123
  31. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingScoringCellShadeCount.js +41 -63
  32. package/cypress/e2e/ILC/GridFill/scoring/manuallyAndNonScored.js +21 -25
  33. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsBasic.js +50 -85
  34. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +68 -115
  35. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +54 -98
  36. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +72 -120
  37. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +3 -3
  38. package/cypress/e2e/ILC/Matching/maximumCapacityPerDropzoneSection.js +309 -0
  39. package/cypress/e2e/ILC/Matching/specifyCorrectAnswerSection.js +1 -1
  40. package/cypress/e2e/ILC/Matching/toolSettings.js +72 -0
  41. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabBasicSection.js +1033 -0
  42. package/cypress/e2e/ILC/MultipleSelectionGridNew/test.js +28 -0
  43. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +236 -0
  44. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +239 -0
  45. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +278 -0
  46. package/cypress/e2e/ILC/NumberLine/Scoring/manualAndNonScoredScoring.js +178 -0
  47. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsBasic.js +407 -0
  48. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithAlternatePointsGreaterThanCorrectPoints.js +273 -0
  49. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternatePoints.js +278 -0
  50. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeigtsWithCorrectPointsEqualToAlternatePoints.js +228 -0
  51. package/cypress/e2e/ILC/NumberLine/additionalSettings.js +120 -0
  52. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +659 -0
  53. package/cypress/e2e/ILC/NumberLine/checkAnswerFunctionalityForAllViews.smoke.js +149 -0
  54. package/cypress/e2e/ILC/NumberLine/editTabScoringSection.js +151 -0
  55. package/cypress/e2e/ILC/NumberLine/gradingViewAndCorrectAnswerView.smoke.js +171 -0
  56. package/cypress/e2e/ILC/NumberLine/headerSection.js +76 -0
  57. package/cypress/e2e/ILC/NumberLine/minimumScoringPenaltyPointsAndRoundingDropdown.js +54 -0
  58. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +200 -0
  59. package/cypress/e2e/ILC/NumberLine/specifyCorrectAnswerSection.js +67 -0
  60. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +135 -0
  61. package/cypress/e2e/ILC/NumberLine/toolSettings.js +73 -0
  62. package/cypress/e2e/ILC/NumberLine/toolsAndControls.js +372 -0
  63. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabBasicSection.js +1014 -0
  64. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +235 -0
  65. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +235 -0
  66. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +235 -0
  67. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsBasic.js +457 -0
  68. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +342 -0
  69. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +342 -0
  70. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +342 -0
  71. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsBasic.js +155 -0
  72. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +314 -0
  73. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +275 -0
  74. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +314 -0
  75. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +290 -0
  76. package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +142 -0
  77. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.js +137 -0
  78. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +4 -4
  79. package/cypress/fixtures/theme/ilc.json +14 -26
  80. package/cypress/pages/brainingCampManipulativePage.js +122 -0
  81. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +1 -1
  82. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -0
  83. package/cypress/pages/components/autoScoredStudentViewSettings.js +1 -1
  84. package/cypress/pages/components/colorPopupComponent.js +2 -2
  85. package/cypress/pages/components/defaultToolDropdown.js +77 -0
  86. package/cypress/pages/components/gridQuestionCommonComponent.js +629 -2
  87. package/cypress/pages/components/index.js +3 -0
  88. package/cypress/pages/components/maximumCapacityPerDropzoneComponent.js +1 -1
  89. package/cypress/pages/components/measuringToolComponent.js +2 -2
  90. package/cypress/pages/components/resetPopupComponent.js +74 -0
  91. package/cypress/pages/components/scoringSectionBaseEditTab.js +1 -1
  92. package/cypress/pages/components/setPointsPopupBase.js +6 -4
  93. package/cypress/pages/components/specifyRowsAndColumnsComponent.js +60 -3
  94. package/cypress/pages/components/toolSettingsComponent.js +80 -12
  95. package/cypress/pages/components/toolsAndControlsComponent.js +69 -0
  96. package/cypress/pages/dragAndDropIntoCategoriesPage.js +0 -8
  97. package/cypress/pages/feedbackScalePage copy.js +716 -0
  98. package/cypress/pages/feedbackScalePage.js +591 -449
  99. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +3 -1
  100. package/cypress/pages/graphingPage.js +9 -145
  101. package/cypress/pages/gridFillPage.js +135 -120
  102. package/cypress/pages/highlightPage.js +0 -394
  103. package/cypress/pages/index.js +5 -2
  104. package/cypress/pages/matchingPage.js +78 -20
  105. package/cypress/pages/multipleSelectionGridPage.js +88 -1
  106. package/cypress/pages/numberLinePage.js +723 -0
  107. package/cypress/pages/singleSelectionGridPage.js +86 -0
  108. package/cypress/pages/textSelectionPage.js +582 -0
  109. package/cypress/support/migrationHelpers/extractLrnQuestionData.js +1 -38
  110. package/cypress/support/migrationHelpers/lrnQestionTypesENUM.js +0 -1
  111. package/cypress/support/migrationHelpers/migrationScript.js +0 -4
  112. package/cypress/support/migrationHelpers/verifyIeQuestionData.js +2 -34
  113. package/package.json +2 -2
@@ -0,0 +1,278 @@
1
+ import { numberLinePage } from "../../../../pages";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+ import utilities from "../../../../support/helpers/utilities";
4
+ const unselectedToolOption = ['Left/down ray', 'Right/up ray', 'Left/down ray w/ hollow pt', 'Right/up ray w/ hollow pt'];
5
+ const css = Cypress.env('css');
6
+ const range = 20;
7
+
8
+ describe('Create Item page - Number line: All or nothing with alternative answer', () => {
9
+ before(() => {
10
+ cy.loginAs('admin');
11
+ });
12
+
13
+ describe('All or nothing scoring with correct answer greater than alternative points', () => {
14
+ abortEarlySetup();
15
+ before(() => {
16
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
17
+ cy.barsPreLoaderWait();
18
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
19
+ numberLinePage.steps.selectToolOptions(unselectedToolOption);
20
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
21
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
22
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
23
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
24
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
25
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
26
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
27
+ numberLinePage.steps.allotPoints(20);
28
+ //Alternative answer
29
+ numberLinePage.steps.addAlternativeAnswerAccordion(1);
30
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Right/up ray');
31
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 0, xRange: range }]);
32
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 0, xRange: range }]);
33
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
34
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
35
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
36
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
37
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
38
+ numberLinePage.steps.allotPoints(12);
39
+ numberLinePage.steps.checkAllowStudentToCheckAnswerCheckbox();
40
+ numberLinePage.steps.switchToPreviewTab();
41
+ });
42
+
43
+ it('When the user selects \'Grading\' view without attempting the question, the correct answer should be displayed in the correct answer section number line and a status message \'Your answer is incorrect\' is displayed', () => {
44
+ numberLinePage.steps.verifyPreviewScore(0, 20);
45
+ numberLinePage.steps.switchToGradingView();
46
+ //Preview tab
47
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
48
+ numberLinePage.steps.verifyLineSegmentOnNumberLineNotExistPreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
49
+ //Correct answer section
50
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
51
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
52
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
53
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
54
+
55
+ cy.log('When the user clicks on \'Check answer\' button without attempting the question, status message \'Your answer is incorrect\' should be displayed and correct answer section should not be displayed')
56
+ numberLinePage.steps.checkAnswer();
57
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
58
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
59
+ numberLinePage.steps.verifyLineSegmentOnNumberLineNotExistPreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
60
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
61
+ });
62
+
63
+ 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 the attempted number line should be displayed correct, a status message with text \'Your answer is correct\' should be displayed above the question preview, correct answer section should not be displayed', () => {
64
+ numberLinePage.steps.resetQuestionPreview();
65
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
66
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
67
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
68
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
69
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
70
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
71
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
72
+ numberLinePage.steps.verifyPreviewScore(20, 20);
73
+ numberLinePage.steps.switchToGradingView();
74
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
75
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
76
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
77
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('correct');
78
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
79
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
80
+
81
+ cy.log('When the user attempts the question with responses from the correct accordion and clicks on \'Check answer\' button, the attempted number line should be displayed correct, a status message with text \'Your answer is correct\' and correct answer section should not be displayed')
82
+ numberLinePage.steps.checkAnswer();
83
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
84
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
85
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
86
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('correct');
87
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
88
+ });
89
+
90
+ it('CSS of Correct answer state', { tags: 'css' }, () => {
91
+ utilities.verifyCSS(numberLinePage.correctIncorrectAnswerTextWrapper(), {
92
+ 'color': css.color.text,
93
+ 'font-size': css.fontSize.default,
94
+ 'font-weight': css.fontWeight.regular,
95
+ 'border': `1px solid ${css.color.correctAnswer}`
96
+ });
97
+ utilities.verifyCSS(numberLinePage.correctIncorrectAnswerTextWrapper().find('svg path'), {
98
+ 'fill': css.color.correctAnswer,
99
+ });
100
+ utilities.verifyCSS(numberLinePage.numberLinePointPreviewTab(), {
101
+ 'stroke': css.color.correctAnswer,
102
+ });
103
+ });
104
+
105
+ it('Accessibility of correct answer state', { tags: 'a11y' }, () => {
106
+ cy.checkAccessibility(numberLinePage.previewTabQuestionWrapper());
107
+ });
108
+
109
+ it('When the user attempts the question with alternative accordion response, then the user should be awarded with points specified for alternative accordion (less than full points) and on switching to \'Grading\' view, the attempted number line should be displayed correct, a status message with text \'Your answer is correct\' and correct answer section should not be displayed', () => {
110
+ numberLinePage.steps.resetQuestionPreview();
111
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right/up ray');
112
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
113
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
114
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
115
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
116
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
117
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
118
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
119
+ numberLinePage.steps.verifyPreviewScore(12, 20);
120
+ numberLinePage.steps.switchToGradingView();
121
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }, { x: -4, xRange: range }, { x: -5, xRange: range }]);
122
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }, { x1: -5, x1Range: range, x2: -4, x2Range: range }]);
123
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('correct');
124
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
125
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
126
+
127
+ cy.log('When the user attempts the question with responses from the alternative accordion and clicks on \'Check answer\' button, the attempted number line should be displayed correct, a status message with text \'Your answer is correct\' and correct answer section should not be displayed')
128
+ numberLinePage.steps.checkAnswer();
129
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }, { x: -4, xRange: range }, { x: -5, xRange: range }]);
130
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }, { x1: -5, x1Range: range, x2: -4, x2Range: range }]);
131
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('correct');
132
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
133
+ });
134
+
135
+ 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, the attempted number line should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
136
+ numberLinePage.steps.resetQuestionPreview();
137
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
138
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
139
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
140
+ numberLinePage.steps.verifyPreviewScore(0, 20);
141
+ numberLinePage.steps.switchToGradingView();
142
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
143
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
144
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
145
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
146
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
147
+
148
+ cy.log('When the user attempts the question with partially correct responses exclusively from the correct accordion and clicks on \'Check answer\' button, the attempted number line should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
149
+ numberLinePage.steps.checkAnswer();
150
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
151
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
152
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
153
+ });
154
+
155
+ 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, the attempted number line should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
156
+ numberLinePage.steps.resetQuestionPreview();
157
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right/up ray');
158
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
159
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
160
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
161
+ numberLinePage.steps.verifyPreviewScore(0, 20);
162
+ numberLinePage.steps.switchToGradingView();
163
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
164
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
165
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
166
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
167
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
168
+
169
+ cy.log('When the user attempts the question with partially correct responses exclusively from the alternative accordion and clicks on \'Check answer\' button, the attempted number line should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
170
+ numberLinePage.steps.checkAnswer();
171
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
172
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
173
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
174
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
175
+ });
176
+
177
+ 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, the correctly attempted number line should be displayed correct and incorrectly attempted should be displayed for the alternative accordion number line, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
178
+ numberLinePage.steps.resetQuestionPreview();
179
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
180
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
181
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
182
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
183
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
184
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
185
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
186
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right/up ray');
187
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
188
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
189
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
190
+ numberLinePage.steps.verifyPreviewScore(0, 20);
191
+ numberLinePage.steps.switchToGradingView();
192
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
193
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
194
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
195
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
196
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
197
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
198
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
199
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
200
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
201
+
202
+ cy.log('When the user attempts the question with equal number responses from the correct and alternative accordion and clicks on \'Check answer\' button, the attempted number line should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
203
+ numberLinePage.steps.checkAnswer();
204
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
205
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
206
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
207
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
208
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
209
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
210
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
211
+ });
212
+
213
+ 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, the attempted response should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
214
+ numberLinePage.steps.resetQuestionPreview();
215
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
216
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
217
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
218
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
219
+ numberLinePage.steps.verifyPreviewScore(0, 20);
220
+ numberLinePage.steps.switchToGradingView();
221
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
222
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
223
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
224
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
225
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
226
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
227
+
228
+ cy.log('When the user attempts the question with common response from the alternative accordion and clicks on \'Check answer\' button, the attempted number line should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section should not be displayed')
229
+ numberLinePage.steps.checkAnswer();
230
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
231
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
232
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
233
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
234
+ });
235
+
236
+ 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 should be displayed', () => {
237
+ numberLinePage.steps.resetQuestionPreview();
238
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
239
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 8, xRange: range }]);
240
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
241
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
242
+ numberLinePage.steps.verifyPreviewScore(0, 20);
243
+ numberLinePage.steps.switchToGradingView();
244
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
245
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
246
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect')
247
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
248
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
249
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
250
+
251
+ cy.log('When the user has attempted the question with incorrect responses 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')
252
+ numberLinePage.steps.checkAnswer();
253
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
254
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
255
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
256
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
257
+ });
258
+
259
+ it('CSS of incorrect answer state', { tags: 'css' }, () => {
260
+ utilities.verifyCSS(numberLinePage.correctIncorrectAnswerTextWrapper(), {
261
+ 'color': css.color.text,
262
+ 'font-size': css.fontSize.default,
263
+ 'font-weight': css.fontWeight.regular,
264
+ 'border': `1px solid ${css.color.incorrectAnswer}`
265
+ });
266
+ utilities.verifyCSS(numberLinePage.correctIncorrectAnswerTextWrapper().find('svg path'), {
267
+ 'fill': css.color.incorrectAnswer,
268
+ });
269
+ utilities.verifyCSS(numberLinePage.numberLinePointPreviewTab(), {
270
+ 'stroke': css.color.incorrectAnswer,
271
+ });
272
+ });
273
+
274
+ it('Accessibility of incorrect answer state', { tags: 'a11y' }, () => {
275
+ cy.checkAccessibility(numberLinePage.previewTabQuestionWrapper());
276
+ });
277
+ });
278
+ });
@@ -0,0 +1,178 @@
1
+ import { numberLinePage } from "../../../../pages";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+ import utilities from "../../../../support/helpers/utilities";
4
+ const range = 20;
5
+
6
+ describe('Create Item page - Number line: Manually and non scored', () => {
7
+ before(() => {
8
+ cy.loginAs('admin');
9
+ });
10
+
11
+ describe('Question Preview: Manually Scored', () => {
12
+ abortEarlySetup();
13
+ before(() => {
14
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
15
+ cy.barsPreLoaderWait();
16
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
17
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
18
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
19
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
20
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
21
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
22
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
23
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
24
+ numberLinePage.steps.expandScoringTypeDropdown();
25
+ numberLinePage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
26
+ numberLinePage.steps.switchToPreviewTab();
27
+ });
28
+
29
+ it('Question instructions and number line should be displayed in the preview tab', () => {
30
+ numberLinePage.steps.verifyQuestionInstructionsTextPreviewTab('Plot points on the number line');
31
+ utilities.verifyElementVisibilityState(numberLinePage.numberLinePreviewTab(), 'visible');
32
+ });
33
+
34
+ it('User should be able to attempt in the preview tab', () => {
35
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
36
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
37
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
38
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
39
+ });
40
+
41
+ numberLinePage.tests.verifyGradingStudentViewRadioButtonAndScoringTypeInPreviewTab('Manually scored');
42
+ });
43
+
44
+ describe('Question Preview: Non Scored', () => {
45
+ abortEarlySetup();
46
+ before(() => {
47
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
48
+ cy.barsPreLoaderWait();
49
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
50
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
51
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
52
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
53
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
54
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
55
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
56
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
57
+ numberLinePage.steps.expandScoringTypeDropdown();
58
+ numberLinePage.steps.selectOptionFromScoringTypeDropdown('Non scored');
59
+ numberLinePage.steps.checkAllowStudentToCheckAnswerCheckbox();
60
+ numberLinePage.steps.switchToPreviewTab();
61
+ });
62
+
63
+ numberLinePage.tests.verifyGradingStudentViewRadioButtonAndScoringTypeInPreviewTab('Non scored');
64
+
65
+ it('When the user selects \'Grading\' view without attempting the question, the correct answer should be displayed in the correct answer section number line', () => {
66
+ numberLinePage.steps.switchToGradingView();
67
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
68
+ numberLinePage.steps.verifyLineSegmentOnNumberLineNotExistPreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
69
+
70
+ //Correct/incorrect icon
71
+ utilities.verifyElementVisibilityState(numberLinePage.correctIncorrectAnswerTextWrapper(), 'notExist');
72
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
73
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
74
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
75
+ cy.log('When the user selects \'Check answer\' view without attempting the question, the correct answer should be displayed in the correct answer section number line')
76
+ numberLinePage.steps.checkAnswer();
77
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
78
+ numberLinePage.steps.verifyLineSegmentOnNumberLineNotExistPreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
79
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
80
+ });
81
+
82
+ it('When the user attempts the question incorrectly then on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted number line should be displayed incorrect and the the correct answers should be displayed in the correct answer section number line', () => {
83
+ numberLinePage.steps.resetQuestionPreview();
84
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
85
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 8, xRange: range }]);
86
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
87
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);;
88
+ numberLinePage.steps.switchToGradingView();
89
+ //Preview tab
90
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
91
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
92
+ //Correct answer section
93
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
94
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
95
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
96
+ cy.log('When the user attempts the question incorrectly then on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted number line should be displayed incorrect')
97
+ numberLinePage.steps.checkAnswer();
98
+ //Preview tab
99
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
100
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
101
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
102
+ });
103
+
104
+ it('When the user attempts the question partially correct then on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted number line should be displayed correct and the the correct answers should be displayed in the correct answer section number line', () => {
105
+ numberLinePage.steps.resetQuestionPreview();
106
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
107
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
108
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
109
+ numberLinePage.steps.switchToGradingView();
110
+ //Preview tab
111
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
112
+ //Correct answer section
113
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
114
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
115
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
116
+ cy.log('When the user attempts the question partially correct then on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted number line should be displayed correct')
117
+ numberLinePage.steps.checkAnswer();
118
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
119
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
120
+ });
121
+
122
+ it('When the user attempts the question partially correct with an incorrect response then on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted number line should be displayed correct for the correct response and incorrect for the incorrect response and the the correct answers should be displayed in the correct answer section number line', () => {
123
+ numberLinePage.steps.resetQuestionPreview();
124
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
125
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
126
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
127
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
128
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment left/down hollow pt');
129
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 6, xRange: range }]);
130
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 6, xRange: range }, { x: 5, xRange: range }]);
131
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 5, x1Range: range, x2: 6, x2Range: range }]);
132
+ numberLinePage.steps.switchToGradingView();
133
+ //Preview tab
134
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
135
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
136
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 6, xRange: range }, { x: 5, xRange: range }]);
137
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 5, x1Range: range, x2: 6, x2Range: range }]);
138
+ //Correct answer section
139
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
140
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
141
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
142
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
143
+ cy.log('When the user attempts the question partially correct with an incorrect response then on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted number line should be displayed correct for the correct response')
144
+ numberLinePage.steps.checkAnswer();
145
+ //Preview tab
146
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
147
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
148
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 6, xRange: range }, { x: 5, xRange: range }]);
149
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 5, x1Range: range, x2: 6, x2Range: range }]);
150
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
151
+ });
152
+
153
+ it('When the user attempts the question correctly then on switching to grading view \'Your answer is correct\' should be displayed and the attempted number line should be displayed correct and the correct answer section number line should not be displayed', () => {
154
+ numberLinePage.steps.resetQuestionPreview();
155
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
156
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
157
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
158
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
159
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
160
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
161
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
162
+ numberLinePage.steps.switchToGradingView();
163
+ //Preview tab
164
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
165
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
166
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
167
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
168
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
169
+ cy.log('When the user attempts the question correctly then on switching to grading view \'Your answer is correct\' should be displayed and the attempted number line should be displayed correct')
170
+ numberLinePage.steps.checkAnswer();
171
+ //Preview tab
172
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
173
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
174
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
175
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
176
+ });
177
+ });
178
+ });