itemengine-cypress-automation 1.0.180-essayResponseLazyLoadingFix-3170a00.0 → 1.0.181

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. package/cypress/e2e/ILC/AudioPlayerNew/previewContents.smoke.js +162 -0
  2. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +1 -1
  3. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +4 -5
  4. package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +64 -3
  5. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +1 -1
  6. package/cypress/e2e/ILC/FeedbackScaleNew/headerSection.js +29 -1
  7. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +2 -2
  8. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettings.js +1 -1
  9. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/studentViewSettings.js +1 -1
  10. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +1 -0
  11. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +2 -2
  12. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -1
  13. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/studentViewSettings.js +1 -1
  14. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +4 -4
  15. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  16. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +1 -1
  17. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +5 -5
  18. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +3 -4
  19. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  20. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +1 -0
  21. package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +1 -1
  22. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
  23. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +2 -2
  24. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +2 -2
  25. package/cypress/e2e/ILC/Graphing/addBackgroundShapesSection.js +2 -2
  26. package/cypress/e2e/ILC/Graphing/studentViewSettings.js +1 -1
  27. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +3 -3
  28. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +1 -1
  29. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +216 -0
  30. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +214 -0
  31. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +251 -0
  32. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingPenaltyScoring.js +52 -0
  33. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +243 -0
  34. package/cypress/e2e/ILC/ListOrderingNew/checkAnswerFunctionalityForAllViews.smoke.js +128 -0
  35. package/cypress/e2e/ILC/ListOrderingNew/previewContentsForAllViews.smoke.js +176 -0
  36. package/cypress/e2e/ILC/Matching/studentViewSettings.js +1 -1
  37. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +1 -0
  38. package/cypress/e2e/ILC/MultipleSelectionGridNew/studentViewSettings.js +1 -1
  39. package/cypress/e2e/ILC/NumberLine/LayoutSection.js +530 -0
  40. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +3 -3
  41. package/cypress/e2e/ILC/NumberLine/lineSettingsSection.js +119 -0
  42. package/cypress/e2e/ILC/NumberLine/numberLineSection.js +263 -0
  43. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +1 -1
  44. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +1 -1
  45. package/cypress/e2e/ILC/NumberLine/toolSettings.js +2 -1
  46. package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
  47. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +49 -1
  48. package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +1 -1
  49. package/cypress/e2e/ILC/SingleSelectionGridNew/studentViewSettings.js +1 -1
  50. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +2 -2
  51. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -1
  52. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -1
  53. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -1
  54. package/cypress/e2e/ILC/TextSelection/Scoring/basicScoringForAllTextSelectionTypes.smoke.js +0 -1
  55. package/cypress/e2e/ILC/TextSelection/additionalSettings.js +125 -0
  56. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +0 -1
  57. package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +0 -1
  58. package/cypress/e2e/ILC/TextSelection/editTabScoringSection.js +5 -4
  59. package/cypress/e2e/ILC/TextSelection/headerSection.js +73 -0
  60. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +2 -2
  61. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.smoke.js +179 -0
  62. package/cypress/e2e/ILC/TextSelection/specifyCorrectAnswerSection.js +89 -0
  63. package/cypress/e2e/ILC/TextSelection/studentViewSettings.js +436 -0
  64. package/cypress/e2e/ILC/TextSelection/styleAndLayoutCustomizationAccordion.js +277 -0
  65. package/cypress/e2e/ILC/TextSelection/textSelectionModesInPreviewTab.js +222 -0
  66. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyCorrectAnswerSection.js +260 -0
  67. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +380 -0
  68. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +5 -5
  69. package/cypress/fixtures/constants.js +1 -1
  70. package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +20 -20
  71. package/cypress/fixtures/theme/ilc.json +16 -16
  72. package/cypress/pages/audioPlayerPage.js +55 -543
  73. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  74. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -3
  75. package/cypress/pages/components/autoScoredStudentViewSettings.js +4 -4
  76. package/cypress/pages/components/commonComponents.js +1 -0
  77. package/cypress/pages/components/draggableOptionContainer.js +1 -0
  78. package/cypress/pages/components/equationEditorFlyout.js +3 -2
  79. package/cypress/pages/components/essayResponseCommonComponents.js +8 -2
  80. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +1 -0
  81. package/cypress/pages/components/imageCanvasComponent.js +2 -1
  82. package/cypress/pages/components/index.js +1 -0
  83. package/cypress/pages/components/optionsWrapperComponent.js +11 -0
  84. package/cypress/pages/components/styleAndLayoutCustomizationAccordionComponent.js +46 -0
  85. package/cypress/pages/components/toolSettingsComponent.js +6 -0
  86. package/cypress/pages/contentBlocksPage.js +2 -2
  87. package/cypress/pages/createItemPage.js +29 -0
  88. package/cypress/pages/dialogBoxBase.js +2 -2
  89. package/cypress/pages/drawingResponsePage.js +23 -4
  90. package/cypress/pages/feedbackScalePage.js +3 -0
  91. package/cypress/pages/graphingPage.js +18 -0
  92. package/cypress/pages/gridFillPage.js +18 -2
  93. package/cypress/pages/index.js +1 -1
  94. package/cypress/pages/itemPreviewSettingsPage.js +4 -0
  95. package/cypress/pages/listOrderingPage.js +122 -647
  96. package/cypress/pages/matchingPage.js +1 -1
  97. package/cypress/pages/multipleSelectionPage.js +23 -1
  98. package/cypress/pages/numberLinePage.js +1196 -59
  99. package/cypress/pages/rulerPage.js +6 -2
  100. package/cypress/pages/textSelectionPage.js +460 -22
  101. package/package.json +2 -2
  102. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +0 -432
  103. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +0 -134
