itemengine-cypress-automation 1.0.184-e2e-execution-crash-3b9d0d0.0 → 1.0.185-repoUpdate26April-b17eb46.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. package/cypress/e2e/ILC/AudioPlayerNew/allSupportedFileTypes.js +79 -0
  2. package/cypress/e2e/ILC/AudioPlayerNew/barAudioPlayerStyle.js +345 -0
  3. package/cypress/e2e/ILC/AudioPlayerNew/compactAudioPlayerStyle.js +429 -0
  4. package/cypress/e2e/ILC/AudioPlayerNew/previewContents.smoke.js +162 -0
  5. package/cypress/e2e/ILC/AudioPlayerNew/standardAudioPlayerStyle.js +489 -0
  6. package/cypress/e2e/ILC/AudioPlayerNew/uploadAndAddAudioFile.js +313 -0
  7. package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +1 -1
  8. package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +1 -1
  9. package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.smoke.js +1 -1
  10. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +1 -1
  11. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +5 -8
  12. package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +417 -28
  13. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +1 -1
  14. package/cypress/e2e/ILC/FeedbackScaleNew/headerSection.js +29 -1
  15. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +2 -2
  16. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettings.js +1 -1
  17. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/studentViewSettings.js +1 -1
  18. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +1 -0
  19. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +2 -2
  20. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -1
  21. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/studentViewSettings.js +1 -1
  22. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +4 -4
  23. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  24. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +1 -1
  25. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +5 -5
  26. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +3 -4
  27. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  28. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +1 -0
  29. package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +1 -1
  30. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
  31. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +2 -2
  32. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +2 -2
  33. package/cypress/e2e/ILC/Graphing/addBackgroundShapesSection.js +2 -2
  34. package/cypress/e2e/ILC/Graphing/studentViewSettings.js +1 -1
  35. package/cypress/e2e/ILC/GridFill/checkAnswerFunctionalityForAllViews.smoke.js +2 -2
  36. package/cypress/e2e/ILC/GridFill/gridLayoutContents.js +11 -3
  37. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +3 -3
  38. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +1 -1
  39. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +230 -0
  40. package/cypress/e2e/ILC/ListOrderingDropdown/checkAnswerFunctionalityForAllViews.smoke.js +124 -0
  41. package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +201 -0
  42. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +216 -0
  43. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +214 -0
  44. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +251 -0
  45. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingPenaltyScoring.js +52 -0
  46. package/cypress/e2e/ILC/ListOrderingNew/Scoring/manuallyAndNonScored.js +128 -0
  47. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +279 -0
  48. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsBasic.js +109 -0
  49. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +278 -0
  50. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +278 -0
  51. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +335 -0
  52. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +250 -0
  53. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsBasic.js +161 -0
  54. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +216 -0
  55. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +252 -0
  56. package/cypress/e2e/ILC/ListOrderingNew/additionalSettings.js +118 -0
  57. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +243 -0
  58. package/cypress/e2e/ILC/ListOrderingNew/checkAnswerFunctionalityForAllViews.smoke.js +128 -0
  59. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +155 -0
  60. package/cypress/e2e/ILC/ListOrderingNew/editTabScoring.js +195 -0
  61. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +78 -0
  62. package/cypress/e2e/ILC/ListOrderingNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +194 -0
  63. package/cypress/e2e/ILC/ListOrderingNew/previewContentsForAllViews.smoke.js +176 -0
  64. package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +112 -0
  65. package/cypress/e2e/ILC/ListOrderingNew/studentViewSettings.js +244 -0
  66. package/cypress/e2e/ILC/Matching/studentViewSettings.js +1 -1
  67. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +1 -0
  68. package/cypress/e2e/ILC/MultipleSelectionGridNew/studentViewSettings.js +1 -1
  69. package/cypress/e2e/ILC/NumberLine/LayoutSection.js +181 -0
  70. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +3 -3
  71. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +57 -1
  72. package/cypress/e2e/ILC/NumberLine/lineSettingsSection.js +33 -0
  73. package/cypress/e2e/ILC/NumberLine/numberLineSection.js +46 -0
  74. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +1 -1
  75. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +1 -1
  76. package/cypress/e2e/ILC/NumberLine/toolSettings.js +2 -1
  77. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +696 -0
  78. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +173 -0
  79. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/layoutSection.js +183 -0
  80. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/numberLineSection.js +73 -0
  81. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/previewTabContentsForAllViews.smoke.js +204 -0
  82. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +288 -0
  83. package/cypress/e2e/ILC/NumberLineLabel/checkAnswerFunctionalityForAllViews.smoke.js +153 -0
  84. package/cypress/e2e/ILC/NumberLineLabel/gradingViewAndCorrectAnswerView.smoke.js +164 -0
  85. package/cypress/e2e/ILC/NumberLineLabel/previewContentsForAllViews.smoke.js +120 -0
  86. package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
  87. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +49 -1
  88. package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +1 -1
  89. package/cypress/e2e/ILC/SingleSelectionGridNew/studentViewSettings.js +1 -1
  90. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +2 -2
  91. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -1
  92. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -1
  93. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -1
  94. package/cypress/e2e/ILC/TextSelection/Scoring/basicScoringForAllTextSelectionTypes.smoke.js +0 -1
  95. package/cypress/e2e/ILC/TextSelection/additionalSettings.js +125 -0
  96. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +0 -1
  97. package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +1 -2
  98. package/cypress/e2e/ILC/TextSelection/editTabScoringSection.js +5 -4
  99. package/cypress/e2e/ILC/TextSelection/headerSection.js +73 -0
  100. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +6 -7
  101. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +179 -0
  102. package/cypress/e2e/ILC/TextSelection/specifyCorrectAnswerSection.js +89 -0
  103. package/cypress/e2e/ILC/TextSelection/studentViewSettings.js +436 -0
  104. package/cypress/e2e/ILC/TextSelection/styleAndLayoutCustomizationAccordion.js +277 -0
  105. package/cypress/e2e/ILC/TextSelection/textSelectionModesInPreviewTab.js +222 -0
  106. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyCorrectAnswerSection.js +260 -0
  107. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +380 -0
  108. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +5 -5
  109. package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +3 -3
  110. package/cypress/fixtures/constants.js +1 -1
  111. package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +20 -20
  112. package/cypress/fixtures/theme/ilc.json +20 -18
  113. package/cypress/pages/audioPlayerPage.js +274 -504
  114. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  115. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -3
  116. package/cypress/pages/components/autoScoredStudentViewSettings.js +5 -5
  117. package/cypress/pages/components/commonComponents.js +1 -0
  118. package/cypress/pages/components/draggableOptionContainer.js +1 -0
  119. package/cypress/pages/components/equationEditorFlyout.js +3 -2
  120. package/cypress/pages/components/essayResponseCommonComponents.js +8 -2
  121. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +1 -0
  122. package/cypress/pages/components/imageCanvasComponent.js +2 -1
  123. package/cypress/pages/components/index.js +3 -0
  124. package/cypress/pages/components/layoutSectionComponent.js +1191 -0
  125. package/cypress/pages/components/numberLineCommonComponent.js +36 -0
  126. package/cypress/pages/components/optionsWrapperComponent.js +13 -2
  127. package/cypress/pages/components/playbackControlsBaseComponent.js +20 -13
  128. package/cypress/pages/components/styleAndLayoutCustomizationAccordionComponent.js +46 -0
  129. package/cypress/pages/components/toolSettingsComponent.js +6 -0
  130. package/cypress/pages/contentBlocksPage.js +18 -2
  131. package/cypress/pages/createItemPage.js +75 -8
  132. package/cypress/pages/dialogBoxBase.js +2 -2
  133. package/cypress/pages/drawingResponsePage.js +24 -4
  134. package/cypress/pages/feedbackScalePage.js +3 -0
  135. package/cypress/pages/graphingPage.js +19 -1
  136. package/cypress/pages/gridFillPage.js +25 -8
  137. package/cypress/pages/index.js +2 -1
  138. package/cypress/pages/itemPreviewSettingsPage.js +4 -0
  139. package/cypress/pages/listOrderingPage.js +435 -557
  140. package/cypress/pages/matchingPage.js +1 -1
  141. package/cypress/pages/multipleSelectionPage.js +23 -1
  142. package/cypress/pages/numberLineLabelPage.js +333 -0
  143. package/cypress/pages/numberLinePage.js +1370 -132
  144. package/cypress/pages/rulerPage.js +6 -2
  145. package/cypress/pages/textSelectionPage.js +461 -23
  146. package/package.json +1 -1
