itemengine-cypress-automation 1.0.165-migrationScripts-e27d6f2.0 → 1.0.166
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/BrainingCampManipulative/additionalSettings.js +83 -0
- package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +200 -0
- package/cypress/e2e/ILC/BrainingCampManipulative/editTabScoringSection.js +56 -0
- package/cypress/e2e/ILC/BrainingCampManipulative/gradingViewAndCorrectAnswerViewContents.smoke.js +95 -0
- package/cypress/e2e/ILC/BrainingCampManipulative/headerSection.js +71 -0
- package/cypress/e2e/ILC/BrainingCampManipulative/previewTabContent.smoke.js +72 -0
- package/cypress/e2e/ILC/BrainingCampManipulative/toolSettings.js +71 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +22 -11
- package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +432 -0
- package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +134 -0
- package/cypress/e2e/ILC/FeedbackScaleNew/feedbackScaleStylePreviewTab.js +161 -0
- package/cypress/e2e/ILC/FeedbackScaleNew/numbersFeedbackScaleStyle.js +308 -0
- package/cypress/e2e/ILC/FeedbackScaleNew/previewContentsForAllViews.smoke.js +216 -0
- package/cypress/e2e/ILC/FeedbackScaleNew/starsHeartsFeedbackScaleStyle.js +336 -0
- package/cypress/e2e/ILC/FeedbackScaleNew/textFeedbackScaleStyle.js +570 -0
- package/cypress/e2e/ILC/FeedbackScaleNew/thumbsFeedbackScaleStyle.js +214 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettings.js +356 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettingsResponseAccordion.js +299 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +18 -7
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +11 -6
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +355 -0
- package/cypress/e2e/ILC/Graphing/previewContentsForAllViews.smoke.js +0 -1
- package/cypress/e2e/ILC/Graphing/toolsControlsAndBackgroundSection.js +2 -36
- package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +22 -34
- package/cypress/e2e/ILC/GridFill/checkAnswerFunctionalityForAllViews.smoke.js +8 -24
- package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +5 -25
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +68 -114
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +67 -111
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +71 -123
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingScoringCellShadeCount.js +41 -63
- package/cypress/e2e/ILC/GridFill/scoring/manuallyAndNonScored.js +21 -25
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsBasic.js +50 -85
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +68 -115
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +54 -98
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +72 -120
- package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +3 -3
- package/cypress/e2e/ILC/Matching/maximumCapacityPerDropzoneSection.js +309 -0
- package/cypress/e2e/ILC/Matching/specifyCorrectAnswerSection.js +1 -1
- package/cypress/e2e/ILC/Matching/toolSettings.js +72 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabBasicSection.js +1033 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/test.js +28 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +236 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +239 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +278 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/manualAndNonScoredScoring.js +178 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsBasic.js +407 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithAlternatePointsGreaterThanCorrectPoints.js +273 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternatePoints.js +278 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeigtsWithCorrectPointsEqualToAlternatePoints.js +228 -0
- package/cypress/e2e/ILC/NumberLine/additionalSettings.js +120 -0
- package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +659 -0
- package/cypress/e2e/ILC/NumberLine/checkAnswerFunctionalityForAllViews.smoke.js +149 -0
- package/cypress/e2e/ILC/NumberLine/editTabScoringSection.js +151 -0
- package/cypress/e2e/ILC/NumberLine/gradingViewAndCorrectAnswerView.smoke.js +171 -0
- package/cypress/e2e/ILC/NumberLine/headerSection.js +76 -0
- package/cypress/e2e/ILC/NumberLine/minimumScoringPenaltyPointsAndRoundingDropdown.js +54 -0
- package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +200 -0
- package/cypress/e2e/ILC/NumberLine/specifyCorrectAnswerSection.js +67 -0
- package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +135 -0
- package/cypress/e2e/ILC/NumberLine/toolSettings.js +73 -0
- package/cypress/e2e/ILC/NumberLine/toolsAndControls.js +372 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/editTabBasicSection.js +1014 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +235 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +235 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +235 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsBasic.js +457 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +342 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +342 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +342 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsBasic.js +155 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +314 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +275 -0
- package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +314 -0
- package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +290 -0
- package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +142 -0
- package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.js +137 -0
- package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +4 -4
- package/cypress/fixtures/theme/ilc.json +14 -26
- package/cypress/pages/brainingCampManipulativePage.js +122 -0
- package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +1 -1
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -0
- package/cypress/pages/components/autoScoredStudentViewSettings.js +1 -1
- package/cypress/pages/components/colorPopupComponent.js +2 -2
- package/cypress/pages/components/defaultToolDropdown.js +77 -0
- package/cypress/pages/components/gridQuestionCommonComponent.js +629 -2
- package/cypress/pages/components/index.js +3 -0
- package/cypress/pages/components/maximumCapacityPerDropzoneComponent.js +1 -1
- package/cypress/pages/components/measuringToolComponent.js +2 -2
- package/cypress/pages/components/resetPopupComponent.js +74 -0
- package/cypress/pages/components/scoringSectionBaseEditTab.js +1 -1
- package/cypress/pages/components/setPointsPopupBase.js +6 -4
- package/cypress/pages/components/specifyRowsAndColumnsComponent.js +60 -3
- package/cypress/pages/components/toolSettingsComponent.js +80 -12
- package/cypress/pages/components/toolsAndControlsComponent.js +69 -0
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +0 -8
- package/cypress/pages/feedbackScalePage copy.js +716 -0
- package/cypress/pages/feedbackScalePage.js +591 -449
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +3 -1
- package/cypress/pages/graphingPage.js +9 -145
- package/cypress/pages/gridFillPage.js +135 -120
- package/cypress/pages/highlightPage.js +0 -394
- package/cypress/pages/index.js +5 -2
- package/cypress/pages/matchingPage.js +78 -20
- package/cypress/pages/multipleSelectionGridPage.js +88 -1
- package/cypress/pages/numberLinePage.js +723 -0
- package/cypress/pages/singleSelectionGridPage.js +86 -0
- package/cypress/pages/textSelectionPage.js +582 -0
- package/package.json +2 -2
@@ -0,0 +1,372 @@
|
|
1
|
+
import { dialogBoxBase, numberLinePage } from "../../../pages";
|
2
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
const unselectedToolOption = ['Left/down ray', 'Right/up ray', 'Left/down ray w/ hollow pt', 'Right/up ray w/ hollow pt'];
|
5
|
+
const selectedToolOption = ['Point', 'Segment', 'Segment left/down hollow pt', 'Segment right/up hollow pt', 'Segment both hollow pts'];
|
6
|
+
const controlOptions = ['Undo', 'Redo', 'Reset'];
|
7
|
+
const toolOptions = [...selectedToolOption, ...unselectedToolOption];
|
8
|
+
const range = 20;
|
9
|
+
const css = Cypress.env('css');
|
10
|
+
|
11
|
+
describe('Number line: Tools and controls - Edit tab and preview tab tool options', () => {
|
12
|
+
before(() => {
|
13
|
+
cy.loginAs('admin');
|
14
|
+
});
|
15
|
+
|
16
|
+
describe('Tools and controls - Edit tab content and functionality', () => {
|
17
|
+
const unselectedToolOption = ['Left/down ray', 'Right/up ray', 'Left/down ray w/hollow pt', 'Right/up ray w/hollow pt'];
|
18
|
+
const selectedToolOption = ['Point', 'Segment', 'Segment left/down hollow pt', 'Segment right/up hollow pt', 'Segment both hollow pts'];
|
19
|
+
const toolOptions = [...selectedToolOption, ...unselectedToolOption];
|
20
|
+
abortEarlySetup();
|
21
|
+
before(() => {
|
22
|
+
numberLinePage.steps.navigateToCreateQuestion('Number line');
|
23
|
+
cy.barsPreLoaderWait();
|
24
|
+
});
|
25
|
+
|
26
|
+
it('\'Tools\' label should be displayed with 9 tools', () => {
|
27
|
+
utilities.verifyInnerText(numberLinePage.toolsLabel(), 'Tools');
|
28
|
+
utilities.verifyElementVisibilityState(numberLinePage.toolsLabel(), 'visible');
|
29
|
+
utilities.verifyElementCount(numberLinePage.toolOptions(), 9);
|
30
|
+
});
|
31
|
+
|
32
|
+
it(`The ${selectedToolOption} should be in selected state with tick icons and all the options should be in unselected state`, () => {
|
33
|
+
selectedToolOption.forEach((toolOption, index) => {
|
34
|
+
utilities.verifyElementVisibilityState(numberLinePage.toolOptions(`${toolOption} selected`), 'visible');
|
35
|
+
utilities.verifyInnerText(utilities.getNthElement(numberLinePage.toolOptionsLabel(), index), toolOption);
|
36
|
+
utilities.verifyElementVisibilityState(utilities.getNthElement(numberLinePage.toolOptionsTickIcon(), index), 'visible');
|
37
|
+
});
|
38
|
+
unselectedToolOption.forEach((toolOption, index) => {
|
39
|
+
utilities.verifyElementVisibilityState(numberLinePage.toolOptions(`${toolOption} not-selected`), 'visible');
|
40
|
+
utilities.verifyInnerText(utilities.getNthElement(numberLinePage.toolOptionsLabel(), index + 5), toolOption);
|
41
|
+
utilities.verifyElementVisibilityState(utilities.getNthElement(numberLinePage.toolOptionsTickIcon(), index + 5), 'hidden');
|
42
|
+
});
|
43
|
+
});
|
44
|
+
|
45
|
+
it('\'Controls\' label should be displayed with 2 control options', () => {
|
46
|
+
utilities.verifyInnerText(numberLinePage.controlsLabel(), 'Controls');
|
47
|
+
utilities.verifyElementVisibilityState(numberLinePage.controlsLabel(), 'visible');
|
48
|
+
});
|
49
|
+
|
50
|
+
it('All the control options should be displayed in selected state', () => {
|
51
|
+
let controlOptions = ['Undo/Redo', 'Reset'];
|
52
|
+
controlOptions.forEach((controlOption, index) => {
|
53
|
+
utilities.verifyElementVisibilityState(numberLinePage.controlOptions(`${controlOption} selected`), 'visible');
|
54
|
+
utilities.verifyInnerText(utilities.getNthElement(numberLinePage.controlsOptionsLabel(), index), controlOption);
|
55
|
+
utilities.verifyElementVisibilityState(utilities.getNthElement(numberLinePage.controlsTickIcon(), index), 'visible');
|
56
|
+
});
|
57
|
+
});
|
58
|
+
|
59
|
+
numberLinePage.tests.verifyDefaultToolDropdown(toolOptions);
|
60
|
+
|
61
|
+
it(`The ${selectedToolOption} options should be displayed in the \'Specify correct answer\' section`, () => {
|
62
|
+
selectedToolOption.forEach((toolOption) => {
|
63
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionSpecifyCorrectAnswer(`${toolOption}`), 'visible');
|
64
|
+
});
|
65
|
+
utilities.verifyElementCount(numberLinePage.numberLineToolOptionSpecifyCorrectAnswer(), 5);
|
66
|
+
});
|
67
|
+
|
68
|
+
it('By default, the \'Point\' option should be in selected state in the \'Specify correct answer\' section', () => {
|
69
|
+
numberLinePage.steps.verifyToolOptionSelectedSpecifyCorrectAnswerSection(toolOptions[0]);
|
70
|
+
numberLinePage.steps.verifyToolOptionNotSelectedSpecifyCorrectAnswerSection(toolOptions.slice(1, 5));
|
71
|
+
});
|
72
|
+
|
73
|
+
it('When the user de-selects an selected option it should be removed from the \'Specify correct answer\' section', () => {
|
74
|
+
numberLinePage.steps.deselectToolOptions(['Point']);
|
75
|
+
selectedToolOption.slice(1, selectedToolOption.length).forEach((toolOption) => {
|
76
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionSpecifyCorrectAnswer(`${toolOption}`), 'visible');
|
77
|
+
});
|
78
|
+
});
|
79
|
+
|
80
|
+
it('When user selects any of the default unselected options it should be added to the \'Specify correct answer\' section', () => {
|
81
|
+
numberLinePage.steps.selectToolOptions(['Left/down ray']);
|
82
|
+
toolOptions.slice(1, 6).forEach((toolOption) => {
|
83
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionSpecifyCorrectAnswer(`${toolOption}`), 'visible');
|
84
|
+
});
|
85
|
+
numberLinePage.steps.selectToolOptions(['Point']);
|
86
|
+
});
|
87
|
+
|
88
|
+
//Controls
|
89
|
+
it('All the controls should be displayed in the \'Specify correct answer\' section', () => {
|
90
|
+
controlOptions.forEach((controlOption) => {
|
91
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer(controlOption), 'visible');
|
92
|
+
});
|
93
|
+
});
|
94
|
+
|
95
|
+
it('When the user de-selects any control it should be removed from the \'Specify correct answer\' section ', () => {
|
96
|
+
numberLinePage.steps.deselectControl('Undo/Redo');
|
97
|
+
controlOptions.slice(0, 1).forEach((controlOption) => {
|
98
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer(controlOption), 'notExist');
|
99
|
+
});
|
100
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer(controlOptions[2]), 'visible');
|
101
|
+
});
|
102
|
+
|
103
|
+
it('When the user selects a un-selected option it should be displayed again in the \'Specify correct answer\' section', () => {
|
104
|
+
numberLinePage.steps.selectControl('Undo/Redo');
|
105
|
+
controlOptions.forEach((controlOption) => {
|
106
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer(controlOption), 'visible');
|
107
|
+
});
|
108
|
+
});
|
109
|
+
|
110
|
+
//Default tool
|
111
|
+
it('When the user selects another tool as the default tool it should be displayed as selected and the \'Point\' tool should be displayed unselected in the \'Specify correct answer\' section', () => {
|
112
|
+
numberLinePage.steps.expandDefaultToolDropdown();
|
113
|
+
numberLinePage.steps.selectOptionFromDefaultToolDropdown('Segment');
|
114
|
+
numberLinePage.steps.verifyToolOptionSelectedSpecifyCorrectAnswerSection('Segment');
|
115
|
+
numberLinePage.steps.verifyToolOptionNotSelectedSpecifyCorrectAnswerSection(['Point']);
|
116
|
+
});
|
117
|
+
|
118
|
+
it('CSS of tools and controls', { tags: 'css' }, () => {
|
119
|
+
utilities.verifyCSS(numberLinePage.toolOptions('Right/up ray').find('svg circle'), {
|
120
|
+
'fill': css.color.secondaryBtn
|
121
|
+
});
|
122
|
+
utilities.verifyCSS(numberLinePage.toolOptions('Right/up ray'), {
|
123
|
+
'background-color': css.color.secondaryBtnBg
|
124
|
+
});
|
125
|
+
utilities.verifyCSS(numberLinePage.toolOptions('Segment').find('svg path'), {
|
126
|
+
'fill': css.color.primaryBtn
|
127
|
+
});
|
128
|
+
utilities.verifyCSS(numberLinePage.toolOptions('Segment'), {
|
129
|
+
'background-color': css.color.activeButtons
|
130
|
+
});
|
131
|
+
utilities.verifyCSS(numberLinePage.toolOptionsTickIcon().eq(1).find('[data-name="Icon feather-check"]'), {
|
132
|
+
'color': css.color.activeButtons,
|
133
|
+
'fill': css.color.activeButtons
|
134
|
+
});
|
135
|
+
});
|
136
|
+
|
137
|
+
it('Accessibility of tools and controls', { tags: 'a11y' }, () => {
|
138
|
+
cy.checkAccessibility(numberLinePage.toolOptions().parents('[class*="CustomizedOptionWrapper"]'));
|
139
|
+
});
|
140
|
+
});
|
141
|
+
|
142
|
+
describe('Tools and controls - Preview tab functionality', () => {
|
143
|
+
abortEarlySetup();
|
144
|
+
before(() => {
|
145
|
+
numberLinePage.steps.navigateToCreateQuestion('Number line');
|
146
|
+
cy.barsPreLoaderWait();
|
147
|
+
});
|
148
|
+
|
149
|
+
it(`The ${selectedToolOption} options should be displayed in the preview tab`, () => {
|
150
|
+
numberLinePage.steps.switchToPreviewTab();
|
151
|
+
selectedToolOption.forEach((toolOption) => {
|
152
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionPreviewTab(`${toolOption}`), 'visible');
|
153
|
+
});
|
154
|
+
utilities.verifyElementCount(numberLinePage.numberLineToolOptionPreviewTab(), 5);
|
155
|
+
});
|
156
|
+
|
157
|
+
it('By default, the \'Point\' option should be in selected state in the preview tab tool options', () => {
|
158
|
+
numberLinePage.steps.verifyToolOptionSelectedPreviewTab(selectedToolOption[0]);
|
159
|
+
numberLinePage.steps.verifyToolOptionNotSelectedPreviewTab(selectedToolOption.slice(1, selectedToolOption.length));
|
160
|
+
utilities.verifyElementCount(numberLinePage.numberLineToolOptionPreviewTab(), 5)
|
161
|
+
});
|
162
|
+
|
163
|
+
it('When the user de-selects an selected option it should be removed from the preview tab tool options', () => {
|
164
|
+
numberLinePage.steps.switchToEditTab();
|
165
|
+
numberLinePage.steps.deselectToolOptions(['Point']);
|
166
|
+
numberLinePage.steps.switchToPreviewTab();
|
167
|
+
selectedToolOption.slice(1, selectedToolOption.length).forEach((toolOption) => {
|
168
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionPreviewTab(`${toolOption}`), 'visible');
|
169
|
+
});
|
170
|
+
});
|
171
|
+
|
172
|
+
it('When user selects any of the default unselected options it should be added to the preview tab tool options', () => {
|
173
|
+
numberLinePage.steps.switchToEditTab();
|
174
|
+
numberLinePage.steps.selectToolOptions(['Left/down ray']);
|
175
|
+
numberLinePage.steps.switchToPreviewTab();
|
176
|
+
toolOptions.slice(1, 5).forEach((toolOption) => {
|
177
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineToolOptionPreviewTab(`${toolOption}`), 'visible');
|
178
|
+
});
|
179
|
+
});
|
180
|
+
|
181
|
+
//Controls
|
182
|
+
it('All the controls should be displayed in the preview tab tool options', () => {
|
183
|
+
controlOptions.forEach((controlOption) => {
|
184
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionPreviewTab(controlOption), 'visible');
|
185
|
+
});
|
186
|
+
});
|
187
|
+
|
188
|
+
it('When the user de-selects any control it should be removed from the preview tab tool options', () => {
|
189
|
+
numberLinePage.steps.switchToEditTab();
|
190
|
+
numberLinePage.steps.deselectControl('Undo/Redo');
|
191
|
+
numberLinePage.steps.switchToPreviewTab();
|
192
|
+
controlOptions.slice(0, 1).forEach((controlOption) => {
|
193
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionPreviewTab(controlOption), 'notExist');
|
194
|
+
});
|
195
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionPreviewTab(controlOptions[2]), 'visible');
|
196
|
+
});
|
197
|
+
|
198
|
+
it('When the user selects a un-selected option it should be displayed again in the preview tab tool options', () => {
|
199
|
+
numberLinePage.steps.switchToEditTab();
|
200
|
+
numberLinePage.steps.selectControl('Undo/Redo');
|
201
|
+
numberLinePage.steps.switchToPreviewTab();
|
202
|
+
controlOptions.forEach((controlOption) => {
|
203
|
+
utilities.verifyElementVisibilityState(numberLinePage.numberLineControlOptionPreviewTab(controlOption), 'visible');
|
204
|
+
});
|
205
|
+
});
|
206
|
+
|
207
|
+
//Default tool
|
208
|
+
it('When the user selects another tool as the default tool it should be displayed as selected and the \'Point\' tool should be displayed unselected in the preview tab tool options', () => {
|
209
|
+
numberLinePage.steps.switchToEditTab();
|
210
|
+
numberLinePage.steps.selectToolOptions(['Point']);
|
211
|
+
numberLinePage.steps.expandDefaultToolDropdown();
|
212
|
+
numberLinePage.steps.selectOptionFromDefaultToolDropdown('Left/down ray');
|
213
|
+
numberLinePage.steps.switchToPreviewTab();
|
214
|
+
numberLinePage.steps.verifyToolOptionSelectedPreviewTab('Left/down ray');
|
215
|
+
numberLinePage.steps.verifyToolOptionNotSelectedPreviewTab(['Point']);
|
216
|
+
});
|
217
|
+
});
|
218
|
+
|
219
|
+
describe('Undo/Redo and Reset functionality specify correct answer section', () => {
|
220
|
+
abortEarlySetup();
|
221
|
+
before(() => {
|
222
|
+
numberLinePage.steps.navigateToCreateQuestion('Number line');
|
223
|
+
cy.barsPreLoaderWait();
|
224
|
+
});
|
225
|
+
|
226
|
+
it('By default, the \'Undo\', \'Redo\' and \'Reset\' buttons should be displayed in disabled state', () => {
|
227
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Undo'));
|
228
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Redo'));
|
229
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Reset'));
|
230
|
+
});
|
231
|
+
|
232
|
+
it('When the user plots points on the number line then the \'Undo\' and \'Reset\' buttons should be displayed in enabled state whereas, \'Redo\' button should be displayed in disabled state', () => {
|
233
|
+
numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }, { x: 3, xRange: range }]);
|
234
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }, { x: 3, xRange: range }]);
|
235
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Undo'));
|
236
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Reset'));
|
237
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Redo'));
|
238
|
+
});
|
239
|
+
|
240
|
+
it('When the user selects \'Undo\' button then the latest action should be reversed and the \'Redo\' button should become enabled', () => {
|
241
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Undo');
|
242
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }]);
|
243
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineNotExistSpecifyCorrectAnswer([{ x: 3, xRange: range }]);
|
244
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Undo'));
|
245
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Redo'));
|
246
|
+
});
|
247
|
+
|
248
|
+
it('When the user clicks on the \'Redo\' button the latest action should be reinstated and the the \'Redo\' button should be disabled again', () => {
|
249
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Redo');
|
250
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }, { x: 3, xRange: range }]);
|
251
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Undo'));
|
252
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Redo'));
|
253
|
+
});
|
254
|
+
|
255
|
+
it('When the user reaches the initial state by performing \'Undo\' actions then the \'Redo\' button should be in enabled state and \'Undo\' button should be in disabled state', () => {
|
256
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Undo');
|
257
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Undo');
|
258
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineNotExistSpecifyCorrectAnswer([{ x: 2, xRange: range }, { x: 3, xRange: range }]);
|
259
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Undo'));
|
260
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Redo'));
|
261
|
+
});
|
262
|
+
|
263
|
+
it('When the user reaches the latest state by performing \'Redo\' actions then the \'Undo\' button should be in enabled state and \'Redo\' button should be in disabled state', () => {
|
264
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Redo');
|
265
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Redo');
|
266
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }, { x: 3, xRange: range }]);
|
267
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Undo'));
|
268
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Redo'));
|
269
|
+
});
|
270
|
+
|
271
|
+
it('User should be able to select \'Reset\' control', () => {
|
272
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Reset');
|
273
|
+
});
|
274
|
+
|
275
|
+
numberLinePage.tests.verifyResetPopupContentWithCSSAndA11y();
|
276
|
+
|
277
|
+
it('When the user clicks on the \'Cancel\' button then the plotted number line should not be \'Reset\'', () => {
|
278
|
+
numberLinePage.steps.cancelReset();
|
279
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer([{ x: 2, xRange: range }, { x: 3, xRange: range }]);
|
280
|
+
});
|
281
|
+
|
282
|
+
it('When the user clicks on \'Confirm \'Reset\'\' then the plotted number line should be \'Reset\'', () => {
|
283
|
+
numberLinePage.steps.selectNumberLineControlOptionSpecifyCorrectAnswerSection('Reset');
|
284
|
+
numberLinePage.steps.confirmReset();
|
285
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLineNotExistSpecifyCorrectAnswer([{ x: 2, xRange: range }, { x: 3, xRange: range }]);
|
286
|
+
});
|
287
|
+
|
288
|
+
it('When the user \'Reset\'s the number line then the \'Undo\', \'Redo\' and \'Reset\' buttons should be in disabled state', () => {
|
289
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Undo'));
|
290
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Redo'));
|
291
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionSpecifyCorrectAnswer('Reset'));
|
292
|
+
});
|
293
|
+
});
|
294
|
+
|
295
|
+
describe('Undo/Redo and Reset functionality preview tab', () => {
|
296
|
+
abortEarlySetup();
|
297
|
+
before(() => {
|
298
|
+
numberLinePage.steps.navigateToCreateQuestion('Number line');
|
299
|
+
cy.barsPreLoaderWait();
|
300
|
+
numberLinePage.steps.switchToPreviewTab();
|
301
|
+
});
|
302
|
+
|
303
|
+
it('By default, the \'Undo\', \'Redo\' and \'Reset\' buttons should be displayed in disabled state', () => {
|
304
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Undo'));
|
305
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Redo'));
|
306
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Reset'));
|
307
|
+
});
|
308
|
+
|
309
|
+
it('When the user plots points on the number line then the \'Undo\' button should be displayed in enabled state whereas, \'Redo\' and \'Reset\' buttons should be displayed in disabled state', () => {
|
310
|
+
numberLinePage.steps.plotPointOnNumberLinePreviewTab([{ x: 1, xRange: range }, { x: 2, xRange: range }]);
|
311
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 1, xRange: range }, { x: 2, xRange: range }]);
|
312
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionPreviewTab('Undo'));
|
313
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Redo'));
|
314
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionPreviewTab('Reset'));
|
315
|
+
});
|
316
|
+
|
317
|
+
it('When the user selects \'Undo\' button then the latest action should be reversed and the \'Redo\' button should become enabled', () => {
|
318
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Undo');
|
319
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 1, xRange: range }]);
|
320
|
+
numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 2, xRange: range }]);
|
321
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionPreviewTab('Undo'));
|
322
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionPreviewTab('Redo'));
|
323
|
+
});
|
324
|
+
|
325
|
+
it('When the user clicks on the \'Redo\' button the latest action should be reinstated and the the \'Redo\' button should be disabled again', () => {
|
326
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Redo');
|
327
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 1, xRange: range }, { x: 2, xRange: range }]);
|
328
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionPreviewTab('Undo'));
|
329
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Redo'));
|
330
|
+
});
|
331
|
+
|
332
|
+
it('When the user reaches the initial state by performing \'Undo\' actions then the \'Redo\' button should be in enabled state and \'Undo\' button should be in disabled state', () => {
|
333
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Undo');
|
334
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Undo');
|
335
|
+
numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 1, xRange: range }, { x: 2, xRange: range }]);
|
336
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Undo'));
|
337
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionPreviewTab('Redo'));
|
338
|
+
});
|
339
|
+
|
340
|
+
it('When the user reaches the latest state by performing \'Redo\' actions then the \'Undo\' button should be in enabled state and \'Redo\' button should be in disabled state', () => {
|
341
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Redo');
|
342
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Redo');
|
343
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 1, xRange: range }, { x: 2, xRange: range }]);
|
344
|
+
utilities.verifyElementNotDisabled(numberLinePage.numberLineControlOptionPreviewTab('Undo'));
|
345
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Redo'));
|
346
|
+
});
|
347
|
+
|
348
|
+
it('User should be able to select \'Reset\' control', () => {
|
349
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Reset');
|
350
|
+
});
|
351
|
+
|
352
|
+
numberLinePage.tests.verifyResetPopupContentWithCSSAndA11y();
|
353
|
+
|
354
|
+
it('When the user clicks on the \'Cancel\' button then the plotted points on number line should not \'Reset\' and the dialog box should not be displayed', () => {
|
355
|
+
numberLinePage.steps.cancelReset();
|
356
|
+
numberLinePage.steps.verifyPointsPlottedOnNumberLinePreviewTab([{ x: 1, xRange: range }, { x: 2, xRange: range }]);
|
357
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
358
|
+
});
|
359
|
+
|
360
|
+
it('When the user clicks on \'Confirm reset\'\' then the plotted number line should be \'Reset\'', () => {
|
361
|
+
numberLinePage.steps.selectNumberLineControlOptionPreviewTab('Reset');
|
362
|
+
numberLinePage.steps.confirmReset();
|
363
|
+
numberLinePage.steps.verifyPointsNotExistOnNumberLinePreviewTab([{ x: 1, xRange: range }, { x: 2, xRange: range }]);
|
364
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
365
|
+
});
|
366
|
+
|
367
|
+
it('When the user \'Reset\'s the number line then the \'Undo\' and \'Redo\' buttons should be in disabled state', () => {
|
368
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Undo'));
|
369
|
+
utilities.verifyElementDisabled(numberLinePage.numberLineControlOptionPreviewTab('Redo'));
|
370
|
+
});
|
371
|
+
});
|
372
|
+
});
|