@@ -0,0 +1,530 @@
1
+ import { numberLinePage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ const css = Cypress.env('css');
5
+
6
+ const range = 20.4472843;
7
+ const orientationToggleButton = ['Horizontal', 'Vertical'];
8
+ const labelCheckboxPairs = [
9
+ { getLabelElement: numberLinePage.showMinArrowLabel, label: 'Show min arrow', defaultChecked: false },
10
+ { getLabelElement: numberLinePage.showMaxArrowLabel, label: 'Show max arrow', defaultChecked: false },
11
+ { getLabelElement: numberLinePage.stackResponsesLabel, label: 'Stack responses', defaultChecked: false },
12
+ { getLabelElement: numberLinePage.staggerResponseLabel, label: 'Stagger response', defaultChecked: true },
13
+ { getLabelElement: numberLinePage.showLabelsLabel, label: 'Show labels', defaultChecked: true },
14
+ { getLabelElement: numberLinePage.showTicksLabel, label: 'Show ticks', defaultChecked: true },
15
+ { getLabelElement: numberLinePage.showMinLabel, label: 'Show min', defaultChecked: true },
16
+ { getLabelElement: numberLinePage.showMaxLabel, label: 'Show max', defaultChecked: true },
17
+ { getLabelElement: numberLinePage.limitNumbersOfResponsesLabel, label: 'Limit number of responses', defaultChecked: true },
18
+ ];
19
+
20
+ describe('Number line: Layout section', () => {
21
+ before(() => {
22
+ cy.loginAs('admin');
23
+ });
24
+
25
+ describe('Layout section - Contents', () => {
26
+ abortEarlySetup();
27
+ before(() => {
28
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
29
+ cy.barsPreLoaderWait();
30
+ });
31
+
32
+ it('Layout label should be displayed', () => {
33
+ utilities.verifyInnerText(numberLinePage.layoutLabel(), 'Layout');
34
+ utilities.verifyElementVisibilityState(numberLinePage.layoutLabel(), 'visible');
35
+ });
36
+
37
+ it('Layout accordion should be displayed in expanded form', () => {
38
+ numberLinePage.steps.verifyLayoutAccordionIsExpanded();
39
+ });
40
+
41
+ it('User should be able to collapse and expand the Layout accordion', () => {
42
+ numberLinePage.steps.collapseLayoutAccordion();
43
+ numberLinePage.steps.verifyLayoutAccordionIsCollapsed();
44
+ numberLinePage.steps.expandLayoutAccordion();
45
+ numberLinePage.steps.verifyLayoutAccordionIsExpanded();
46
+ });
47
+
48
+ it(`Orientation label and 2 toggle buttons ${orientationToggleButton} should be displayed and by default, ${orientationToggleButton[0]} should be selected`, () => {
49
+ utilities.verifyInnerText(numberLinePage.orientationLabel(), 'Orientation');
50
+ utilities.verifyElementVisibilityState(numberLinePage.orientationLabel(), 'visible');
51
+ utilities.verifyElementVisibilityState(numberLinePage.orientationToggleButton(), 'visible');
52
+ utilities.verifyElementCount(numberLinePage.orientationToggleButton(), 2);
53
+ orientationToggleButton.forEach((label) => {
54
+ utilities.verifyInnerText(numberLinePage.orientationToggleButton(label), label);
55
+ utilities.verifyElementVisibilityState(numberLinePage.orientationToggleButton().eq(label), 'visible');
56
+ });
57
+ numberLinePage.steps.verifyOrientationToggleButtonSelected(orientationToggleButton[0]);
58
+ });
59
+
60
+ it(`Width(px) label and input field should be displayed and by default, input field should have 640 and user should be able to update the value of input field`, () => {
61
+ utilities.verifyInnerText(numberLinePage.widthLabel(), 'Width (px)');
62
+ utilities.verifyElementVisibilityState(numberLinePage.widthLabel(), 'visible');
63
+ numberLinePage.steps.verifyTextInWidthInputField(640);
64
+ utilities.verifyElementVisibilityState(numberLinePage.widthInputField(), 'visible');
65
+ numberLinePage.steps.enterTextInWidthInputField(600);
66
+ numberLinePage.steps.verifyTextInWidthInputField(600);
67
+ });
68
+
69
+ it(`Margin (px) label and input field should be displayed and by default, input field should have 10 and user should be able to update the value of input field`, () => {
70
+ utilities.verifyInnerText(numberLinePage.marginLabel(), 'Margin (px)');
71
+ utilities.verifyElementVisibilityState(numberLinePage.marginLabel(), 'visible');
72
+ numberLinePage.steps.verifyTextInMarginInputField(10);
73
+ utilities.verifyElementVisibilityState(numberLinePage.marginInputField(), 'visible');
74
+ numberLinePage.steps.enterTextInMarginInputField(9);
75
+ numberLinePage.steps.verifyTextInMarginInputField(9);
76
+ });
77
+
78
+ it('Response spacing label and input field should be displayed and by default, input field should have 30 and user should be able to update the value of input field', () => {
79
+ utilities.verifyInnerText(numberLinePage.responseSpacingLabel(), 'Response spacing');
80
+ utilities.verifyElementVisibilityState(numberLinePage.responseSpacingLabel(), 'visible');
81
+ numberLinePage.steps.verifyTextInResponseSpacingInputField(30);
82
+ utilities.verifyElementVisibilityState(numberLinePage.responseSpacingInputField(), 'visible');
83
+ numberLinePage.steps.enterTextInResponseSpacingInputField(25);
84
+ numberLinePage.steps.verifyTextInResponseSpacingInputField(25);
85
+ });
86
+
87
+ it('Make responsive label and slider should be displayed and by default, slider should be checked', () => {
88
+ utilities.verifyInnerText(numberLinePage.makeResponsiveLabel(), 'Make responsive for mobile');
89
+ utilities.verifyElementVisibilityState(numberLinePage.makeResponsiveLabel(), 'visible');
90
+ numberLinePage.steps.verifyMakeResponsiveCheckboxChecked();
91
+ });
92
+
93
+ it('\'What is this?\' label should be displayed and when user hovers over it tooltip should be displayed', () => {
94
+ utilities.verifyInnerText(numberLinePage.whatIsThisLabel(), 'What is this?');
95
+ });
96
+
97
+ it('User should be able to uncheck Make responsive slider', () => {
98
+ numberLinePage.steps.uncheckMakeResponsiveCheckbox();
99
+ });
100
+
101
+ labelCheckboxPairs.forEach(({ getLabelElement, label, defaultChecked }) => {
102
+ it(`${label} label and checkbox should be displayed and by default, checkbox should be ${defaultChecked ? 'checked' : 'unchecked'}`, () => {
103
+ utilities.verifyInnerText(getLabelElement(), label);
104
+ utilities.verifyElementVisibilityState(getLabelElement(), 'visible');
105
+ if (defaultChecked) {
106
+ numberLinePage.steps.verifyCheckboxChecked(label);
107
+ } else {
108
+ numberLinePage.steps.verifyCheckboxUnchecked(label);
109
+ }
110
+ });
111
+ });
112
+
113
+ it('When Limit number of responses checkbox is checked then input field should be displayed beside the label and input field should have 5 pre-filled in it', () => {
114
+ numberLinePage.steps.verifyCheckboxChecked('Limit number of responses');
115
+ utilities.verifyElementVisibilityState(numberLinePage.limitNumbersOfResponsesInputField(), 'visible');
116
+ numberLinePage.steps.verifyTextInLimitNumberOfResponsesInputField(5);
117
+ });
118
+
119
+ it('CSS of layout section', { tags: 'css' }, () => {
120
+ utilities.verifyCSS(numberLinePage.layoutLabel(), {
121
+ 'color': css.color.activeButtons,
122
+ 'font-size': css.fontSize.default,
123
+ 'font-weight': css.fontWeight.bold
124
+ });
125
+ utilities.verifyCSS(numberLinePage.layoutAccordionChevronButton(), {
126
+ 'color': css.color.activeButtons,
127
+ 'font-size': css.fontSize.normal,
128
+ 'font-weight': css.fontWeight.regular
129
+ });
130
+ utilities.verifyCSS(numberLinePage.widthLabel(), {
131
+ 'color': css.color.labels,
132
+ 'font-size': css.fontSize.normal,
133
+ 'font-weight': css.fontWeight.semibold
134
+ });
135
+ utilities.verifyCSS(numberLinePage.widthInputField(), {
136
+ 'color': css.color.text,
137
+ 'font-size': css.fontSize.default,
138
+ 'font-weight': css.fontWeight.regular
139
+ });
140
+ utilities.verifyCSS(numberLinePage.makeResponsiveLabel().find('.title-casing'), {
141
+ 'color': css.color.UnselectedToggleButton,
142
+ 'font-size': css.fontSize.normal,
143
+ 'font-weight': css.fontWeight.semibold
144
+ });
145
+ numberLinePage.steps.checkMakeResponsiveCheckbox();
146
+ utilities.verifyCSS(numberLinePage.whatIsThisLabel(), {
147
+ 'color': css.color.activeButtons,
148
+ 'font-size': css.fontSize.normal,
149
+ 'font-weight': css.fontWeight.bold
150
+ });
151
+ utilities.verifyCSS(numberLinePage.makeResponsiveCheckbox().parents('.mobile-responsive-wrapper').find('.MuiSwitch-track'), {
152
+ 'background-color': css.color.enabledSwitchBg,
153
+ });
154
+ numberLinePage.steps.uncheckMakeResponsiveCheckbox();
155
+ utilities.verifyCSS(numberLinePage.makeResponsiveCheckbox().parents('.mobile-responsive-wrapper').find('.MuiSwitch-track'), {
156
+ 'background-color': css.color.secondaryBtn,
157
+ });
158
+ utilities.verifyCSS(numberLinePage.showMinArrowLabel(), {
159
+ 'color': css.color.labelText,
160
+ 'font-size': css.fontSize.normal,
161
+ 'font-weight': css.fontWeight.regular
162
+ });
163
+ utilities.verifyCSS(numberLinePage.orientationLabel(), {
164
+ 'color': css.color.labels,
165
+ 'font-size': css.fontSize.normal,
166
+ 'font-weight': css.fontWeight.semibold
167
+ });
168
+ utilities.verifyCSS(numberLinePage.orientationToggleButton(orientationToggleButton[0]), {
169
+ 'background-color': css.color.activeButtons,
170
+ 'color': css.color.primaryBtn,
171
+ 'font-size': css.fontSize.normal,
172
+ 'font-weight': css.fontWeight.bold
173
+ });
174
+ utilities.verifyCSS(numberLinePage.orientationToggleButton(orientationToggleButton[1]), {
175
+ 'background-color': css.color.transparent,
176
+ 'color': css.color.closeIcon,
177
+ 'font-size': css.fontSize.normal,
178
+ 'font-weight': css.fontWeight.bold
179
+ });
180
+ });
181
+
182
+ it('Accessibility of layout contents', { tags: 'a11y' }, () => {
183
+ cy.checkAccessibility(numberLinePage.layoutLabel().parents('.ngie-accordion'));
184
+ });
185
+ });
186
+
187
+
188
+ describe('Layout section - Edit tab functionality', () => {
189
+ abortEarlySetup();
190
+ before(() => {
191
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
192
+ cy.barsPreLoaderWait();
193
+ });
194
+
195
+ it(`When ${orientationToggleButton[0]} orientation is selected then number line in Number line section and Specify correct answer section should be horizontal`, () => {
196
+ numberLinePage.steps.verifyOrientationToggleButtonSelected(orientationToggleButton[0]);
197
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeNumberLineSection(orientationToggleButton[0], '640');
198
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeSpecifyCorrectAnswerSection(orientationToggleButton[0], '640');
199
+ });
200
+
201
+ it(`When user selects Vertical orientation, then number line in Number line section and Specify correct answer section should be updated to vertical number line`, () => {
202
+ numberLinePage.steps.selectOrientationToggleButton(orientationToggleButton[1]);
203
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeNumberLineSection(orientationToggleButton[1], '640');
204
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeSpecifyCorrectAnswerSection(orientationToggleButton[1], '640');
205
+ });
206
+
207
+ it(`When user selects ${orientationToggleButton[0]} orientation again, then number line in Number line section and Specify correct answer section should be updated to horizontal number line`, () => {
208
+ numberLinePage.steps.selectOrientationToggleButton(orientationToggleButton[0]);
209
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeNumberLineSection(orientationToggleButton[0], '640');
210
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeSpecifyCorrectAnswerSection(orientationToggleButton[0], '640');
211
+ });
212
+
213
+ it('When user updates value for Width input field, it should get updated in Number line section and Specify correct answer section', () => {
214
+ numberLinePage.steps.enterTextInWidthInputField(600);
215
+ numberLinePage.steps.verifyTextInWidthInputField(600);
216
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeNumberLineSection(orientationToggleButton[0], '600');
217
+ numberLinePage.steps.verifyNumberLineOrientationAndSizeSpecifyCorrectAnswerSection(orientationToggleButton[0], '600');
218
+ });
219
+
220
+ it('When user updates value for Margin input field, it should get updated in Specify correct answer section', () => {
221
+ numberLinePage.steps.enterTextInMarginInputField(12);
222
+ numberLinePage.steps.verifyTextInMarginInputField(12);
223
+ numberLinePage.steps.verifyMarginForNumberLineSpecifyCorrectAnswerSection(12);
224
+ });
225
+
226
+ it('When user updates value for Response spacing input field, it should get updated in Number line section and Specify correct answer section', () => {
227
+ numberLinePage.steps.enterTextInResponseSpacingInputField(28);
228
+ numberLinePage.steps.verifyTextInResponseSpacingInputField(28);
229
+ numberLinePage.steps.verifyResponseSpacingSpecifyCorrectAnswerSection(orientationToggleButton[0], 28);
230
+ });
231
+
232
+ it('When user checks Show min arrow checkbox, then arrow should be displayed on left end of number line and arrow should not be displayed on right end of number line in number line section and specify correct answer section', () => {
233
+ cy.log('Entering 640 in width input field');
234
+ numberLinePage.steps.enterTextInWidthInputField(640);
235
+ numberLinePage.steps.checkCheckbox('Show min arrow');
236
+ numberLinePage.steps.verifyMinArrowVisibilitySpecifyCorrectAnswerSection('visible');
237
+ numberLinePage.steps.verifyMinArrowVisibilityNumberLineSection('visible');
238
+ });
239
+
240
+ it('When user unchecks Show min arrow checkbox, then arrow should not be displayed on left end of number line in number line section and specify correct answer section', () => {
241
+ numberLinePage.steps.uncheckCheckbox('Show min arrow');
242
+ numberLinePage.steps.verifyMinArrowVisibilitySpecifyCorrectAnswerSection('hidden');
243
+ numberLinePage.steps.verifyMinArrowVisibilityNumberLineSection('hidden');
244
+ });
245
+
246
+ it('When user checks Show max arrow checkbox, then arrow should be displayed on right end of number line and arrow should not be displayed on left end of number line in number line section and specify correct answer section', () => {
247
+ numberLinePage.steps.checkCheckbox('Show max arrow');
248
+ numberLinePage.steps.verifyMaxArrowVisibilitySpecifyCorrectAnswerSection('visible');
249
+ numberLinePage.steps.verifyMaxArrowVisibilityNumberLineSection('visible');
250
+ });
251
+
252
+ it('When user unchecks Show max arrow checkbox, then arrow should not be displayed on right end of number line in number line section and specify correct answer section', () => {
253
+ numberLinePage.steps.uncheckCheckbox('Show max arrow');
254
+ numberLinePage.steps.verifyMaxArrowVisibilitySpecifyCorrectAnswerSection('hidden');
255
+ numberLinePage.steps.verifyMaxArrowVisibilityNumberLineSection('hidden');
256
+ });
257
+
258
+ //Note: Unable to check on cypress, added to manual sheet
259
+ it('When user checks Stack responses checkbox, then points should be plotted above the number line in number line section and specify correct answer section', () => {
260
+ numberLinePage.steps.checkCheckbox('Stack responses');
261
+ });
262
+
263
+ it('When user unchecks Stack responses checkbox, then points should be plotted on the number line in number line section and specify correct answer section', () => {
264
+ numberLinePage.steps.uncheckCheckbox('Stack responses');
265
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("horizontal", range, 2);
266
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [2]);
267
+ });
268
+
269
+ it('When user unchecks Show labels checkbox, then labels on number line should disappear in number line section and specify correct answer section', () => {
270
+ numberLinePage.steps.uncheckCheckbox('Show labels');
271
+ numberLinePage.steps.verifyLabelsNotVisibleOnNumberLineNumberLineSection();
272
+ numberLinePage.steps.verifyLabelsNotVisibleOnNumberLineSpecifyCorrectAnswerSection();
273
+ });
274
+
275
+ it('When Show labels checkbox is unchecked, then Line settings and Display numbers section should be in disabled state', () => {
276
+ numberLinePage.steps.verifyDisplayNumbersAndLineSettingsSectionDisabled();
277
+ });
278
+
279
+ it('When user checks Show labels checkbox, then labels on number line should be displayed in number line section and specify correct answer section', () => {
280
+ numberLinePage.steps.checkCheckbox('Show labels');
281
+ numberLinePage.steps.verifyLabelsVisibleOnNumberLineNumberLineSection(-10, 1);
282
+ numberLinePage.steps.verifyLabelsVisibleOnNumberLineSpecifyCorrectAnswerSection(-10, 1);
283
+ });
284
+
285
+ it('When Show labels checkbox is checked, then Line settings and Display numbers section should be in enabled state', () => {
286
+ numberLinePage.steps.verifyDisplayNumbersAndLineSettingsSectionEnabled();
287
+ });
288
+
289
+ //Note: Unable to check on cypress, added to manual sheet
290
+ it('When user unchecks Show ticks checkbox, then ticks on number line should disappear in number line section and specify correct answer section', () => {
291
+
292
+ });
293
+
294
+ //Note: Unable to check on cypress, added to manual sheet
295
+ it('When user checks Show ticks checkbox, then ticks on number line should be displayed in number line section and specify correct answer section', () => {
296
+
297
+ });
298
+
299
+ it('When Limit number of responses checkbox is checked then input field should be displayed beside the label and input field should have 5 pre-filled in it then user should be able to plot only 5 responses on number line in specify correct answer section', () => {
300
+ numberLinePage.steps.verifyTextInLimitNumberOfResponsesInputField(5);
301
+ for (let index = 0; index < 6; index++) {
302
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("horizontal", range, index);
303
+ };
304
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0, 1, 2, 3, 4]);
305
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineNotExistSpecifyCorrectAnswer(range, [5]);
306
+ });
307
+
308
+ it('When user update the value in Limit number of responses input field then specified number of responses should be updated accordingly for number line in specify correct answer section and when user plots responses more than specified number then error \'Error: Only # answers are permitted.\'', () => {
309
+ numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Reset');
310
+ numberLinePage.steps.confirmReset();
311
+ numberLinePage.steps.enterTextInLimitNumberOfResponsesInputField(6);
312
+ numberLinePage.steps.verifyTextInLimitNumberOfResponsesInputField(6);
313
+ for (let index = 0; index < 7; index++) {
314
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("horizontal", range, index);
315
+ };
316
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0, 1, 2, 3, 4, 5]);
317
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineNotExistSpecifyCorrectAnswer(range, [6]);
318
+ utilities.verifyElementVisibilityState(numberLinePage.errorMessage(), 'visible');
319
+ utilities.verifyInnerText(numberLinePage.errorMessage().last(), 'Error: Only 6 answers are permitted.');
320
+ });
321
+
322
+ it('CSS of error message', { tags: 'css' }, () => {
323
+ utilities.verifyCSS(numberLinePage.errorMessage().last(), {
324
+ 'color': css.color.errorText,
325
+ 'font-size': css.fontSize.small,
326
+ 'font-weight': css.fontWeight.regular
327
+ });
328
+ });
329
+
330
+ it('Accessibility of error message', { tags: 'a11y' }, () => {
331
+ cy.checkAccessibility(numberLinePage.errorMessage());
332
+ });
333
+
334
+ it('When user clicks outside the number line then error message should disappear', () => {
335
+ numberLinePage.steps.clickOnToolOptionsSpecifyCorrectAnswer();
336
+ utilities.verifyElementVisibilityState(numberLinePage.errorMessage().eq(2), 'notExist');
337
+ });
338
+
339
+ it('When user uncheck Limit number of responses checkbox then Limit number of responses input field should disappear and user should be able to plot any number of responses on number line in specify correct answer section', () => {
340
+ numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Reset');
341
+ numberLinePage.steps.confirmReset();
342
+ numberLinePage.steps.uncheckCheckbox('Limit number of responses');
343
+ utilities.verifyElementVisibilityState(numberLinePage.limitNumbersOfResponsesInputField(), 'notExist');
344
+ for (let index = 0; index < 6; index++) {
345
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("horizontal", range, index);
346
+ };
347
+ numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0, 1, 2, 3, 4, 5]);
348
+ });
349
+ });
350
+
351
+ describe('Layout section - Preview tab functionality', () => {
352
+ abortEarlySetup();
353
+ before(() => {
354
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
355
+ cy.barsPreLoaderWait();
356
+ });
357
+
358
+ it(`When ${orientationToggleButton[0]} orientation is selected then horizontal number line should be displayed in preview tab`, () => {
359
+ numberLinePage.steps.verifyOrientationToggleButtonSelected(orientationToggleButton[0]);
360
+ numberLinePage.steps.switchToPreviewTab();
361
+ numberLinePage.steps.verifyNumberLineOrientationAndSizePreviewTab(orientationToggleButton[0], '640');
362
+ });
363
+
364
+ it(`When user selects ${orientationToggleButton[1]} orientation, then vertical number line should be displayed in preview tab`, () => {
365
+ numberLinePage.steps.switchToEditTab();
366
+ numberLinePage.steps.selectOrientationToggleButton(orientationToggleButton[1]);
367
+ numberLinePage.steps.switchToPreviewTab();
368
+ numberLinePage.steps.verifyNumberLineOrientationAndSizePreviewTab(orientationToggleButton[1], '640');
369
+ });
370
+
371
+ it(`When user selects ${orientationToggleButton[0]} orientation again, then horizontal number line should be displayed in preview tab`, () => {
372
+ numberLinePage.steps.switchToEditTab();
373
+ numberLinePage.steps.selectOrientationToggleButton(orientationToggleButton[0]);
374
+ numberLinePage.steps.switchToPreviewTab();
375
+ numberLinePage.steps.verifyNumberLineOrientationAndSizePreviewTab(orientationToggleButton[0], '640');
376
+ });
377
+
378
+ it('When user updates value for Width input field, it should get updated in preview tab', () => {
379
+ numberLinePage.steps.switchToEditTab();
380
+ numberLinePage.steps.enterTextInWidthInputField(600);
381
+ numberLinePage.steps.verifyTextInWidthInputField(600);
382
+ numberLinePage.steps.switchToPreviewTab();
383
+ numberLinePage.steps.verifyNumberLineOrientationAndSizePreviewTab(orientationToggleButton[0], '600');
384
+ });
385
+
386
+ it('When user updates value for Margin input field, it should get updated in preview tab', () => {
387
+ numberLinePage.steps.switchToEditTab();
388
+ numberLinePage.steps.enterTextInMarginInputField(12);
389
+ numberLinePage.steps.verifyTextInMarginInputField(12);
390
+ numberLinePage.steps.switchToPreviewTab();
391
+ numberLinePage.steps.verifyMarginForNumberLinePreviewTab(12);
392
+ });
393
+
394
+ it('When user updates value for Response spacing input field, it should get updated in preview tab', () => {
395
+ numberLinePage.steps.switchToEditTab();
396
+ numberLinePage.steps.enterTextInResponseSpacingInputField(28);
397
+ numberLinePage.steps.verifyTextInResponseSpacingInputField(28);
398
+ numberLinePage.steps.switchToPreviewTab();
399
+ numberLinePage.steps.verifyResponseSpacingPreviewTab(orientationToggleButton[0], 28);
400
+ });
401
+
402
+ it('When user checks Show min arrow checkbox, then arrow should be displayed on left end of number line and arrow should not be displayed on right end of number line in preview tab', () => {
403
+ numberLinePage.steps.switchToEditTab();
404
+ cy.log('Entering 640 in width input field');
405
+ numberLinePage.steps.enterTextInWidthInputField(640);
406
+ numberLinePage.steps.checkCheckbox('Show min arrow');
407
+ numberLinePage.steps.switchToPreviewTab();
408
+ numberLinePage.steps.verifyMinArrowVisibilityPreviewTab('visible');
409
+ });
410
+
411
+ it('When user unchecks Show min arrow checkbox, then arrow should not be displayed on left end of number line in preview tab', () => {
412
+ numberLinePage.steps.switchToEditTab();
413
+ numberLinePage.steps.uncheckCheckbox('Show min arrow');
414
+ numberLinePage.steps.switchToPreviewTab();
415
+ numberLinePage.steps.verifyMinArrowVisibilityPreviewTab('hidden');
416
+ });
417
+
418
+ it('When user checks Show max arrow checkbox, then arrow should be displayed on right end of number line and arrow should not be displayed on left end of number line in preview tab', () => {
419
+ numberLinePage.steps.switchToEditTab();
420
+ numberLinePage.steps.checkCheckbox('Show max arrow');
421
+ numberLinePage.steps.switchToPreviewTab();
422
+ numberLinePage.steps.verifyMaxArrowVisibilityPreviewTab('visible');
423
+ });
424
+
425
+ it('When user unchecks Show max arrow checkbox, then arrow should not be displayed on right end of number line in preview tab', () => {
426
+ numberLinePage.steps.switchToEditTab();
427
+ numberLinePage.steps.uncheckCheckbox('Show max arrow');
428
+ numberLinePage.steps.switchToPreviewTab();
429
+ numberLinePage.steps.verifyMaxArrowVisibilityPreviewTab('hidden');
430
+ });
431
+
432
+ //Note: Unable to check on cypress, added to manual sheet
433
+ it('When user checks Stack responses checkbox, then points should be plotted above the number line in preview tab', () => {
434
+ numberLinePage.steps.checkCheckbox('Stagger response');
435
+ });
436
+
437
+ it('When user unchecks Stack responses checkbox, then points should be plotted on the number line in preview tab', () => {
438
+ numberLinePage.steps.switchToEditTab();
439
+ numberLinePage.steps.uncheckCheckbox('Stagger response');
440
+ numberLinePage.steps.switchToPreviewTab();
441
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 2);
442
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab(range, [2]);
443
+ });
444
+
445
+ it('When user unchecks Show labels checkbox, then labels on number line should disappear in preview tab', () => {
446
+ numberLinePage.steps.switchToEditTab();
447
+ numberLinePage.steps.uncheckCheckbox('Show labels');
448
+ numberLinePage.steps.switchToPreviewTab();
449
+ numberLinePage.steps.verifyLabelsNotVisibleOnNumberLinePreviewTab();
450
+ });
451
+
452
+ it('When user checks Show labels checkbox, then labels on number line should be displayed in preview tab', () => {
453
+ numberLinePage.steps.switchToEditTab();
454
+ numberLinePage.steps.checkCheckbox('Show labels');
455
+ numberLinePage.steps.switchToPreviewTab();
456
+ numberLinePage.steps.verifyLabelsVisibleOnNumberLinePreviewTab(-10, 1);
457
+ });
458
+
459
+ //Note: Unable to check on cypress, added to manual sheet
460
+ it('When user unchecks Show ticks checkbox, then ticks on number line should disappear in preview tab', () => {
461
+
462
+ });
463
+ //Note: Unable to check on cypress, added to manual sheet
464
+ it('When user checks Show ticks checkbox, then ticks on number line should be displayed in preview tab', () => {
465
+
466
+ });
467
+
468
+ it('When Limit number of responses checkbox is checked then input field should be displayed beside the label and input field should have 5 pre-filled in it then user should be able to plot only 5 responses on number line in preview tab', () => {
469
+ numberLinePage.steps.switchToEditTab();
470
+ numberLinePage.steps.verifyTextInLimitNumberOfResponsesInputField(5);
471
+ numberLinePage.steps.switchToPreviewTab();
472
+ for (let index = 0; index < 6; index++) {
473
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, index);
474
+ };
475
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0, 1, 2, 3, 4]);
476
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab(range, [5]);
477
+ });
478
+
479
+ it('When user update the value in Limit number of responses input field then specified number of responses should be updated accordingly for number line in preview tab and when user plots responses more than specified number then error \'Only # answers are permitted.\'', () => {
480
+ numberLinePage.steps.switchToEditTab();
481
+ numberLinePage.steps.enterTextInLimitNumberOfResponsesInputField(6);
482
+ numberLinePage.steps.verifyTextInLimitNumberOfResponsesInputField(6);
483
+ numberLinePage.steps.switchToPreviewTab();
484
+ for (let index = 0; index < 7; index++) {
485
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, index);
486
+ };
487
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0, 1, 2, 3, 4, 5]);
488
+ numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab(range, [6]);
489
+ utilities.verifyElementVisibilityState(numberLinePage.warningMessage(), 'visible');
490
+ utilities.verifyInnerText(numberLinePage.warningMessage(), 'Only 6 answers are permitted.');
491
+ });
492
+
493
+ it('CSS of warning message', { tags: 'css' }, () => {
494
+ utilities.verifyCSS(numberLinePage.warningMessage(), {
495
+ 'color': css.color.warningMessage,
496
+ 'font-size': css.fontSize.normal,
497
+ 'font-weight': css.fontWeight.regular
498
+ });
499
+ utilities.verifyCSS(numberLinePage.warningMessageContainer().find('svg'), {
500
+ 'color': css.color.warningMessage,
501
+ });
502
+ utilities.verifyCSS(numberLinePage.warningMessageContainer(), {
503
+ 'border': `1px solid ${css.color.warningContainerBorder}`
504
+ });
505
+ utilities.verifyCSS(numberLinePage.warningMessageContainer(), {
506
+ 'background-color': css.color.warningContainerBackground
507
+ });
508
+ });
509
+
510
+ it('Accessibility of error message', { tags: 'a11y' }, () => {
511
+ cy.checkAccessibility(numberLinePage.warningMessage());
512
+ });
513
+
514
+ it('When user clicks outside the number line then error message should disappear', () => {
515
+ numberLinePage.steps.clickOnToolOptionsPreviewTab();
516
+ utilities.verifyElementVisibilityState(numberLinePage.warningMessage(), 'notExist');
517
+ });
518
+
519
+ it('When user uncheck Limit number of responses checkbox then user should be able to plot any number of responses on number line in specify correct answer section', () => {
520
+ numberLinePage.steps.switchToEditTab();
521
+ numberLinePage.steps.uncheckCheckbox('Limit number of responses');
522
+ utilities.verifyElementVisibilityState(numberLinePage.limitNumbersOfResponsesInputField(), 'notExist');
523
+ numberLinePage.steps.switchToPreviewTab();
524
+ for (let index = 0; index < 6; index++) {
525
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, index);
526
+ numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, index);
527
+ };
528
+ });
529
+ });
530
+ });
@@ -176,7 +176,7 @@ describe('Create Item page - Number line: All or nothing with alternative answer
176
176
  numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
177
177
  });
