itemengine-cypress-automation 1.0.189 → 1.0.190-7thMayFixes-fcaf7b8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/cypress/e2e/ILC/AudioPlayerNew/allSupportedFileTypes.js +2 -0
  2. package/cypress/e2e/ILC/AudioPlayerNew/barAudioPlayerStyle.js +3 -30
  3. package/cypress/e2e/ILC/AudioPlayerNew/compactAudioPlayerStyle.js +0 -27
  4. package/cypress/e2e/ILC/AudioPlayerNew/customizePlayerLayoutSettings.js +9 -9
  5. package/cypress/e2e/ILC/AudioPlayerNew/standardAudioPlayerStyle.js +12 -12
  6. package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +1 -1
  7. package/cypress/e2e/ILC/AudioResponseNew/editAndPreviewTabScoringSection.js +1 -1
  8. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +1 -0
  9. package/cypress/e2e/ILC/AudioResponseNew/headerSection.js +4 -20
  10. package/cypress/e2e/ILC/ChartsBar/allOrNothingScoringForAllViews.smoke.js +366 -0
  11. package/cypress/e2e/ILC/ChartsBar/checkAnswerFunctionalityForAllViews.smoke.js +181 -0
  12. package/cypress/e2e/ILC/ChartsBar/gradingViewAndCorrectAnswerView.smoke.js +283 -0
  13. package/cypress/e2e/ILC/ChartsBar/previewContentsForAllViews.smoke.js +396 -130
  14. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/additionalSettingsBasic.js +1 -1
  15. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +2 -2
  16. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +0 -3
  17. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +3 -5
  18. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +0 -4
  19. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabScoring.js +0 -1
  20. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePageHeaderSection.js +4 -24
  21. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +0 -9
  22. package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +3 -3
  23. package/cypress/e2e/ILC/EssayResponse/essayResponseSpecialCharacters.js +0 -2
  24. package/cypress/e2e/ILC/EssayResponse/headerSection.js +3 -18
  25. package/cypress/e2e/ILC/EssayResponse/previewHyperlink.js +0 -1
  26. package/cypress/e2e/ILC/EssayResponseMath/mathCharacters.js +0 -1
  27. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +0 -5
  28. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +0 -4
  29. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +3 -3
  30. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +5 -5
  31. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +3 -3
  32. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +0 -4
  33. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +1 -2
  34. package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +0 -2
  35. package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +2 -1
  36. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +6 -6
  37. package/cypress/e2e/ILC/GridFill/headerSection.js +4 -5
  38. package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +276 -0
  39. package/cypress/e2e/ILC/ImageHighlight/checkAnswerFunctionalityForAllViews.smoke.js +141 -0
  40. package/cypress/e2e/ILC/ImageHighlight/previewContentsForAllViews.smoke.js +150 -0
  41. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  42. package/cypress/e2e/ILC/ListOrderingDropdown/checkAnswerFunctionalityForAllViews.smoke.js +1 -1
  43. package/cypress/e2e/ILC/Matching/additionalSettings.js +1 -0
  44. package/cypress/e2e/ILC/Matching/headerSection.js +2 -2
  45. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +22 -20
  46. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +4 -2
  47. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +4 -2
  48. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +3 -2
  49. package/cypress/e2e/ILC/NumberLine/checkAnswerFunctionalityForAllViews.smoke.js +2 -1
  50. package/cypress/e2e/ILC/NumberLine/editTabScoringSection.js +1 -8
  51. package/cypress/e2e/ILC/NumberLine/headerSection.js +3 -3
  52. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +1 -1
  53. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +5 -4
  54. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +4 -2
  55. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +4 -2
  56. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +4 -2
  57. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +2 -1
  58. package/cypress/e2e/ILC/NumberLineLabel/checkAnswerFunctionalityForAllViews.smoke.js +3 -2
  59. package/cypress/e2e/ILC/ShortTextResponseNew/editTabScoringSection.js +1 -1
  60. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +1 -7
  61. package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +0 -1
  62. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.js +2 -2
  63. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +3 -3
  64. package/cypress/e2e/ILC/VideoResponseNew/customizePlaybackControls.js +2 -2
  65. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +2 -2
  66. package/cypress/e2e/ILC/VideoResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +6 -6
  67. package/cypress/e2e/ILC/VideoResponseNew/previewContentsForAllViews.smoke.js +6 -6
  68. package/cypress/e2e/ILC/VideoResponseNew/standardRecorderStyle.js +9 -9
  69. package/cypress/e2e/ILC/VideoResponseNew/studentViewSettings.js +2 -4
  70. package/cypress/pages/audioPlayerPage.js +4 -2
  71. package/cypress/pages/audioResponsePage.js +2 -0
  72. package/cypress/pages/chartsBarPage.js +289 -3
  73. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +8 -5
  74. package/cypress/pages/components/autoScoredStudentViewSettings.js +1 -1
  75. package/cypress/pages/components/barAndLineChartComponent.js +7 -4
  76. package/cypress/pages/components/chartsCommonComponent.js +33 -0
  77. package/cypress/pages/components/imageCanvasComponent.js +3 -3
  78. package/cypress/pages/components/index.js +2 -1
  79. package/cypress/pages/components/questionInputFieldComponent.js +2 -1
  80. package/cypress/pages/components/resetPopupComponent.js +7 -3
  81. package/cypress/pages/components/scoringSectionBaseEditTab.js +6 -17
  82. package/cypress/pages/components/singleMultipleSelectionModeComponent.js +16 -0
  83. package/cypress/pages/contentBlocksPage.js +1 -1
  84. package/cypress/pages/dragAndDropIntoCategoriesPage.js +22 -24
  85. package/cypress/pages/drawingResponsePage.js +3 -2
  86. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +14 -0
  87. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  88. package/cypress/pages/imageHighlightPage.js +364 -0
  89. package/cypress/pages/index.js +2 -1
  90. package/cypress/pages/matchingPage.js +2 -1
  91. package/cypress/pages/numberLineLabelPage.js +14 -7
  92. package/cypress/pages/protractorPage.js +1 -1
  93. package/cypress/pages/readingRulerPage.js +1 -1
  94. package/cypress/pages/rulerPage.js +3 -3
  95. package/cypress/pages/textEntryMathPage.js +2 -2
  96. package/cypress/pages/videoResponsePage.js +6 -5
  97. package/package.json +1 -1
  98. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +0 -432
  99. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +0 -134