@@ -0,0 +1,288 @@
1
+ import { numberLineLabelPage, gradingViewPage, itemPreviewPage, studentViewPage, dialogBoxBase } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ const grepTags = Cypress.env('grepTags');
5
+ let correctAnswerViews = ['Question preview', 'Item preview', 'Grading view'];
6
+ const views = utilities.getViews(correctAnswerViews);
7
+ var itemReferenceID = "";
8
+ const range = 20.75;
9
+
10
+ describe('Create Item page - Number line label: All or nothing ', () => {
11
+ before(() => {
12
+ cy.loginAs('admin');
13
+ });
14
+
15
+ if (!grepTags || !grepTags.includes('smoke')) {
16
+ describe('Question preview modes: Student view and Grading view', () => {
17
+ abortEarlySetup();
18
+ before(() => {
19
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
20
+ cy.barsPreLoaderWait();
21
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
22
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
23
+ numberLineLabelPage.steps.addLabel();
24
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
25
+ numberLineLabelPage.steps.switchToPreviewTab();
26
+ });
27
+
28
+ numberLineLabelPage.tests.verifyPreviewModesAndScoreWhenPointsAndCorrectAnswersIsNotSet();
29
+
30
+ it('When the user sets correct answer responses and allots points, then the alloted points should be displayed in the preview tab', () => {
31
+ numberLineLabelPage.steps.switchToEditTab();
32
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
33
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
34
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
35
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
36
+ numberLineLabelPage.steps.allotPoints(20);
37
+ numberLineLabelPage.steps.switchToPreviewTab();
38
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
39
+ });
40
+
41
+ it('When the user attempts question in preview tab and switches to edit tab, then on re-switching to the preview tab, users response should not persist', () => {
42
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
43
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
44
+ numberLineLabelPage.steps.resetQuestionPreview();
45
+ utilities.verifyElementVisibilityState(numberLineLabelPage.numberLinePointPreviewTab(), 'notExist');
46
+ });
47
+ });
48
+ };
49
+
50
+ views.forEach((view) => {
51
+ describe(`Number line - label: All or nothing scoring - ${view}`, { tags: 'smoke' }, () => {
52
+ abortEarlySetup();
53
+ before(() => {
54
+ switch (view) {
55
+ case 'Question preview':
56
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
57
+ cy.barsPreLoaderWait();
58
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
59
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
60
+ numberLineLabelPage.steps.addLabel();
61
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
62
+ cy.wait(2000);
63
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
64
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
65
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
66
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
67
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
68
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
69
+ numberLineLabelPage.steps.allotPoints(20);
70
+ numberLineLabelPage.steps.switchToPreviewTab();
71
+ break;
72
+ case 'Item preview':
73
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
74
+ itemPreviewPage.steps.switchToPreviewTab();
75
+ break;
76
+ case 'Grading view':
77
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
78
+ break;
79
+ }
80
+ });
81
+
82
+ beforeEach(() => {
83
+ switch (view) {
84
+ case 'Question preview':
85
+ numberLineLabelPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
86
+ numberLineLabelPage.steps.resetQuestionPreview();
87
+ break;
88
+ case 'Item preview':
89
+ itemPreviewPage.steps.switchToStudentView();
90
+ itemPreviewPage.steps.resetQuestionPreview();
91
+ break;
92
+ case 'Grading view':
93
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
94
+ break;
95
+ }
96
+ });
97
+
98
+ if (view === 'Question preview') {
99
+ after(() => {
100
+ numberLineLabelPage.steps.clickOnSaveQuestionButton();
101
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
102
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
103
+ });
104
+ };
105
+
106
+ it('When the user selects \'Grading\' view without attempting the question, the correct answer should be displayed in the correct answer section graph and your answer is incorrect status message should be displayed', () => {
107
+ if (view === 'Grading view') {
108
+ studentViewPage.steps.submitResponse();
109
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
110
+ studentViewPage.steps.clickOnGoToGradingViewButton();
111
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
112
+ } else {
113
+ numberLineLabelPage.steps.switchToGradingView();
114
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
115
+ }
116
+ utilities.verifyElementVisibilityState(numberLineLabelPage.numberLinePointPreviewTab(), 'notExist');
117
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
118
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
119
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
120
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
121
+ });
122
+
123
+ it('When the user attempts the question incorrectly then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed incorrect and the the correct answers should be displayed in the correct answer section graph', () => {
124
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 0);
125
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
126
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, 4);
127
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [4]);
128
+ if (view === 'Grading view') {
129
+ studentViewPage.steps.submitResponse();
130
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
131
+ studentViewPage.steps.clickOnGoToGradingViewButton();
132
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
133
+ } else {
134
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
135
+ numberLineLabelPage.steps.switchToGradingView();
136
+ }
137
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 0);
138
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, 4);
139
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
140
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
141
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
142
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
143
+ });
144
+
145
+ it('When the user attempts the question partially correct then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed correct and the the correct answers should be displayed in the correct answer section graph', () => {
146
+ if (view === 'Grading view') {
147
+ studentViewPage.steps.clearResponses();
148
+ }
149
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
150
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
151
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
152
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
153
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -8);
154
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-8]);
155
+ if (view === 'Grading view') {
156
+ studentViewPage.steps.submitResponse();
157
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
158
+ studentViewPage.steps.clickOnGoToGradingViewButton();
159
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
160
+ } else {
161
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
162
+ numberLineLabelPage.steps.switchToGradingView();
163
+ }
164
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, -8);
165
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
166
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
167
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
168
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
169
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
170
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
171
+ });
172
+
173
+ it('When the user attempts the question partially correct with an incorrect response then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph 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 graph', () => {
174
+ if (view === 'Grading view') {
175
+ studentViewPage.steps.clearResponses();
176
+ }
177
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
178
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
179
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
180
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
181
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -9);
182
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
183
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 2);
184
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [2]);
185
+ if (view === 'Grading view') {
186
+ studentViewPage.steps.submitResponse();
187
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
188
+ studentViewPage.steps.clickOnGoToGradingViewButton();
189
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
190
+ } else {
191
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
192
+ numberLineLabelPage.steps.switchToGradingView();
193
+ }
194
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 2);
195
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
196
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
197
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
198
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
199
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
200
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
201
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
202
+ });
203
+
204
+ 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 and the correct answer section graph should not be displayed', () => {
205
+ if (view === 'Grading view') {
206
+ studentViewPage.steps.clearResponses();
207
+ }
208
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
209
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
210
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
211
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
212
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -9);
213
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
214
+ if (view === 'Grading view') {
215
+ studentViewPage.steps.submitResponse();
216
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
217
+ studentViewPage.steps.clickOnGoToGradingViewButton();
218
+ gradingViewPage.steps.verifyGradingViewScore(20, 20);
219
+ } else {
220
+ numberLineLabelPage.steps.verifyPreviewScore(20, 20);
221
+ numberLineLabelPage.steps.switchToGradingView();
222
+ }
223
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
224
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
225
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
226
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
227
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
228
+ });
229
+ });
230
+ });
231
+
232
+ if (!grepTags || !grepTags.includes('smoke')) {
233
+ describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
234
+ abortEarlySetup();
235
+ before(() => {
236
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
237
+ cy.barsPreLoaderWait();
238
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
239
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
240
+ numberLineLabelPage.steps.addLabel();
241
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
242
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
243
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
244
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
245
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
246
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
247
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
248
+ numberLineLabelPage.steps.allotPoints(20);
249
+ });
250
+
251
+ it('When the user selects \'Award minimum score\' from the minimum scoring dropdown, does not attempt the question and switches to grading view, then the user should be awarded with minimum points', () => {
252
+ numberLineLabelPage.steps.expandMinimumScoringDropdown();
253
+ numberLineLabelPage.steps.selectOptionFromMinimumScoringDropdown('Award minimum score');
254
+ numberLineLabelPage.steps.allotMinimumPoints(2);
255
+ numberLineLabelPage.steps.switchToPreviewTab();
256
+ numberLineLabelPage.steps.switchToGradingView();
257
+ numberLineLabelPage.steps.verifyPreviewScore(2, 20);
258
+ numberLineLabelPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
259
+ });
260
+
261
+ it('When the user has selected \'Award minimum score\' from the minimum scoring dropdown, attempts the question incorrectly and switches to grading view, the user should be awarded with minimum points', () => {
262
+ numberLineLabelPage.steps.resetQuestionPreview();
263
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 0);
264
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
265
+ numberLineLabelPage.steps.verifyPreviewScore(2, 20);
266
+ numberLineLabelPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
267
+ });
268
+
269
+ it('When the user selects \'Award minimum score only if attempted\' from the minimum scoring dropdown, does not attempt the question and switches to grading view, then the user should be awarded with 0 points', () => {
270
+ numberLineLabelPage.steps.switchToEditTab();
271
+ numberLineLabelPage.steps.expandMinimumScoringDropdown();
272
+ numberLineLabelPage.steps.selectOptionFromMinimumScoringDropdown('Award minimum score only if attempted');
273
+ numberLineLabelPage.steps.allotMinimumPoints(2);
274
+ numberLineLabelPage.steps.switchToPreviewTab();
275
+ numberLineLabelPage.steps.switchToGradingView();
276
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
277
+ numberLineLabelPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
278
+ });
279
+
280
+ it('When the user has selected \'Award minimum score\' from the minimum scoring dropdown, attempts the question incorrectly and switches to grading view, the user should be awarded with minimum points', () => {
281
+ numberLineLabelPage.steps.resetQuestionPreview();
282
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 0);
283
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
284
+ numberLineLabelPage.steps.verifyPreviewScore(2, 20);
285
+ });
286
+ });
287
+ };
288
+ });
@@ -0,0 +1,153 @@
1
+ import { numberLineLabelPage, itemPreviewPage, studentViewPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ const checkAnswerViews = ['Question preview', 'Item preview', 'Student view'];
5
+ const views = utilities.getViews(checkAnswerViews);
6
+ var itemReferenceID = "";
7
+ const range = 20.75;
8
+
9
+ describe('Create item page - Number line - Check answer functionality', () => {
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ });
13
+
14
+ views.forEach((view) => {
15
+ //Note: Remove after https://redmine.zeuslearning.com/issues/549542 is fixed
16
+ const checkAnswer = (view) => {
17
+ switch (view) {
18
+ case 'Question preview':
19
+ case 'Item preview':
20
+ numberLineLabelPage.steps.checkAnswer();
21
+ break;
22
+ case 'Student view':
23
+ studentViewPage.steps.checkAnswer();
24
+ break;
25
+ default:
26
+ throw new Error(`Unsupported page identifier: ${view}`);
27
+ }
28
+ };
29
+
30
+ describe(`${view} - Check answer functionality`, { tags: 'smoke' }, () => {
31
+ abortEarlySetup();
32
+ before(() => {
33
+ switch (view) {
34
+ case 'Question preview':
35
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
36
+ cy.barsPreLoaderWait();
37
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
38
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
39
+ numberLineLabelPage.steps.addLabel();
40
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
41
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
42
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
43
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
44
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
45
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
46
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
47
+ numberLineLabelPage.steps.allotPoints(20);
48
+ numberLineLabelPage.steps.checkAllowStudentToCheckAnswerCheckbox();
49
+ numberLineLabelPage.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
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
65
+ numberLineLabelPage.steps.resetQuestionPreview();
66
+ break;
67
+ case 'Item preview':
68
+ numberLineLabelPage.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
+ numberLineLabelPage.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
+ numberLineLabelPage.steps.verifyPointsNotExistOnNumberLinePreviewTab(range, [0, 9, -9])
88
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
89
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
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
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 0);
94
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
95
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, 4);
96
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [4]);
97
+ checkAnswer(view);
98
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 0);
99
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, 4);
100
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect')
101
+ numberLineLabelPage.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
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
106
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
107
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
108
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
109
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -8);
110
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-8]);
111
+ checkAnswer(view);
112
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, -8);
113
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
114
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
115
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect')
116
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
117
+ });
118
+
119
+ 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', () => {
120
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
121
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
122
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
123
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
124
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -9);
125
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
126
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 2);
127
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [2]);
128
+ checkAnswer(view);
129
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 2);
130
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
131
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
132
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
133
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect')
134
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
135
+ });
136
+
137
+ 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', () => {
138
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
139
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
140
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
141
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
142
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -9);
143
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
144
+ checkAnswer(view);
145
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
146
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
147
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
148
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
149
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
150
+ });
151
+ });
152
+ });
153
+ });
@@ -0,0 +1,164 @@
1
+ import { numberLineLabelPage, 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 views = utilities.getViews(gradingAndCorrectAnsView);
7
+ var itemReferenceID = "";
8
+ const css = Cypress.env('css');
9
+ const range = 20.75;
10
+
11
+ describe('Create item page - Graphing: Grading view, Correct answer view contents', () => {
12
+ before(() => {
13
+ cy.loginAs('admin');
14
+ });
15
+
16
+ if (views.includes('Grading view')) {
17
+ describe('Grading view contents', { tags: 'smoke' }, () => {
18
+ abortEarlySetup();
19
+ before(() => {
20
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
21
+ cy.barsPreLoaderWait();
22
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
23
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
24
+ numberLineLabelPage.steps.addLabel();
25
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
26
+ cy.wait(2000);
27
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
28
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
29
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
30
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
31
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
32
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
33
+ numberLineLabelPage.steps.allotPoints(10);
34
+ numberLineLabelPage.steps.clickOnSaveQuestionButton();
35
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
36
+ //Global variable issue, not working inside before
37
+ itemPreviewPage.referenceID()
38
+ .invoke('text')
39
+ .then(($refID) => {
40
+ itemReferenceID = $refID;
41
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
42
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
43
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
44
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
45
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
46
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -8);
47
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-8]);
48
+ studentViewPage.steps.submitResponse();
49
+ studentViewPage.steps.clickOnGoToGradingViewButton();
50
+ });
51
+ });
52
+
53
+ it('Question instructions should be visible', () => {
54
+ utilities.verifyInnerText(numberLineLabelPage.questionInstructionsText(), 'Plot labels on the number line');
55
+ utilities.verifyElementVisibilityState(numberLineLabelPage.questionInstructionsText(), 'visible');
56
+ });
57
+
58
+ it('Correct answer label should be displayed', () => {
59
+ utilities.verifyInnerText(numberLineLabelPage.correctAnswersLabel(), 'Correct answers');
60
+ utilities.verifyElementVisibilityState(numberLineLabelPage.correctAnswersLabel(), 'visible');
61
+ });
62
+
63
+ it('Correct answer along with number line attempted by the user should be displayed in the correct answer section', () => {
64
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, -8);
65
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
66
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
67
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
68
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
69
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
70
+ });
71
+
72
+ it('The unattempted labels should be displayed in disabled state', () => {
73
+ numberLineLabelPage.steps.verifyLabelIsDisabledForGradingView('Label 4')
74
+ });
75
+
76
+ it('Points and the total score should be displayed', () => {
77
+ gradingViewPage.steps.verifyGradingViewScore(0, 10);
78
+ });
79
+
80
+ it('CSS of grading view', { tags: 'css' }, () => {
81
+ utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.numberLinePointPreviewTab(), 0), {
82
+ 'stroke': css.color.correctAnswer
83
+ });
84
+ utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.numberLinePointPreviewTab(), 2), {
85
+ 'stroke': css.color.incorrectAnswer
86
+ });
87
+ utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.numberLinePointCorrectAnswerSection(), 0), {
88
+ 'stroke': css.color.correctAnswer
89
+ });
90
+ utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.draggableLabelsPreviewTab(), 0), {
91
+ 'border': `1px solid ${css.color.correctAnswer}`,
92
+ 'color': css.color.text
93
+ });
94
+ utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.draggableLabelsPreviewTab(), 2), {
95
+ 'border': `1px solid ${css.color.incorrectAnswer}`,
96
+ 'color': css.color.text
97
+ });
98
+ });
99
+
100
+ it('Accessibility of grading view', { tags: 'a11y' }, () => {
101
+ cy.checkAccessibility(numberLineLabelPage.numberLinePreviewTab().parents('[class*="question-preview-wrapper"]'));
102
+ });
103
+ });
104
+ }
105
+
106
+ if (views.includes('Correct answer view')) {
107
+ describe('Correct answer view contents', { tags: 'smoke' }, () => {
108
+ abortEarlySetup();
109
+ before(() => {
110
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
111
+ cy.barsPreLoaderWait();
112
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
113
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
114
+ numberLineLabelPage.steps.addLabel();
115
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
116
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
117
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
118
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
119
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
120
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
121
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
122
+ numberLineLabelPage.steps.allotPoints(10);
123
+ numberLineLabelPage.steps.clickOnSaveQuestionButton();
124
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
125
+ //Global variable issue, not working inside before
126
+ itemPreviewPage.referenceID()
127
+ .invoke('text')
128
+ .then(($refID) => {
129
+ itemReferenceID = $refID
130
+ cy.visit(`/item-engine/demo/render-item/correct-answer-view/${utilities.base64Encoding(itemReferenceID)}`);
131
+ });
132
+ });
133
+
134
+ it('Question instructions should be visible', () => {
135
+ utilities.verifyInnerText(numberLineLabelPage.questionInstructionsText(), 'Plot labels on the number line');
136
+ utilities.verifyElementVisibilityState(numberLineLabelPage.questionInstructionsText(), 'visible');
137
+ });
138
+
139
+ it('The correct answer set by user should be displayed in the correct answer view', () => {
140
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
141
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
142
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
143
+ });
144
+
145
+ it('The points alloted to the question should be displayed', () => {
146
+ correctAnswerViewPage.steps.verifyAvailablePoints(10);
147
+ });
148
+
149
+ it('CSS of correct answer section', { tags: 'css' }, () => {
150
+ utilities.verifyCSS(numberLineLabelPage.numberLinePointPreviewTab(), {
151
+ 'stroke': css.color.correctAnswer
152
+ });
153
+ utilities.verifyCSS(numberLineLabelPage.draggableLabelsPreviewTab(), {
154
+ 'border': `1px solid ${css.color.correctAnswer}`,
155
+ 'color': css.color.text
156
+ });
157
+ });
158
+
159
+ it('Accessibility of correct answer section', { tags: 'a11y' }, () => {
160
+ cy.checkAccessibility(numberLineLabelPage.numberLinePreviewTab().parents('[class*="question-preview-wrapper"]'));
161
+ });
162
+ });
163
+ }
164
+ });