178
178
 
179
- it.only('When the user has attempted the question with equal number of correct responses from correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, the correctly attempted number line should be displayed correct and incorrectly attempted should be displayed for the alternative accordion number line, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
179
+ it('When the user has attempted the question with equal number of correct responses from correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, the correctly attempted number line should be displayed correct and incorrectly attempted should be displayed for the alternative accordion number line, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
180
180
  numberLinePage.steps.resetQuestionPreview();
181
181
  numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
182
182
  numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 2);
@@ -212,7 +212,7 @@ describe('Create Item page - Number line: All or nothing with alternative answer
212
212
  numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
213
213
  });
214
214
 
215
- it.only('Race condition : When the user attempts the question with the common response between correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, the attempted response should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
215
+ it('Race condition : When the user attempts the question with the common response between correct and alternative accordion, then the user should be awarded with 0 points and on switching to \'Grading\' view, the attempted response should be displayed correct, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers from the correct accordion should be displayed', () => {
216
216
  numberLinePage.steps.resetQuestionPreview();
217
217
  numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment right/up hollow pt');
218
218
  numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, -4);
@@ -235,7 +235,7 @@ describe('Create Item page - Number line: All or nothing with alternative answer
235
235
  numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
236
236
  });
237
237
 
238
- it.only('When the user attempts the question incorrectly, then the user should be awarded 0 points and on switching to \'Grading\' view, incorrect icons should be displayed besides all incorrect responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers should be displayed', () => {
238
+ it('When the user attempts the question incorrectly, then the user should be awarded 0 points and on switching to \'Grading\' view, incorrect icons should be displayed besides all incorrect responses, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers should be displayed', () => {
239
239
  numberLinePage.steps.resetQuestionPreview();
240
240
  numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
241
241
  numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 8);