@@ -0,0 +1,366 @@
1
+ import { dialogBoxBase, chartsBarPage, gradingViewPage, itemPreviewPage, studentViewPage } 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
+
9
+ describe('Create item page - Charts - Bar: All or nothing ', () => {
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ });
13
+
14
+ if (!grepTags || !grepTags.includes('smoke')) {
15
+ describe('Question preview modes: Student view and Grading view', () => {
16
+ abortEarlySetup();
17
+ before(() => {
18
+ chartsBarPage.steps.navigateToCreateQuestion('charts');
19
+ cy.barsPreLoaderWait();
20
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 0, value: 1, range: 10 });
21
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 1, value: 2, range: 10 });
22
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 2, value: 3, range: 10 });
23
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 3, value: 4, range: 10 });
24
+ chartsBarPage.steps.switchToPreviewTab();
25
+ });
26
+
27
+ chartsBarPage.tests.verifyPreviewModesAndScoreWhenPointsAndCorrectAnswersIsNotSet();
28
+
29
+ it('When the user sets correct answer responses and allots points, then the alloted points should be displayed in the preview tab', () => {
30
+ chartsBarPage.steps.switchToEditTab();
31
+ chartsBarPage.steps.allotPoints(20);
32
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 0, value: 2, range: 10 });
33
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 1, value: 5, range: 10 });
34
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 2, value: 1, range: 10 });
35
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 3, value: 8, range: 10 });
36
+ chartsBarPage.steps.switchToPreviewTab();
37
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
38
+ });
39
+
40
+ 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', () => {
41
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 0, value: 7, range: 10 });
42
+ chartsBarPage.steps.resetQuestionPreview();
43
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 0, barValue: 1, range: 10 });
44
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 1, barValue: 2, range: 10 });
45
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 2, barValue: 3, range: 10 });
46
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 3, barValue: 4, range: 10 });
47
+ });
48
+ });
49
+ };
50
+
51
+ views.forEach((view) => {
52
+ describe(`Charts - Bar: All or nothing scoring - ${view}`, { tags: 'smoke' }, () => {
53
+ abortEarlySetup();
54
+ before(() => {
55
+ switch (view) {
56
+ case 'Question preview':
57
+ chartsBarPage.steps.navigateToCreateQuestion('charts');
58
+ cy.barsPreLoaderWait();
59
+ chartsBarPage.steps.addTextInQuestionInstructionsInputField('Set the bar on the chart for the profits of the years');
60
+ chartsBarPage.steps.addBarOrPointInChartInSelectChartTypeSection();
61
+ chartsBarPage.steps.addBarOrPointInChartInSelectChartTypeSection();
62
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 0, value: 3, range: 10 });
63
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 1, value: 2, range: 10 });
64
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 3, value: 3, range: 10 });
65
+ chartsBarPage.steps.lockBar(1);
66
+ chartsBarPage.steps.allotPoints(20);
67
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 0, value: 3, range: 10 });
68
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 2, value: 6, range: 10 });
69
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 3, value: 5, range: 10 });
70
+ chartsBarPage.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
+ chartsBarPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
86
+ chartsBarPage.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
+ chartsBarPage.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
+ chartsBarPage.steps.switchToGradingView();
114
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
115
+ }
116
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
117
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
118
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
119
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
120
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
121
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 0, barValue: 3, range: 10 });
122
+ chartsBarPage.steps.verifyLockedBarInCorrectAnswerSection({ barIndex: 1, barValue: 2, range: 10 });
123
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 2, barValue: 6, range: 10 });
124
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 3, barValue: 5, range: 10 });
125
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 4, barValue: 0, range: 10 });
126
+ });
127
+
128
+ //Fully incorrect case
129
+ it('When the user incorrectly sets a bar which was correct by default, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed, incorrect icons should be displayed on the incorrectly attempted bars and correct answer section should be displayed with the correct answers', () => {
130
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 0, value: 5, range: 10 });
131
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 4, value: 2, range: 10 });
132
+ if (view === 'Grading view') {
133
+ studentViewPage.steps.submitResponse();
134
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
135
+ studentViewPage.steps.clickOnGoToGradingViewButton();
136
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
137
+ } else {
138
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
139
+ chartsBarPage.steps.switchToGradingView();
140
+ }
141
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'incorrect');
142
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
143
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
144
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
145
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'incorrect');
146
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
147
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 0, barValue: 3, range: 10 });
148
+ chartsBarPage.steps.verifyLockedBarInCorrectAnswerSection({ barIndex: 1, barValue: 2, range: 10 });
149
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 2, barValue: 6, range: 10 });
150
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 3, barValue: 5, range: 10 });
151
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 4, barValue: 0, range: 10 });
152
+ });
153
+
154
+ //Partially correct cases
155
+ it('When the user incorrectly sets a bar which was set to 0 and correct by default, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed, incorrect icons should be displayed on the incorrectly attempted bars and correct answer section should be displayed with the correct answers', () => {
156
+ if (view === 'Grading view') {
157
+ studentViewPage.steps.clearResponses();
158
+ }
159
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 4, value: 5, range: 10 });
160
+ if (view === 'Grading view') {
161
+ studentViewPage.steps.submitResponse();
162
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
163
+ studentViewPage.steps.clickOnGoToGradingViewButton();
164
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
165
+ } else {
166
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
167
+ chartsBarPage.steps.switchToGradingView();
168
+ }
169
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
170
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
171
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
172
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
173
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'incorrect');
174
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
175
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 0, barValue: 3, range: 10 });
176
+ chartsBarPage.steps.verifyLockedBarInCorrectAnswerSection({ barIndex: 1, barValue: 2, range: 10 });
177
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 2, barValue: 6, range: 10 });
178
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 3, barValue: 5, range: 10 });
179
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 4, barValue: 0, range: 10 });
180
+ });
181
+
182
+ it('When the user attempts the question partially correct by incorrectly setting a bar which was incorrect by default, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars and correct answer section should be displayed with the correct answers', () => {
183
+ if (view === 'Grading view') {
184
+ studentViewPage.steps.clearResponses();
185
+ }
186
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 2, range: 10 });
187
+ if (view === 'Grading view') {
188
+ studentViewPage.steps.submitResponse();
189
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
190
+ studentViewPage.steps.clickOnGoToGradingViewButton();
191
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
192
+ } else {
193
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
194
+ chartsBarPage.steps.switchToGradingView();
195
+ }
196
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
197
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
198
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
199
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
200
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
201
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
202
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 0, barValue: 3, range: 10 });
203
+ chartsBarPage.steps.verifyLockedBarInCorrectAnswerSection({ barIndex: 1, barValue: 2, range: 10 });
204
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 2, barValue: 6, range: 10 });
205
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 3, barValue: 5, range: 10 });
206
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 4, barValue: 0, range: 10 });
207
+ });
208
+
209
+ it('When the user attempts the question partially correct by incorrectly setting a bar to zero which was incorrect by default, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars and correct answer section should be displayed with the correct answers', () => {
210
+ if (view === 'Grading view') {
211
+ studentViewPage.steps.clearResponses();
212
+ }
213
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 0, range: 10 });
214
+ if (view === 'Grading view') {
215
+ studentViewPage.steps.submitResponse();
216
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
217
+ studentViewPage.steps.clickOnGoToGradingViewButton();
218
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
219
+ } else {
220
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
221
+ chartsBarPage.steps.switchToGradingView();
222
+ }
223
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
224
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
225
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
226
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
227
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
228
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
229
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 0, barValue: 3, range: 10 });
230
+ chartsBarPage.steps.verifyLockedBarInCorrectAnswerSection({ barIndex: 1, barValue: 2, range: 10 });
231
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 2, barValue: 6, range: 10 });
232
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 3, barValue: 5, range: 10 });
233
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 4, barValue: 0, range: 10 });
234
+ });
235
+
236
+ it('When the user attempts the question partially correct by incorrectly setting a bar which was set to zero by default, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars and correct answer section should be displayed with the correct answers', () => {
237
+ if (view === 'Grading view') {
238
+ studentViewPage.steps.clearResponses();
239
+ }
240
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 2, value: 9, range: 10 });
241
+ if (view === 'Grading view') {
242
+ studentViewPage.steps.submitResponse();
243
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
244
+ studentViewPage.steps.clickOnGoToGradingViewButton();
245
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
246
+ } else {
247
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
248
+ chartsBarPage.steps.switchToGradingView();
249
+ }
250
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
251
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
252
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
253
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
254
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
255
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
256
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 0, barValue: 3, range: 10 });
257
+ chartsBarPage.steps.verifyLockedBarInCorrectAnswerSection({ barIndex: 1, barValue: 2, range: 10 });
258
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 2, barValue: 6, range: 10 });
259
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 3, barValue: 5, range: 10 });
260
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 4, barValue: 0, range: 10 });
261
+ });
262
+
263
+ it('When the user attempts the question partially correct by setting all bars correctly except 1 then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars and incorrect icons should be displayed on the incorrectly attempted bars and correct answer section should be displayed with the correct answers', () => {
264
+ if (view === 'Grading view') {
265
+ studentViewPage.steps.clearResponses();
266
+ }
267
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 5, range: 10 });
268
+ if (view === 'Grading view') {
269
+ studentViewPage.steps.submitResponse();
270
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
271
+ studentViewPage.steps.clickOnGoToGradingViewButton();
272
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
273
+ } else {
274
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
275
+ chartsBarPage.steps.switchToGradingView();
276
+ }
277
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
278
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
279
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
280
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'correct');
281
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
282
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
283
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 0, barValue: 3, range: 10 });
284
+ chartsBarPage.steps.verifyLockedBarInCorrectAnswerSection({ barIndex: 1, barValue: 2, range: 10 });
285
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 2, barValue: 6, range: 10 });
286
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 3, barValue: 5, range: 10 });
287
+ chartsBarPage.steps.verifyBarInCorrectAnswerSection({ barIndex: 4, barValue: 0, range: 10 });
288
+ });
289
+
290
+ //Fully correct
291
+ 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, correct icons should be displayed on the correctly attempted bars and the correct answer section graph should not be displayed', () => {
292
+ if (view === 'Grading view') {
293
+ studentViewPage.steps.clearResponses();
294
+ }
295
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 2, value: 6, range: 10 });
296
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 5, range: 10 });
297
+ if (view === 'Grading view') {
298
+ studentViewPage.steps.submitResponse();
299
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
300
+ studentViewPage.steps.clickOnGoToGradingViewButton();
301
+ gradingViewPage.steps.verifyGradingViewScore(20, 20);
302
+ } else {
303
+ chartsBarPage.steps.verifyPreviewScore(20, 20);
304
+ chartsBarPage.steps.switchToGradingView();
305
+ }
306
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
307
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
308
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'correct');
309
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'correct');
310
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
311
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
312
+ chartsBarPage.steps.verifyCorrectAnswerSectionNotExist();
313
+ });
314
+ });
315
+ });
316
+
317
+ if (!grepTags || !grepTags.includes('smoke')) {
318
+ describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
319
+ abortEarlySetup();
320
+ before(() => {
321
+ chartsBarPage.steps.navigateToCreateQuestion('charts');
322
+ cy.barsPreLoaderWait();
323
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 0, value: 1, range: 10 });
324
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 1, value: 2, range: 10 });
325
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 2, value: 3, range: 10 });
326
+ chartsBarPage.steps.allotPoints(20);
327
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 0, value: 4, range: 10 });
328
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 1, value: 5, range: 10 });
329
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 2, value: 6, range: 10 });
330
+ });
331
+
332
+ 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', () => {
333
+ chartsBarPage.steps.expandMinimumScoringDropdown();
334
+ chartsBarPage.steps.selectOptionFromMinimumScoringDropdown('Award minimum score');
335
+ chartsBarPage.steps.allotMinimumPoints(2);
336
+ chartsBarPage.steps.switchToPreviewTab();
337
+ chartsBarPage.steps.switchToGradingView();
338
+ chartsBarPage.steps.verifyPreviewScore(2, 20);
339
+ chartsBarPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
340
+ });
341
+
342
+ 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', () => {
343
+ chartsBarPage.steps.resetQuestionPreview();
344
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 0, value: 2, range: 10 });
345
+ chartsBarPage.steps.verifyPreviewScore(2, 20);
346
+ chartsBarPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
347
+ });
348
+
349
+ 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', () => {
350
+ chartsBarPage.steps.switchToEditTab();
351
+ chartsBarPage.steps.expandMinimumScoringDropdown();
352
+ chartsBarPage.steps.selectOptionFromMinimumScoringDropdown('Award minimum score only if attempted');
353
+ chartsBarPage.steps.allotMinimumPoints(2);
354
+ chartsBarPage.steps.switchToPreviewTab();
355
+ chartsBarPage.steps.switchToGradingView();
356
+ chartsBarPage.steps.verifyPreviewScore(0, 20);
357
+ chartsBarPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
358
+ });
359
+
360
+ 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', () => {
361
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 0, value: 2, range: 10 });
362
+ chartsBarPage.steps.verifyPreviewScore(2, 20);
363
+ });
364
+ });
365
+ };
366
+ });
@@ -0,0 +1,181 @@
1
+ import { chartsBarPage, 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 views = utilities.getViews(checkAnswerViews);
7
+
8
+ describe('Create item page - Chart - Bar:Check answer functionality', () => {
9
+ before(() => {
10
+ cy.loginAs('admin');
11
+ });
12
+
13
+ views.forEach((view) => {
14
+ //Note: Remove after https://redmine.zeuslearning.com/issues/549542 is fixed
15
+ const checkAnswer = (view) => {
16
+ switch (view) {
17
+ case 'Question preview':
18
+ case 'Item preview':
19
+ chartsBarPage.steps.checkAnswer();
20
+ break;
21
+ case 'Student view':
22
+ studentViewPage.steps.checkAnswer();
23
+ break;
24
+ default:
25
+ throw new Error(`Unsupported page identifier: ${view}`);
26
+ }
27
+ };
28
+
29
+ describe(`${view} - Check answer functionality`, { tags: 'smoke' }, () => {
30
+ abortEarlySetup();
31
+ before(() => {
32
+ switch (view) {
33
+ case 'Question preview':
34
+ chartsBarPage.steps.navigateToCreateQuestion('charts');
35
+ cy.barsPreLoaderWait();
36
+ chartsBarPage.steps.addTextInQuestionInstructionsInputField('Set the bar on the chart for the profits of the years');
37
+ chartsBarPage.steps.addBarOrPointInChartInSelectChartTypeSection();
38
+ chartsBarPage.steps.addBarOrPointInChartInSelectChartTypeSection();
39
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 0, value: 3, range: 10 });
40
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 1, value: 2, range: 10 });
41
+ chartsBarPage.steps.setBarValueInSelectChartTypeSection({ barIndex: 3, value: 3, range: 10 });
42
+ chartsBarPage.steps.lockBar(1);
43
+ chartsBarPage.steps.allotPoints(20);
44
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 0, value: 3, range: 10 });
45
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 2, value: 6, range: 10 });
46
+ chartsBarPage.steps.setBarValueInSpecifyCorrectAnswerSection({ barIndex: 3, value: 5, range: 10 });
47
+ chartsBarPage.steps.checkAllowStudentToCheckAnswerCheckbox();
48
+ chartsBarPage.steps.switchToPreviewTab();
49
+ break;
50
+ case 'Item preview':
51
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
52
+ itemPreviewPage.steps.switchToPreviewTab();
53
+ break;
54
+ case 'Student view':
55
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
56
+ break;
57
+ }
58
+ });
59
+
60
+ beforeEach(() => {
61
+ switch (view) {
62
+ case 'Question preview':
63
+ chartsBarPage.steps.verifyCorrectAnswerSectionNotExist();
64
+ chartsBarPage.steps.resetQuestionPreview();
65
+ break;
66
+ case 'Item preview':
67
+ chartsBarPage.steps.verifyCorrectAnswerSectionNotExist();
68
+ itemPreviewPage.steps.resetQuestionPreview();
69
+ break;
70
+ case 'Student view':
71
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
72
+ break;
73
+ }
74
+ });
75
+
76
+ if (view === 'Question preview') {
77
+ after(() => {
78
+ chartsBarPage.steps.clickOnSaveQuestionButton();
79
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
80
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
81
+ });
82
+ };
83
+
84
+ it('When the user selects check answer without attempting the question, \'Your answer is incorrect\' status message should be displayed, incorrect icons should be displayed on the unattempted bars, correct icons should be displayed on the bar which is correct by default and there should not be any changes on the displayed bar graph', () => {
85
+ checkAnswer(view);
86
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 0, barValue: 3, range: 10 });
87
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 1, barValue: 2, range: 10 });
88
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 2, barValue: 0, range: 10 });
89
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 3, barValue: 3, range: 10 });
90
+ chartsBarPage.steps.verifyBarHeightInPreviewTab({ barIndex: 4, barValue: 0, range: 10 });
91
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
92
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
93
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
94
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
95
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
96
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
97
+ });
98
+
99
+ //Fully incorrect case
100
+ it('When the user incorrectly sets a bar which was correct by default then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed and incorrect icons should be displayed on the incorrectly attempted bars', () => {
101
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 0, value: 5, range: 10 });
102
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 4, value: 2, range: 10 });
103
+ checkAnswer(view);
104
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'incorrect');
105
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
106
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
107
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
108
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'incorrect');
109
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
110
+ });
111
+
112
+ //Partially correct cases
113
+ it('When the user incorrectly sets a bar which was set to 0 and correct by default, then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars', () => {
114
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 4, value: 5, range: 10 });
115
+ checkAnswer(view);
116
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
117
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
118
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
119
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
120
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'incorrect');
121
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
122
+ });
123
+
124
+ it('When the user attempts the question partially correct by incorrectly setting a bar which was incorrect by default, then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars', () => {
125
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 2, range: 10 });
126
+ checkAnswer(view);
127
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
128
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
129
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
130
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
131
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
132
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
133
+ });
134
+
135
+ it('When the user attempts the question partially correct by incorrectly setting a bar to zero which was incorrect by default, then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars', () => {
136
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 0, range: 10 });
137
+ checkAnswer(view);
138
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
139
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
140
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
141
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
142
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
143
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
144
+ });
145
+
146
+ it('When the user attempts the question partially correct by incorrectly setting a bar which was set to zero by default, then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars', () => {
147
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 2, value: 9, range: 10 });
148
+ checkAnswer(view);
149
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
150
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
151
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
152
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'incorrect');
153
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
154
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
155
+ });
156
+
157
+ it('When the user attempts the question partially correct by setting all bars correctly except 1 then on clicking \'Check answer\' button \'Your answer is incorrect\' should be displayed, correct icons should be displayed on the correctly attempted bars, incorrect icons should be displayed on the incorrectly attempted bars', () => {
158
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 5, range: 10 });
159
+ checkAnswer(view);
160
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
161
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
162
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'incorrect');
163
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'correct');
164
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
165
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
166
+ });
167
+
168
+ it('When the user attempts the question correctly then on clicking \'Check answer\' button \'Your answer is correct\' should be displayed and correct icons should be displayed on the correctly attempted bars', () => {
169
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 2, value: 6, range: 10 });
170
+ chartsBarPage.steps.setBarValueInPreviewTab({ barIndex: 3, value: 5, range: 10 });
171
+ checkAnswer(view);
172
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(0, 'correct');
173
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconNotExistsInPreviewTab(1);
174
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(2, 'correct');
175
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(3, 'correct');
176
+ chartsBarPage.steps.verifyBarCorrectIncorrectIconInPreviewTab(4, 'correct');
177
+ chartsBarPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
178
+ });
179
+ });
180
+ });
181
+ });