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,149 @@
1
+ import { numberLinePage, itemPreviewPage, studentViewPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ var itemReferenceID = "";
5
+ const checkAnswerViews = ['Question preview', 'Item preview', 'Student view'];
6
+ const unselectedToolOption = ['Left/down ray', 'Right/up ray', 'Left/down ray w/ hollow pt', 'Right/up ray w/ hollow pt'];
7
+ const views = utilities.getViews(checkAnswerViews);
8
+ const range = 20;
9
+
10
+ describe('Create item page - Number line - Check answer functionality', () => {
11
+ before(() => {
12
+ cy.loginAs('admin');
13
+ });
14
+
15
+ views.forEach((view) => {
16
+ //Note: Remove after https://redmine.zeuslearning.com/issues/549542 is fixed
17
+ const checkAnswer = (view) => {
18
+ switch (view) {
19
+ case 'Question preview':
20
+ case 'Item preview':
21
+ numberLinePage.steps.checkAnswer();
22
+ break;
23
+ case 'Student view':
24
+ studentViewPage.steps.checkAnswer();
25
+ break;
26
+ default:
27
+ throw new Error(`Unsupported page identifier: ${view}`);
28
+ }
29
+ };
30
+
31
+ describe(`${view} - Check answer functionality`, { tags: 'smoke' }, () => {
32
+ abortEarlySetup();
33
+ before(() => {
34
+ switch (view) {
35
+ case 'Question preview':
36
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
37
+ cy.barsPreLoaderWait();
38
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot the graph');
39
+ numberLinePage.steps.selectToolOptions(unselectedToolOption);
40
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
41
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
42
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
43
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
44
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
45
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
46
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
47
+ numberLinePage.steps.allotPoints(20);
48
+ numberLinePage.steps.checkAllowStudentToCheckAnswerCheckbox();
49
+ numberLinePage.steps.switchToPreviewTab();
50
+ break;
51
+ case 'Item preview':
52
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
53
+ itemPreviewPage.steps.switchToPreviewTab();
54
+ break;
55
+ case 'Student view':
56
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
57
+ break;
58
+ }
59
+ });
60
+
61
+ beforeEach(() => {
62
+ switch (view) {
63
+ case 'Question preview':
64
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
65
+ numberLinePage.steps.resetQuestionPreview();
66
+ break;
67
+ case 'Item preview':
68
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
69
+ itemPreviewPage.steps.resetQuestionPreview();
70
+ break;
71
+ case 'Student view':
72
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
73
+ break;
74
+ }
75
+ });
76
+
77
+ if (view === 'Question preview') {
78
+ after(() => {
79
+ numberLinePage.steps.clickOnSaveQuestionButton();
80
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
81
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
82
+ });
83
+ };
84
+
85
+ it('When the user selects \'Grading\' view without attempting the question, \'Your answer is incorrect\' status message should be displayed and the number line should have no points plotted', () => {
86
+ checkAnswer(view);
87
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
88
+ numberLinePage.steps.verifyLineSegmentOnNumberLineNotExistPreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
89
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
90
+ });
91
+
92
+ it('When the user attempts the question incorrectly then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed incorrect', () => {
93
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
94
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 8, xRange: range }]);
95
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
96
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
97
+ checkAnswer(view);
98
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 8, xRange: range }, { x: 7, xRange: range }]);
99
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 8, x1Range: range, x2: 7, x2Range: range }]);
100
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect')
101
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
102
+ });
103
+
104
+ it('When the user attempts the question partially correct then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed correct', () => {
105
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
106
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
107
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
108
+ checkAnswer(view);
109
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
110
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect')
111
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
112
+ });
113
+
114
+ it('When the user attempts the question partially correct with an incorrect response then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed correct for the correct response', () => {
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.selectNumberLineToolOptionPreviewTab('Segment left/down hollow pt');
120
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 6, xRange: range }]);
121
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 6, xRange: range }, { x: 5, xRange: range }]);
122
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: 5, x1Range: range, x2: 6, x2Range: range }]);
123
+ checkAnswer(view);
124
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
125
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
126
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab([{ x: 6, xRange: range }, { x: 5, xRange: range }]);
127
+ numberLinePage.steps.verifyIncorrectLineSegmentOnNumberLinePreviewTab([{ x1: 5, x1Range: range, x2: 6, x2Range: range }]);
128
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect')
129
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
130
+ });
131
+
132
+ it('When the user attempts the question correctly then the user should be awarded with full points and on switching to grading view \'Your answer is correct\' should be displayed and the attempted graph should be displayed correct', () => {
133
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
134
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
135
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
136
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
137
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
138
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
139
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
140
+ checkAnswer(view);
141
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
142
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
143
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
144
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('correct');
145
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
146
+ });
147
+ });
148
+ });
149
+ });
@@ -0,0 +1,151 @@
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
+ const range = 20;
6
+
7
+ describe('Create item page - Number line: Scoring section', () => {
8
+ before(() => {
9
+ cy.loginAs('admin');
10
+ });
11
+
12
+ describe('Scoring section contents', () => {
13
+ abortEarlySetup();
14
+ before(() => {
15
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
16
+ cy.barsPreLoaderWait();
17
+ });
18
+
19
+ numberLinePage.tests.verifyScoringTypeLabelAndDropdown('Auto scored');
20
+
21
+ it('\'All or nothing\', \'Partial - equal weights\' should be displayed and \'Partial - different weights\' labels and radio button should not be displayed', () => {
22
+ utilities.verifyElementVisibilityState(numberLinePage.allOrNothingRadioButtonLabel(), 'visible');
23
+ utilities.verifyElementVisibilityState(numberLinePage.allOrNothingRadioButton(), 'exist');
24
+ utilities.verifyElementVisibilityState(numberLinePage.partialEqualWeightsRadioButtonLabel(), 'visible');
25
+ utilities.verifyElementVisibilityState(numberLinePage.partialEqualWeightsRadioButton(), 'exist');
26
+ utilities.verifyElementVisibilityState(numberLinePage.partialDifferentWeightsRadioButtonLabel(), 'notExist');
27
+ utilities.verifyElementVisibilityState(numberLinePage.partialDifferentWeightsRadioButton(), 'notExist');
28
+ });
29
+ });
30
+
31
+ describe('Auto scored: All or nothing scoring - Scoring section', () => {
32
+ abortEarlySetup();
33
+ before(() => {
34
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
35
+ cy.barsPreLoaderWait();
36
+ numberLinePage.steps.allotPoints(10);
37
+ });
38
+
39
+ it('When the user has selected \'All or nothing\' scoring subtype, minimum scoring dropdown should be displayed in the scoring section', () => {
40
+ numberLinePage.steps.verifyMinimumScoringLabelAndDropdownDefaultState();
41
+ });
42
+ });
43
+
44
+ describe('Auto scored: All or nothing scoring - Specify correct answer section', () => {
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
+ });
58
+
59
+ numberLinePage.tests.verifyContentsOfSpecifyCorrectAnswerSection();
60
+
61
+ numberLinePage.tests.verifyPointsLabelAndInputField();
62
+ });
63
+
64
+ describe('Auto scored: Partial - equal weights scoring - Scoring section', () => {
65
+ abortEarlySetup();
66
+ before(() => {
67
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
68
+ cy.barsPreLoaderWait();
69
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
70
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
71
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
72
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
73
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
74
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
75
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
76
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
77
+ });
78
+
79
+ it('User should be able to select \'Partial - equal weights\' scoring type', () => {
80
+ numberLinePage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
81
+ });
82
+
83
+ it('When the user has switched to \'Partial - equal weights\' scoring, then \'Penalty scoring\', \'Minimum scoring\' and \'Rounding\' label and dropdown should be displayed in the \'Scoring\' section, \'Round negative scores to zero\' label and checkbox should not be displayed in the \'Scoring\' section', () => {
84
+ numberLinePage.steps.verifyPointsPerResponseLabel();
85
+ numberLinePage.steps.verifyMinimumScoringLabelAndDropdownDefaultState();
86
+ numberLinePage.steps.verifyPenaltyPointsLabelAndDropdownDefaultState();
87
+ numberLinePage.steps.verifyRoundingLabelAndDropdownDefaultState();
88
+ utilities.verifyElementVisibilityState(numberLinePage.roundNegativeScoresToZeroCheckbox(), 'notExist');
89
+ });
90
+ });
91
+
92
+ describe('Auto scored: Partial equal weights scoring - Specify correct answer section', () => {
93
+ abortEarlySetup();
94
+ before(() => {
95
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
96
+ cy.barsPreLoaderWait();
97
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
98
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
99
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
100
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
101
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
102
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
103
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
104
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
105
+ numberLinePage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
106
+ });
107
+
108
+ numberLinePage.tests.verifyContentsOfSpecifyCorrectAnswerSection();
109
+
110
+ it('\'Points per response\' label should be displayed and a \'-\' should be displayed besides each response in the \'Specify correct answer\' section', () => {
111
+ numberLinePage.steps.verifyPointsPerResponseLabel();
112
+ });
113
+
114
+ it('When the user gives a score input to \'Points\' input field, then the score should be equally divided among the dropzone \'Points per response\' label', () => {
115
+ numberLinePage.steps.allotPoints(6);
116
+ numberLinePage.steps.verifyPartialEqualWeightsPointsPerResponseScore('3');
117
+ });
118
+
119
+ it('When the user plots another point, then points per response should get updated accordingly', () => {
120
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
121
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 8, xRange: range }]);
122
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 8, xRange: range }]);
123
+ numberLinePage.steps.verifyPartialEqualWeightsPointsPerResponseScore('2');
124
+ });
125
+
126
+ it('When the user removes a point, then points per response should get updated accordingly', () => {
127
+ numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Undo');
128
+ numberLinePage.steps.verifyPartialEqualWeightsPointsPerResponseScore('2');
129
+ });
130
+
131
+ it('When the user switches to \'All or nothing\' scoring, the \'Points per response\' label and the points displayed for individual responses should not be displayed and the points displayed in \'Points\' input field should remain unchanged', () => {
132
+ numberLinePage.steps.selectAutoScoredScoringSubtype('All or nothing');
133
+ utilities.verifyElementVisibilityState(numberLinePage.pointsPerResponseLabel(), 'notExist');
134
+ numberLinePage.steps.verifyPointsFieldValue(6);
135
+ });
136
+
137
+ it('When the user updates the entered points in \'All or nothing\' scoring type and switches to \'Partial equal weights\' scoring type, then the points should be equally divided and displayed besides each correct option', () => {
138
+ numberLinePage.steps.allotPoints(12);
139
+ numberLinePage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
140
+ numberLinePage.steps.verifyPartialEqualWeightsPointsPerResponseScore('4');
141
+ });
142
+
143
+ it('CSS of \'Points per response\' label and its displayed score', { tags: 'css' }, () => {
144
+ utilities.verifyCSS(numberLinePage.pointsPerResponseLabel(), {
145
+ 'color': css.color.labels,
146
+ 'font-size': css.fontSize.normal,
147
+ 'font-weight': css.fontWeight.regular
148
+ });
149
+ });
150
+ });
151
+ });
@@ -0,0 +1,171 @@
1
+ import { numberLinePage, correctAnswerViewPage, itemPreviewPage, studentViewPage } from "../../../pages";
2
+ import { gradingViewPage } from "../../../pages";
3
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
4
+ import utilities from "../../../support/helpers/utilities";
5
+ let gradingAndCorrectAnsView = ['Grading view', 'Correct answer view']
6
+ const selectedToolOption = ['Point', 'Segment', 'Segment left/down hollow pt', 'Segment right/up hollow pt', 'Segment both hollow pts'];
7
+ const unselectedToolOption = ['Left/down ray', 'Right/up ray', 'Left/down ray w/ hollow pt', 'Right/up ray w/ hollow pt'];
8
+ const controlOptions = ['Undo', 'Redo', 'Reset'];
9
+ const toolOptions = [...selectedToolOption, ...unselectedToolOption];
10
+ const views = utilities.getViews(gradingAndCorrectAnsView);
11
+ var itemReferenceID = "";
12
+ const css = Cypress.env('css');
13
+ const range = 20;
14
+
15
+ describe('Create item page - Graphing: Grading view, Correct answer view contents', () => {
16
+ before(() => {
17
+ cy.loginAs('admin');
18
+ });
19
+
20
+ if (views.includes('Grading view')) {
21
+ describe('Grading view contents', { tags: 'smoke' }, () => {
22
+ abortEarlySetup();
23
+ before(() => {
24
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
25
+ cy.barsPreLoaderWait();
26
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
27
+ numberLinePage.steps.allotPoints(10);
28
+ numberLinePage.steps.selectToolOptions(unselectedToolOption);
29
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
30
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
31
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
32
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Left/down ray');
33
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -7, xRange: range }]);
34
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -7, xRange: range }]);
35
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -7, x1Range: range, x2: -8.68, x2Range: range }]);
36
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
37
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
38
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
39
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
40
+ numberLinePage.steps.clickOnSaveQuestionButton();
41
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
42
+ //Global variable issue, not working inside before
43
+ itemPreviewPage.referenceID()
44
+ .invoke('text')
45
+ .then(($refID) => {
46
+ itemReferenceID = $refID;
47
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
48
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
49
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: -4, xRange: range }]);
50
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
51
+ numberLinePage.steps.verifyLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
52
+ studentViewPage.steps.submitResponse();
53
+ studentViewPage.steps.clickOnGoToGradingViewButton();
54
+ });
55
+ });
56
+
57
+ it('Question instructions should be visible', () => {
58
+ utilities.verifyInnerText(numberLinePage.questionInstructionsText(), 'Plot points on the number line');
59
+ utilities.verifyElementVisibilityState(numberLinePage.questionInstructionsText(), 'visible');
60
+ });
61
+
62
+ it('Tool and control options should not be displayed', () => {
63
+ utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionPreviewTab(), 'notExist');
64
+ utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionPreviewTab(), 'notExist');
65
+ });
66
+
67
+ it('Correct answer label should be displayed', () => {
68
+ utilities.verifyInnerText(numberLinePage.correctAnswersLabel(), 'Correct answers');
69
+ utilities.verifyElementVisibilityState(numberLinePage.correctAnswersLabel(), 'visible');
70
+ });
71
+
72
+ it('Correct answer along with number line attempted by the user should be displayed in the correct answer section', () => {
73
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
74
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
75
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: 2, xRange: range }]);
76
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
77
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -7, x1Range: range, x2: -8.68, x2Range: range }]);
78
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
79
+ });
80
+
81
+ it('Points and the total score should be displayed', () => {
82
+ gradingViewPage.steps.verifyGradingViewScore(0, 10);
83
+ });
84
+
85
+ it('CSS of grading view', { tags: 'css' }, () => {
86
+ utilities.verifyCSS(numberLinePage.numberLinePointPreviewTab(), {
87
+ 'fill': css.color.correctAnswer
88
+ });
89
+ utilities.verifyCSS(numberLinePage.numberLinePointCorrectAnswerSection(), {
90
+ 'fill': css.color.correctAnswer
91
+ });
92
+ });
93
+
94
+ it('Accessibility of grading view', { tags: 'a11y' }, () => {
95
+ cy.checkAccessibility(numberLinePage.numberLinePreviewTab().parents('[class*="question-preview-wrapper"]'));
96
+ });
97
+ });
98
+ }
99
+
100
+ if (views.includes('Correct answer view')) {
101
+ describe('Correct answer view contents', { tags: 'smoke' }, () => {
102
+ abortEarlySetup();
103
+ before(() => {
104
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
105
+ cy.barsPreLoaderWait();
106
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
107
+ numberLinePage.steps.allotPoints(10);
108
+ numberLinePage.steps.selectToolOptions(unselectedToolOption);
109
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
110
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
111
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
112
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Left/down ray');
113
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -7, xRange: range }]);
114
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -7, xRange: range }]);
115
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -7, x1Range: range, x2: -8.68, x2Range: range }]);
116
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Segment right/up hollow pt');
117
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }]);
118
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: -4, xRange: range }, { x: -5, xRange: range }]);
119
+ numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
120
+ numberLinePage.steps.clickOnSaveQuestionButton();
121
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
122
+ //Global variable issue, not working inside before
123
+ itemPreviewPage.referenceID()
124
+ .invoke('text')
125
+ .then(($refID) => {
126
+ itemReferenceID = $refID
127
+ cy.visit(`/item-engine/demo/render-item/correct-answer-view/${utilities.base64Encoding(itemReferenceID)}`);
128
+ });
129
+ });
130
+
131
+ it('Question instructions should be visible', () => {
132
+ utilities.verifyInnerText(numberLinePage.questionInstructionsText(), 'Plot points on the number line');
133
+ utilities.verifyElementVisibilityState(numberLinePage.questionInstructionsText(), 'visible');
134
+ });
135
+
136
+ it('The toolbar options should be displayed in the preview tab and when the user hovers over the tool options then tooltips should be displayed', () => {
137
+ toolOptions.forEach((toolOption) => {
138
+ utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionPreviewTab(toolOption), 'exist');
139
+ numberLinePage.numberLineToolOptionPreviewTab(toolOption)
140
+ .verifyTooltip(toolOption);
141
+ });
142
+ });
143
+
144
+ it('Control options should be displayed in disabled state', () => {
145
+ controlOptions.forEach((controlOption) => {
146
+ utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab(controlOption));
147
+ });
148
+ });
149
+
150
+ it('The correct answer set by user should be displayed in the correct answer view', () => {
151
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab([{ x: -4, xRange: range }, { x: -5, xRange: range }, { x: 2, xRange: range }]);
152
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -5, x1Range: range, x2: -4, x2Range: range }]);
153
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab([{ x1: -7, x1Range: range, x2: -8.68, x2Range: range }]);
154
+ });
155
+
156
+ it('The points alloted to the question should be displayed', () => {
157
+ correctAnswerViewPage.steps.verifyAvailablePoints(10);
158
+ });
159
+
160
+ it('CSS of correct answer section', { tags: 'css' }, () => {
161
+ utilities.verifyCSS(numberLinePage.numberLinePointPreviewTab(), {
162
+ 'fill': css.color.correctAnswer
163
+ });
164
+ });
165
+
166
+ it('Accessibility of correct answer section', { tags: 'a11y' }, () => {
167
+ cy.checkAccessibility(numberLinePage.numberLinePreviewTab().parents('[class*="question-preview-wrapper"]'));
168
+ });
169
+ });
170
+ }
171
+ });
@@ -0,0 +1,76 @@
1
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
2
+ import { dialogBoxBase, numberLinePage } from "../../../pages";
3
+ import utilities from "../../../support/helpers/utilities";
4
+
5
+ describe('Create item page - Number line: Header section and saving question', () => {
6
+ before(() => {
7
+ cy.loginAs('admin');
8
+ });
9
+
10
+ describe('Header section contents', () => {
11
+ abortEarlySetup();
12
+ before(() => {
13
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
14
+ cy.barsPreLoaderWait();
15
+ });
16
+
17
+ numberLinePage.tests.verifyCreateQuestionPageQuestionTypeHeader('Number line');
18
+ });
19
+
20
+ describe('Tabs section', () => {
21
+ abortEarlySetup();
22
+ before(() => {
23
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
24
+ cy.barsPreLoaderWait();
25
+ });
26
+
27
+ numberLinePage.tests.verifyTabsSection();
28
+ });
29
+
30
+ describe('Cancel button', () => {
31
+ abortEarlySetup();
32
+ before(() => {
33
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
34
+ cy.barsPreLoaderWait();
35
+ });
36
+
37
+ numberLinePage.tests.verifyCancelButton('Number line')
38
+ });
39
+
40
+ describe('Save Question button', () => {
41
+ abortEarlySetup();
42
+ before(() => {
43
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
44
+ cy.barsPreLoaderWait();
45
+ });
46
+
47
+ describe('Validation error messages', () => {
48
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
49
+
50
+ it('Validation error messages should be displayed below required input fields', () => {
51
+ numberLinePage.steps.verifyQuestionInstructionsErrorMessage();
52
+ numberLinePage.steps.verifyPointsFieldErrorMessage();
53
+ utilities.verifyInnerText(utilities.getNthElement(numberLinePage.errorMessage(), 2), 'Error: Please set a correct answer.');
54
+ });
55
+
56
+ it('Validation error messages should disappear when required input fields are filled', () => {
57
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Question instruction');
58
+ numberLinePage.steps.allotPoints(10);
59
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 0, xRange: 20}]);
60
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 0, xRange: 20}]);
61
+ numberLinePage.steps.verifyErrorMessageIsNotDisplayed();
62
+ numberLinePage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
63
+ });
64
+
65
+ numberLinePage.tests.verifyCreateItemWrapperContentsA11y();
66
+ });
67
+
68
+ describe('Saving a question', () => {
69
+ it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
70
+ numberLinePage.steps.saveAQuestionAndVerifySnackbar();
71
+ });
72
+
73
+ numberLinePage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
74
+ });
75
+ });
76
+ });
@@ -0,0 +1,54 @@
1
+ import { numberLinePage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ const penaltyScoringTypeArray = ['No penalty points', 'Penalty points for the entire question'];
4
+
5
+ describe('Create item page - Number line: Minimum scoring, Penalty scoring, Rounding - Edit tab', () => {
6
+ before(() => {
7
+ cy.loginAs('admin');
8
+ });
9
+
10
+ describe('Scoring section: Minimum scoring - Edit tab', () => {
11
+ abortEarlySetup();
12
+ before(() => {
13
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
14
+ cy.barsPreLoaderWait();
15
+ numberLinePage.steps.allotPoints(10);
16
+ });
17
+
18
+ numberLinePage.tests.verifyMinimumScoringDropdown();
19
+
20
+ numberLinePage.tests.verifyMinimumPointsLabelAndInputField();
21
+
22
+ numberLinePage.tests.verifyMinimumPointsFieldErrorState();
23
+ });
24
+
25
+ describe('Scoring section: Penalty scoring - Edit tab', () => {
26
+ abortEarlySetup();
27
+ before(() => {
28
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
29
+ cy.barsPreLoaderWait();
30
+ numberLinePage.steps.allotPoints(10);
31
+ numberLinePage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
32
+ });
33
+
34
+ numberLinePage.tests.verifyPenaltyScoringDropdown(penaltyScoringTypeArray);
35
+
36
+ numberLinePage.tests.verifyPenaltyPointsLabelAndInputField();
37
+
38
+ numberLinePage.tests.verifyPenaltyPointsErrorState();
39
+ });
40
+
41
+ describe('Scoring section: Rounding - Edit tab', () => {
42
+ abortEarlySetup();
43
+ before(() => {
44
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
45
+ cy.barsPreLoaderWait();
46
+ numberLinePage.steps.allotPoints(10);
47
+ numberLinePage.steps.selectAutoScoredScoringSubtype('Partial equal weights')
48
+ });
49
+
50
+ numberLinePage.tests.verifyRoundingDropdown();
51
+
52
+ numberLinePage.tests.verifyRoundNegativeScoreToZeroLabelAndCheckbox();
53
+ });
54
+ });