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,228 @@
1
+ import { numberLinePage } from "../../../../pages";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+ const unselectedToolOption = ['Left/down ray', 'Right/up ray', 'Left/down ray w/ hollow pt', 'Right/up ray w/ hollow pt'];
4
+ const range = 20;
5
+
6
+ describe('Create Item page - Number line: Partial equal weights with alternative answer', () => {
7
+ before(() => {
8
+ cy.loginAs('admin');
9
+ });
10
+
11
+ describe('Partial equal weights with correct answer equal to alternative points', () => {
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.selectAutoScoredScoringSubtype('Partial equal weights');
18
+ numberLinePage.steps.selectToolOptions(unselectedToolOption);
19
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
20
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
21
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
22
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
23
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
24
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
25
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
26
+ numberLinePage.steps.allotPoints(20);
27
+ //Alternative answer
28
+ numberLinePage.steps.addAlternativeAnswerAccordion(1);
29
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Right/up ray');
30
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 0, xRange: range }]);
31
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 0, xRange: range }]);
32
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
33
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
34
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
35
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
36
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
37
+ numberLinePage.steps.allotPoints(20);
38
+ numberLinePage.steps.checkAllowStudentToCheckAnswerCheckbox();
39
+ numberLinePage.steps.switchToPreviewTab();
40
+ });
41
+
42
+ it('When the user selects \'Grading\' view without attempting the question, the correct answer should be displayed in the correct answer section number line', () => {
43
+ numberLinePage.steps.verifyPreviewScore(0, 20);
44
+ numberLinePage.steps.switchToGradingView();
45
+ //Preview tab
46
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
47
+ numberLinePage.steps.verifyLineSegmentOnNumberLineNotExistPreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
48
+ //Correct answer section
49
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
50
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
51
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
52
+
53
+ 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')
54
+ numberLinePage.steps.checkAnswer();
55
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
56
+ numberLinePage.steps.verifyLineSegmentOnNumberLineNotExistPreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
57
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
58
+ });
59
+
60
+ 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, correct answer section should not be displayed', () => {
61
+ numberLinePage.steps.resetQuestionPreview();
62
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
63
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
64
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
65
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
66
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
67
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
68
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
69
+ numberLinePage.steps.verifyPreviewScore(20, 20);
70
+ numberLinePage.steps.switchToGradingView();
71
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
72
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
73
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
74
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
75
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
76
+
77
+ 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, correct answer section should not be displayed')
78
+ numberLinePage.steps.checkAnswer();
79
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
80
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
81
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
82
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
83
+ });
84
+
85
+ it('When the user attempts the question with alternative accordion response, then the user should be awarded with full points and on switching to \'Grading\' view, the attempted number line should be displayed correct, correct answer section should not be displayed', () => {
86
+ numberLinePage.steps.resetQuestionPreview();
87
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right/up ray');
88
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
89
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
90
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
91
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
92
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
93
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
94
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
95
+ numberLinePage.steps.verifyPreviewScore(20, 20);
96
+ numberLinePage.steps.switchToGradingView();
97
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }, { x: -4, xRange: range }, { x: -5, xRange: range }]);
98
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }, { x1: -5, x1Range: range, x2: -4, x2Range: range }]);
99
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
100
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
101
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
102
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
103
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
104
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
105
+
106
+ 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, correct answer section should not be displayed')
107
+ numberLinePage.steps.checkAnswer();
108
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }, { x: -4, xRange: range }, { x: -5, xRange: range }]);
109
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }, { x1: -5, x1Range: range, x2: -4, x2Range: range }]);
110
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
111
+ });
112
+
113
+ it('When the user attempts the question with partially correct options exclusively from the correct accordion, then the user should be awarded points of the correctly attempted response 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', () => {
114
+ numberLinePage.steps.resetQuestionPreview();
115
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
116
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
117
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
118
+ numberLinePage.steps.verifyPreviewScore(10, 20);
119
+ numberLinePage.steps.switchToGradingView();
120
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
121
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
122
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
123
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
124
+
125
+ 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')
126
+ numberLinePage.steps.checkAnswer();
127
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
128
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
129
+ });
130
+
131
+ it('When the user attempts the question with partially correct options exclusively from the alternative accordion, then the user should be awarded points of the correctly attempted response 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', () => {
132
+ numberLinePage.steps.resetQuestionPreview();
133
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right/up ray');
134
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
135
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
136
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
137
+ numberLinePage.steps.verifyPreviewScore(10, 20);
138
+ numberLinePage.steps.switchToGradingView();
139
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
140
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
141
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
142
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
143
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
144
+
145
+ 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')
146
+ numberLinePage.steps.checkAnswer();
147
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
148
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
149
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
150
+ });
151
+
152
+ 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 points of the correctly attempted responses 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', () => {
153
+ numberLinePage.steps.resetQuestionPreview();
154
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
155
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
156
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
157
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
158
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
159
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
160
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
161
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right/up ray');
162
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
163
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
164
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
165
+ numberLinePage.steps.verifyPreviewScore(20, 20);
166
+ numberLinePage.steps.switchToGradingView();
167
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
168
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
169
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
170
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
171
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
172
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
173
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
174
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
175
+
176
+ 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')
177
+ numberLinePage.steps.checkAnswer();
178
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
179
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
180
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
181
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 0, xRange: range }]);
182
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 0, x1Range: range, x2: 8.69, x2Range: range }]);
183
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
184
+ });
185
+
186
+ 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 points of the correctly attempted response 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', () => {
187
+ numberLinePage.steps.resetQuestionPreview();
188
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
189
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
190
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
191
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
192
+ numberLinePage.steps.verifyPreviewScore(10, 20);
193
+ numberLinePage.steps.switchToGradingView();
194
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
195
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
196
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
197
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
198
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
199
+
200
+ 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')
201
+ numberLinePage.steps.checkAnswer();
202
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
203
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
204
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
205
+ });
206
+
207
+ 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', () => {
208
+ numberLinePage.steps.resetQuestionPreview();
209
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
210
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 8, xRange: range }]);
211
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
212
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
213
+ numberLinePage.steps.verifyPreviewScore(0, 20);
214
+ numberLinePage.steps.switchToGradingView();
215
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
216
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
217
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
218
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
219
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
220
+
221
+ 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, correct answer section should not be displayed')
222
+ numberLinePage.steps.checkAnswer();
223
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
224
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
225
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
226
+ });
227
+ });
228
+ });
@@ -0,0 +1,120 @@
1
+ import { numberLinePage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ const css = Cypress.env('css');
5
+
6
+ const fontSizes = { 'Tiny': '12px', 'Small': '14px', 'Default': '16px', 'Normal': '18px', 'Big': '22px', 'Huge': '26px' };
7
+
8
+ describe('Create Item page -numberLine : Additional settings', () => {
9
+ before(() => {
10
+ cy.loginAs('admin');
11
+ });
12
+
13
+ describe('Additional Settings accordion', () => {
14
+ abortEarlySetup();
15
+ before(() => {
16
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
17
+ cy.barsPreLoaderWait();
18
+ });
19
+
20
+ numberLinePage.tests.verifyAdditionalSettingsAccordionProperties();
21
+ });
22
+
23
+ describe('Additional settings: Font size contents', () => {
24
+ abortEarlySetup();
25
+ before(() => {
26
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
27
+ cy.barsPreLoaderWait();
28
+ numberLinePage.steps.expandAdditionalSettings();
29
+ });
30
+
31
+ numberLinePage.tests.verifyFontSizeSectionContents();
32
+ });
33
+
34
+ describe('Additional settings: Font size - Specify correct answer section', () => {
35
+ abortEarlySetup();
36
+ before(() => {
37
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
38
+ cy.barsPreLoaderWait();
39
+ numberLinePage.steps.addQuestionInstructions();
40
+ numberLinePage.steps.allotPoints(10);
41
+ numberLinePage.steps.expandAdditionalSettings();
42
+ });
43
+
44
+ Object.keys(fontSizes).forEach((option) => {
45
+ it(`When the user selects \'${option}\' option from the Font Size dropdown, then font size of the specify correct answer section should change to ${fontSizes[option]} accordingly`, () => {
46
+ numberLinePage.steps.selectFontSizeOptionFromFontSizeDropdown(option);
47
+ utilities.verifyInnerText(numberLinePage.fontSizeDropdown(), `${option}`);
48
+ utilities.verifyCSS(numberLinePage.numberLineSpecifyCorrectAnswer(), {
49
+ 'font-size': fontSizes[option]
50
+ });
51
+ utilities.verifyCSS(numberLinePage.numberLineTitleSpecifyCorrectAnswerSection(), {
52
+ 'font-size': fontSizes[option]
53
+ });
54
+ });
55
+ });
56
+ });
57
+
58
+ describe('Additional settings: Font size - preview tab', () => {
59
+ abortEarlySetup();
60
+ before(() => {
61
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
62
+ cy.barsPreLoaderWait();
63
+ numberLinePage.steps.addQuestionInstructions();
64
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 1, xRange: 20 }]);
65
+ numberLinePage.steps.allotPoints(10);
66
+ numberLinePage.steps.expandAdditionalSettings();
67
+ });
68
+
69
+ Object.keys(fontSizes).forEach((option) => {
70
+ it(`When the user selects \'${option}\' option from the Font Size dropdown, then font size of the preview tab should change to ${fontSizes[option]} accordingly`, () => {
71
+ numberLinePage.steps.selectFontSizeOptionFromFontSizeDropdown(option);
72
+ utilities.verifyInnerText(numberLinePage.fontSizeDropdown(), `${option}`);
73
+ numberLinePage.steps.switchToPreviewTab();
74
+ utilities.verifyCSS(numberLinePage.numberLinePreviewTab(), {
75
+ 'font-size': fontSizes[option]
76
+ });
77
+ utilities.verifyCSS(numberLinePage.questionInstructionsText(), {
78
+ 'font-size': fontSizes[option]
79
+ });
80
+ utilities.verifyCSS(numberLinePage.numberLineTitlePreviewTab(), {
81
+ 'font-size': fontSizes[option]
82
+ });
83
+ numberLinePage.steps.switchToGradingView();
84
+ utilities.verifyCSS(numberLinePage.numberLineTitleCorrectAnswerSection(), {
85
+ 'font-size': fontSizes[option]
86
+ });
87
+ utilities.verifyCSS(numberLinePage.correctAnswersLabel(), {
88
+ 'font-size': fontSizes[option]
89
+ });
90
+ utilities.verifyCSS(numberLinePage.numberLineCorrectAnswerSection(), {
91
+ 'font-size': fontSizes[option]
92
+ });
93
+ numberLinePage.steps.switchToStudentView();
94
+ numberLinePage.steps.switchToEditTab();
95
+ });
96
+ });
97
+ });
98
+
99
+ describe('Setting tab: Accessibility section', () => {
100
+ abortEarlySetup();
101
+ before(() => {
102
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
103
+ cy.barsPreLoaderWait();
104
+ numberLinePage.steps.expandAdditionalSettings();
105
+ });
106
+
107
+ numberLinePage.tests.verifyAdditionalSettingsAccessibilitySection();
108
+ });
109
+
110
+ describe('Additional Settings: Details section', () => {
111
+ abortEarlySetup();
112
+ before(() => {
113
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
114
+ cy.barsPreLoaderWait();
115
+ numberLinePage.steps.expandAdditionalSettings();
116
+ });
117
+
118
+ numberLinePage.tests.verifyDetailsSection();
119
+ });
120
+ });