itemengine-cypress-automation 1.0.157 → 1.0.158
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/e2e/ILC/AudioResponseNew/customizePlaybackControls.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/allOrNothingBasicForGroupedOptionsLayout.js +49 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/manuallyAndNonScoredScoring.js +1 -8
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +7 -7
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +4 -4
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettingsForGroupedLayout.js +1 -1
- package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +11 -8
- package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +5 -5
- package/cypress/e2e/ILC/EssayResponse/previewHyperlink.js +2 -1
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/specifyCorrectAnswerSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +0 -5
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +1 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +10 -10
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/specifyCorrectAnswerSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownOptionsSection.js +0 -5
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/specifyCorrectAnswerSection.js +1 -0
- package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +3 -3
- package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +4 -4
- package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +4 -4
- package/cypress/e2e/ILC/GridFill/gridLayoutContents.js +1 -0
- package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +2 -2
- package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/Matching/draggableOptions.js +53 -0
- package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +302 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/additionalSettingsBasic.js +146 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/headerSection.js +83 -0
- package/cypress/e2e/ILC/Ruler/rulerEditTabBasicsSection.js +18 -22
- package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +1 -2
- package/cypress/e2e/ILC/SingleSelectionGridNew/additionalSettingsBasic.js +146 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/headerSection.js +83 -0
- package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +2 -1
- package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +1 -1
- package/cypress/fixtures/drawingToolbarOptionsAdditionalOptionsAndSpecialAndMathCharacters.js +1 -1
- package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +6 -0
- package/cypress/fixtures/evaluationMethodsAndCustomSettings.js +1 -1
- package/cypress/pages/components/autoScoredScoringPreviewTab.js +6 -0
- package/cypress/pages/components/commonComponents.js +2 -1
- package/cypress/pages/components/createCustomCategoryFlyout.js +0 -1
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +4 -4
- package/cypress/pages/components/gridQuestionCommonComponent.js +29 -1
- package/cypress/pages/components/imageCanvasComponent.js +3 -3
- package/cypress/pages/components/questionInputFieldComponent.js +1 -1
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +3 -4
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +10 -0
- package/cypress/pages/graphingPage.js +4 -4
- package/cypress/pages/index.js +0 -3
- package/cypress/pages/matchingPage.js +166 -10
- package/cypress/pages/multipleSelectionGridPage.js +10 -2
- package/cypress/pages/rulerPage.js +12 -12
- package/cypress/pages/singleSelectionGridPage.js +10 -2
- package/cypress/pages/textEntryMathPage.js +2 -1
- package/package.json +1 -1
- package/cypress/pages/listMatchingPage.js +0 -1514
- package/cypress/pages/listMatchingScoring.js +0 -2547
- package/cypress/pages/passagePage.js +0 -436
@@ -76,15 +76,14 @@ describe('Create Item page - Ruler: Edit Tab', () => {
|
|
76
76
|
rulerPage.steps.verifyDropdownIsCollapsed();
|
77
77
|
});
|
78
78
|
|
79
|
-
it(`'Length of ruler' label and
|
79
|
+
it(`'Length of ruler' label and options should be displayed and by default ${rulerOptions[0].lengthOfRuler[0]} should be selected`, () => {
|
80
80
|
utilities.verifyInnerText(rulerPage.lengthOfRulerLabel(), 'Length of ruler');
|
81
81
|
utilities.verifyElementVisibilityState(rulerPage.lengthOfRulerLabel(), 'visible');
|
82
|
-
rulerPage.steps.
|
83
|
-
utilities.verifyElementVisibilityState(rulerPage.lengthOfRulerDropdown(), 'exist');
|
82
|
+
rulerPage.steps.verifySelectedLengthOfRulerOption(rulerOptions[0].lengthOfRuler[0]);
|
84
83
|
});
|
85
84
|
|
86
|
-
it(
|
87
|
-
rulerPage.steps.
|
85
|
+
it(`\'Length of ruler\' label with three options ${rulerOptions[0].lengthOfRuler} should be displayed`, () => {
|
86
|
+
rulerPage.steps.verifyLengthOfRulerOptions(rulerOptions[0].lengthOfRuler);
|
88
87
|
});
|
89
88
|
|
90
89
|
it('CSS of \'Length of ruler\' label and dropdown in active state', { tags: 'css' }, () => {
|
@@ -93,13 +92,13 @@ describe('Create Item page - Ruler: Edit Tab', () => {
|
|
93
92
|
'font-size': css.fontSize.normal,
|
94
93
|
'font-weight': css.fontWeight.semibold
|
95
94
|
});
|
96
|
-
utilities.verifyCSS(rulerPage.
|
95
|
+
utilities.verifyCSS(rulerPage.lengthOfRulerOptions(rulerOptions[0].lengthOfRuler[0]), {
|
97
96
|
'color': css.color.liText,
|
98
97
|
'font-size': css.fontSize.default,
|
99
98
|
'font-weight': css.fontWeight.regular,
|
100
99
|
'background-color': css.color.liTextSelectedBg
|
101
100
|
});
|
102
|
-
utilities.verifyCSS(rulerPage.
|
101
|
+
utilities.verifyCSS(rulerPage.lengthOfRulerOptions(rulerOptions[0].lengthOfRuler[1]), {
|
103
102
|
'color': css.color.liText,
|
104
103
|
'font-size': css.fontSize.default,
|
105
104
|
'font-weight': css.fontWeight.regular
|
@@ -107,13 +106,12 @@ describe('Create Item page - Ruler: Edit Tab', () => {
|
|
107
106
|
});
|
108
107
|
|
109
108
|
it('Accessibility of\'Length of ruler\' dropdown', { tags: 'a11y' }, () => {
|
110
|
-
cy.checkAccessibility(rulerPage.
|
109
|
+
cy.checkAccessibility(rulerPage.lengthOfRulerOptions());
|
111
110
|
});
|
112
111
|
|
113
|
-
it('When user selects an option from \'Length of ruler\'
|
114
|
-
rulerPage.steps.
|
115
|
-
rulerPage.steps.
|
116
|
-
rulerPage.steps.verifyInnerTextOfLengthOfRulerDropdown(rulerOptions[0].lengthOfRuler[0]);
|
112
|
+
it('When user selects an option from \'Length of ruler\' list, then selected option should be the active selection', () => {
|
113
|
+
rulerPage.steps.selectOptionFromLengthOfRulerOptions(rulerOptions[0].lengthOfRuler[0]);
|
114
|
+
rulerPage.steps.verifySelectedLengthOfRulerOption(rulerOptions[0].lengthOfRuler[0]);
|
117
115
|
});
|
118
116
|
|
119
117
|
rulerOptions.forEach((rulerOption) => {
|
@@ -124,19 +122,17 @@ describe('Create Item page - Ruler: Edit Tab', () => {
|
|
124
122
|
rulerPage.steps.verifyInnerTextOfUnitOfMeasurementDropdown(rulerOption.displayName);
|
125
123
|
});
|
126
124
|
|
127
|
-
it(`When ${rulerOption.displayName} is the active selection for 'Unit of measurement' dropdown, then ${rulerOption.lengthOfRuler[0]} should be the active selection for 'Length of ruler'
|
128
|
-
rulerPage.steps.
|
125
|
+
it(`When ${rulerOption.displayName} is the active selection for 'Unit of measurement' dropdown, then ${rulerOption.lengthOfRuler[0]} should be the active selection for 'Length of ruler' options list`, () => {
|
126
|
+
rulerPage.steps.verifySelectedLengthOfRulerOption(rulerOption.lengthOfRuler[0]);
|
129
127
|
});
|
130
128
|
|
131
|
-
it(`
|
132
|
-
rulerPage.steps.
|
133
|
-
rulerPage.steps.verifyLengthOfRulerDropdownListOptions(rulerOption.lengthOfRuler);
|
129
|
+
it(`'Length of ruler' list should be displayed with three options ${rulerOption.lengthOfRuler}`, () => {
|
130
|
+
rulerPage.steps.verifyLengthOfRulerOptions(rulerOption.lengthOfRuler);
|
134
131
|
});
|
135
132
|
|
136
|
-
it(`When user selects an option from 'Length of ruler'
|
137
|
-
rulerPage.steps.
|
138
|
-
rulerPage.steps.
|
139
|
-
rulerPage.steps.verifyInnerTextOfLengthOfRulerDropdown(rulerOption.lengthOfRuler[1]);
|
133
|
+
it(`When user selects an option from 'Length of ruler' list, then selected option should be the active selection for the dropdown`, () => {
|
134
|
+
rulerPage.steps.selectOptionFromLengthOfRulerOptions(rulerOption.lengthOfRuler[1]);
|
135
|
+
rulerPage.steps.verifySelectedLengthOfRulerOption(rulerOption.lengthOfRuler[1]);
|
140
136
|
});
|
141
137
|
});
|
142
138
|
|
@@ -189,7 +185,7 @@ describe('Create Item page - Ruler: Edit Tab', () => {
|
|
189
185
|
|
190
186
|
it('\'Length of ruler\' label, \'Length of ruler\' dropdown and \'Allow student to flip ruler\' label with checkbox should disappear', () => {
|
191
187
|
utilities.verifyElementVisibilityState(rulerPage.lengthOfRulerLabel(), 'notExist');
|
192
|
-
utilities.verifyElementVisibilityState(rulerPage.
|
188
|
+
utilities.verifyElementVisibilityState(rulerPage.lengthOfRulerOptions(), 'notExist');
|
193
189
|
utilities.verifyElementVisibilityState(rulerPage.allowUserToFlipRulerLabel(), 'notExist');
|
194
190
|
utilities.verifyElementVisibilityState(rulerPage.allowUserToFlipRulerCheckbox(), 'notExist');
|
195
191
|
});
|
@@ -49,8 +49,7 @@ describe('Ruler: Edit tab functionality', () => {
|
|
49
49
|
it(`When the user adjusts the ruler length in the 'Length of Ruler' dropdown in the edit tab, then the length of ruler should also change in the preview tab`, () => {
|
50
50
|
cy.log('Switching to Edit Tab');
|
51
51
|
rulerPage.steps.switchToEditTab();
|
52
|
-
rulerPage.steps.
|
53
|
-
rulerPage.steps.selectOptionFromLengthOfRulerDropdown(rulerOption.lengthOfRuler[1]);
|
52
|
+
rulerPage.steps.selectOptionFromLengthOfRulerOptions(rulerOption.lengthOfRuler[1]);
|
54
53
|
cy.log('Switching to Preview Tab');
|
55
54
|
rulerPage.steps.switchToPreviewTab();
|
56
55
|
rulerPage.steps.verifyRulerVisible();
|
@@ -0,0 +1,146 @@
|
|
1
|
+
import { singleSelectionGridPage } from "../../../pages";
|
2
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
const fontSizes = { 'Tiny': '12px', 'Small': '14px', 'Default': '16px', 'Normal': '18px', 'Big': '22px', 'Huge': '26px' };
|
5
|
+
const headingFontSizes = { 'Tiny': '13.5px', 'Small': '15.75px', 'Default': '18px', 'Normal': '20.25px', 'Big': '24.75px', 'Huge': '29.25px' };
|
6
|
+
|
7
|
+
describe('Single selection grid - Additional settings', () => {
|
8
|
+
before(() => {
|
9
|
+
cy.loginAs('admin');
|
10
|
+
});
|
11
|
+
|
12
|
+
describe('Additional settings accordion', () => {
|
13
|
+
abortEarlySetup();
|
14
|
+
before(() => {
|
15
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
16
|
+
cy.barsPreLoaderWait();
|
17
|
+
});
|
18
|
+
|
19
|
+
singleSelectionGridPage.tests.verifyAdditionalSettingsAccordionProperties();
|
20
|
+
});
|
21
|
+
|
22
|
+
describe('Additional settings: Font size - Contents in edit tab', () => {
|
23
|
+
abortEarlySetup();
|
24
|
+
before(() => {
|
25
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
26
|
+
cy.barsPreLoaderWait();
|
27
|
+
singleSelectionGridPage.steps.expandAdditionalSettings();
|
28
|
+
});
|
29
|
+
|
30
|
+
singleSelectionGridPage.tests.verifyFontSizeSectionContents();
|
31
|
+
});
|
32
|
+
|
33
|
+
describe('Additional settings: Font size - functionality in edit tab', () => {
|
34
|
+
abortEarlySetup();
|
35
|
+
before(() => {
|
36
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
37
|
+
cy.barsPreLoaderWait();
|
38
|
+
singleSelectionGridPage.steps.addTextInQuestionInstructionsInputField('Please select following animals facts are correct or not');
|
39
|
+
singleSelectionGridPage.steps.setRowsAndColumnsForBasicQuestion();
|
40
|
+
singleSelectionGridPage.steps.enterTextInCellPropertyInputField({ row: 3, column: 0 }, 'Whale are mammals');
|
41
|
+
singleSelectionGridPage.steps.enterTextInCellPropertyInputField({ row: 4, column: 0 }, 'Tigers can jump upto 3 metres');
|
42
|
+
singleSelectionGridPage.steps.setAnswersForAllQuestionStemsInSpecifyCorrectAnswerSection([{ row: 1, column: 0 }, { row: 2, column: 1 }, { row: 3, column: 0 }, { row: 4, column: 1 }]);
|
43
|
+
singleSelectionGridPage.steps.expandAdditionalSettings();
|
44
|
+
});
|
45
|
+
|
46
|
+
Object.keys(fontSizes).forEach((option) => {
|
47
|
+
it(`When the user selects \'${option}\' option from the Font Size dropdown, then font size of the question grid in the specify correct answer section should change to ${fontSizes[option]} accordingly`, () => {
|
48
|
+
singleSelectionGridPage.steps.selectFontSizeOptionFromFontSizeDropdown(option);
|
49
|
+
utilities.verifyInnerText(singleSelectionGridPage.fontSizeDropdown(), `${option}`);
|
50
|
+
singleSelectionGridPage.gridSpecifyCorrectAnswerSection()
|
51
|
+
.within(() => {
|
52
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 3).find('.question-text-wrapper'), {
|
53
|
+
'font-size': headingFontSizes[option]
|
54
|
+
});
|
55
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 6).find('.question-text-wrapper'), {
|
56
|
+
'font-size': fontSizes[option]
|
57
|
+
});
|
58
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 9).find('.question-text-wrapper'), {
|
59
|
+
'font-size': fontSizes[option]
|
60
|
+
});
|
61
|
+
});
|
62
|
+
});
|
63
|
+
});
|
64
|
+
});
|
65
|
+
|
66
|
+
describe('Additional settings: Font size - functionality in preview tab', () => {
|
67
|
+
abortEarlySetup();
|
68
|
+
before(() => {
|
69
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
70
|
+
cy.barsPreLoaderWait();
|
71
|
+
singleSelectionGridPage.steps.addTextInQuestionInstructionsInputField('Please select following animals facts are correct or not');
|
72
|
+
singleSelectionGridPage.steps.setRowsAndColumnsForBasicQuestion();
|
73
|
+
singleSelectionGridPage.steps.enterTextInCellPropertyInputField({ row: 3, column: 0 }, 'Whale are mammals');
|
74
|
+
singleSelectionGridPage.steps.enterTextInCellPropertyInputField({ row: 4, column: 0 }, 'Tigers can jump upto 3 metres');
|
75
|
+
singleSelectionGridPage.steps.setAnswersForAllQuestionStemsInSpecifyCorrectAnswerSection([{ row: 1, column: 0 }, { row: 2, column: 1 }, { row: 3, column: 0 }, { row: 4, column: 1 }]);
|
76
|
+
singleSelectionGridPage.steps.expandAdditionalSettings();
|
77
|
+
});
|
78
|
+
|
79
|
+
Object.keys(fontSizes).forEach((option) => {
|
80
|
+
it(`When the user selects \'${option}\' option from the Font Size dropdown, then font size of the preview tab should change to ${fontSizes[option]} accordingly`, () => {
|
81
|
+
singleSelectionGridPage.steps.selectFontSizeOptionFromFontSizeDropdown(option);
|
82
|
+
utilities.verifyInnerText(singleSelectionGridPage.fontSizeDropdown(), `${option}`);
|
83
|
+
singleSelectionGridPage.steps.switchToPreviewTab();
|
84
|
+
utilities.verifyCSS(singleSelectionGridPage.questionInstructionsText(), {
|
85
|
+
'font-size': fontSizes[option]
|
86
|
+
});
|
87
|
+
singleSelectionGridPage.gridPreviewTab()
|
88
|
+
.within(() => {
|
89
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 3).find('.question-text-wrapper'), {
|
90
|
+
'font-size': headingFontSizes[option]
|
91
|
+
});
|
92
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 6).find('.question-text-wrapper'), {
|
93
|
+
'font-size': fontSizes[option]
|
94
|
+
});
|
95
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 9).find('.question-text-wrapper'), {
|
96
|
+
'font-size': fontSizes[option]
|
97
|
+
});
|
98
|
+
});
|
99
|
+
singleSelectionGridPage.steps.selectOptionsForAllQuestionStemsInPreviewTab([{ row: 1, column: 0 }, { row: 2, column: 1 }])
|
100
|
+
singleSelectionGridPage.steps.switchToGradingView();
|
101
|
+
utilities.verifyCSS(singleSelectionGridPage.correctAnswersSectionLabel(), {
|
102
|
+
'font-size': fontSizes[option]
|
103
|
+
});
|
104
|
+
singleSelectionGridPage.correctAnswerGrid()
|
105
|
+
.within(() => {
|
106
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 3).find('.question-text-wrapper'), {
|
107
|
+
'font-size': headingFontSizes[option]
|
108
|
+
});
|
109
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 6).find('.question-text-wrapper'), {
|
110
|
+
'font-size': fontSizes[option]
|
111
|
+
});
|
112
|
+
utilities.verifyCSS(utilities.getNthElement(singleSelectionGridPage.tableCell(), 9).find('.question-text-wrapper'), {
|
113
|
+
'font-size': fontSizes[option]
|
114
|
+
});
|
115
|
+
});
|
116
|
+
utilities.verifyCSS(singleSelectionGridPage.correctIncorrectStatusMessageText(), {
|
117
|
+
'font-size': fontSizes[option]
|
118
|
+
});
|
119
|
+
singleSelectionGridPage.steps.switchToStudentView();
|
120
|
+
singleSelectionGridPage.steps.switchToEditTab();
|
121
|
+
});
|
122
|
+
});
|
123
|
+
});
|
124
|
+
|
125
|
+
describe('Additional settings: Accessibility section', () => {
|
126
|
+
abortEarlySetup();
|
127
|
+
before(() => {
|
128
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
129
|
+
cy.barsPreLoaderWait();
|
130
|
+
singleSelectionGridPage.steps.expandAdditionalSettings();
|
131
|
+
});
|
132
|
+
|
133
|
+
singleSelectionGridPage.tests.verifyAdditionalSettingsAccessibilitySection();
|
134
|
+
});
|
135
|
+
|
136
|
+
describe('Additional Settings: Details section', () => {
|
137
|
+
abortEarlySetup();
|
138
|
+
before(() => {
|
139
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
140
|
+
cy.barsPreLoaderWait();
|
141
|
+
singleSelectionGridPage.steps.expandAdditionalSettings();
|
142
|
+
});
|
143
|
+
|
144
|
+
singleSelectionGridPage.tests.verifyDetailsSection();
|
145
|
+
});
|
146
|
+
});
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
2
|
+
import { dialogBoxBase, singleSelectionGridPage } from "../../../pages";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
|
5
|
+
describe('Create item page - Single selection grid: Header section and Saving question', () => {
|
6
|
+
before(() => {
|
7
|
+
cy.loginAs('admin');
|
8
|
+
});
|
9
|
+
|
10
|
+
describe('Header section contents', () => {
|
11
|
+
abortEarlySetup();
|
12
|
+
before(() => {
|
13
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
14
|
+
});
|
15
|
+
|
16
|
+
singleSelectionGridPage.tests.verifyCreateQuestionPageQuestionTypeHeader('Single selection grid');
|
17
|
+
});
|
18
|
+
|
19
|
+
describe('Tabs section', () => {
|
20
|
+
abortEarlySetup();
|
21
|
+
before(() => {
|
22
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
23
|
+
});
|
24
|
+
|
25
|
+
singleSelectionGridPage.tests.verifyTabsSection();
|
26
|
+
});
|
27
|
+
|
28
|
+
describe('Cancel button', () => {
|
29
|
+
abortEarlySetup();
|
30
|
+
before(() => {
|
31
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
32
|
+
});
|
33
|
+
|
34
|
+
singleSelectionGridPage.tests.verifyCancelButton('single selection grid')
|
35
|
+
});
|
36
|
+
|
37
|
+
describe('Save Question button', () => {
|
38
|
+
abortEarlySetup();
|
39
|
+
before(() => {
|
40
|
+
singleSelectionGridPage.steps.navigateToCreateQuestion('single selection grid');
|
41
|
+
cy.barsPreLoaderWait();
|
42
|
+
});
|
43
|
+
|
44
|
+
describe('Validation error messages', () => {
|
45
|
+
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
|
46
|
+
|
47
|
+
it('Validation error messages should be displayed below required input fields', () => {
|
48
|
+
singleSelectionGridPage.steps.verifyQuestionInstructionsErrorMessage();
|
49
|
+
utilities.verifyInnerText(utilities.getNthElement(singleSelectionGridPage.errorMessage(), 1), 'Error: Please enter some text.');
|
50
|
+
utilities.verifyInnerText(utilities.getNthElement(singleSelectionGridPage.errorMessage(), 2), 'Error: Please enter points.');
|
51
|
+
for (let index = 1; index < 4; index++) {
|
52
|
+
singleSelectionGridPage.steps.verifyErrorIconInSpecifyColumnsAndRowsGrid(index);
|
53
|
+
}
|
54
|
+
singleSelectionGridPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
|
55
|
+
singleSelectionGridPage.steps.verifySpecifyCorrectAnswerErrorMessage();
|
56
|
+
});
|
57
|
+
|
58
|
+
it('Validation error messages should disappear when required input fields are filled', () => {
|
59
|
+
singleSelectionGridPage.steps.addTextInQuestionInstructionsInputField('Please select following animals facts are correct or not');
|
60
|
+
singleSelectionGridPage.steps.setRowsAndColumnsForBasicQuestion();
|
61
|
+
singleSelectionGridPage.steps.enterTextInCellPropertyInputField({ row: 3, column: 0 }, 'Whale are mammals');
|
62
|
+
singleSelectionGridPage.steps.enterTextInCellPropertyInputField({ row: 4, column: 0 }, 'Tigers can jump upto 3 metres');
|
63
|
+
singleSelectionGridPage.steps.setAnswersForAllQuestionStemsInSpecifyCorrectAnswerSection([{ row: 1, column: 0 }, { row: 2, column: 1 }, { row: 3, column: 0 }, { row: 4, column: 1 }]);
|
64
|
+
singleSelectionGridPage.steps.allotPoints(10);
|
65
|
+
for (let index = 1; index < 4; index++) {
|
66
|
+
singleSelectionGridPage.steps.verifyErrorIconInSpecifyColumnsAndRowsGridNotExists(index);
|
67
|
+
}
|
68
|
+
singleSelectionGridPage.steps.verifyErrorMessageIsNotDisplayed();
|
69
|
+
singleSelectionGridPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
|
70
|
+
});
|
71
|
+
|
72
|
+
singleSelectionGridPage.tests.verifyCreateItemWrapperContentsA11y();
|
73
|
+
});
|
74
|
+
|
75
|
+
describe('Saving a question', () => {
|
76
|
+
it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
|
77
|
+
singleSelectionGridPage.steps.saveAQuestionAndVerifySnackbar();
|
78
|
+
});
|
79
|
+
|
80
|
+
singleSelectionGridPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
|
81
|
+
});
|
82
|
+
});
|
83
|
+
});
|
@@ -243,7 +243,8 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
|
|
243
243
|
it('When number of answer input fields is reduced to 1, then input field numeration and its delete button should not be displayed', () => {
|
244
244
|
cy.log('Pre-step: Reduce number of answer input fields to 1');
|
245
245
|
textEntryMathPage.steps.clickOnAnswerInputDeleteButton(0);
|
246
|
-
|
246
|
+
textEntryMathPage.steps.clickOnAnswerInputDeleteButton(0);
|
247
|
+
utilities.verifyElementCount(textEntryMathPage.answersInputField(), 1);
|
247
248
|
textEntryMathPage.steps.verifyAnswerInputFieldNumerationAndDeleteButtonNotExists();
|
248
249
|
});
|
249
250
|
});
|
@@ -198,7 +198,7 @@ describe('Tool settings content for all views', () => {
|
|
198
198
|
});
|
199
199
|
|
200
200
|
//Failed due to https://redmine.zeuslearning.com/issues/557552
|
201
|
-
it
|
201
|
+
it('Accessibility of \'Hide ruler\' button', { tags: 'a11y' }, () => {
|
202
202
|
cy.checkAccessibility(rulerPage.rulerVisibilityButtonPreviewTab().parents('[class*="ItemEnginestyles__MainWrapper"]'));
|
203
203
|
});
|
204
204
|
|
@@ -62,6 +62,12 @@ export const equationEditorCategoriesAndSymbols = {
|
|
62
62
|
ariaLabel: 'Zero',
|
63
63
|
displayText: '0'
|
64
64
|
},
|
65
|
+
percent: {
|
66
|
+
title: 'Percentage',
|
67
|
+
textElement: null,
|
68
|
+
ariaLabel: 'Percentage',
|
69
|
+
displayText: '%'
|
70
|
+
},
|
65
71
|
dotMultiplier: {
|
66
72
|
title: 'Dot Multiplier',
|
67
73
|
textElement: null,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
export const evaluationMethods = [
|
2
2
|
{
|
3
|
-
name: 'Symbols are equivalent',
|
3
|
+
name: 'Symbols are equivalent.',
|
4
4
|
description: 'Response inputted needs to be equivalent to be marked correct',
|
5
5
|
answerInputField: 'true',
|
6
6
|
customSettings: ['Case sensitive', 'Accept interval notation', 'Exclude LaTeX text from validation', 'Check for equality across sides', 'Interpret alphabets as variables', 'Interpret e as Euler\'s number', 'Interpret i as imaginary', 'Decimal separator', 'Thousands separator', 'Decimal places to be compared'],
|
@@ -263,6 +263,12 @@ const tests = {
|
|
263
263
|
it('Accessibility of disabled Check Answer button', { tags: 'a11y' }, () => {
|
264
264
|
cy.checkAccessibility(autoScoredScoringPreviewTab.checkAnswerButton());
|
265
265
|
});
|
266
|
+
},
|
267
|
+
|
268
|
+
verifyGradingViewRadioButtonDisabledStateForManuallyScored: () => {
|
269
|
+
it('When the scoring type is set to "Manually scored", then the grading view radio button should be in disabled state', () => {
|
270
|
+
utilities.verifyElementDisabledClass(autoScoredScoringPreviewTab.gradingViewRadioButton().parents('[class*="RadioOptionContainer"]'));
|
271
|
+
})
|
266
272
|
}
|
267
273
|
}
|
268
274
|
|
@@ -13,7 +13,8 @@ const selectors = {
|
|
13
13
|
dropdownList: () => cy.get('.dropdown-list'),
|
14
14
|
dragHandleButton: () => cy.get('.dragicon-button'),
|
15
15
|
deleteButton: () => cy.get('button[aria-label*="Delete option"]'),
|
16
|
-
tickIconForOptionButtons: () => cy.get('.ngie-toggle-button-tick-icon')
|
16
|
+
tickIconForOptionButtons: () => cy.get('.ngie-toggle-button-tick-icon'),
|
17
|
+
errorIcon: () => cy.get('[id="Icon_material-error"]'),
|
17
18
|
}
|
18
19
|
|
19
20
|
const steps = {
|
@@ -7,7 +7,6 @@ const allCategories = Object.keys(equationEditorCategoriesAndSymbols)
|
|
7
7
|
const selectors = {
|
8
8
|
...dialogBoxBase,
|
9
9
|
createCustomCategoryButton: () => cy.get('.equation-editor-wrapper button'),
|
10
|
-
createCustomCategoryFlyoutTitle: () => cy.get('.custom-category-popup-header'),
|
11
10
|
categoryNameLabel: () => cy.get('.custom-category-flyout-content .input-label').eq(0),
|
12
11
|
categoryIconLabel: () => cy.get('.custom-category-flyout-content .input-label').eq(1),
|
13
12
|
selectedSymbolsLabel: () => cy.get('.custom-category-flyout-content .input-label').eq(2),
|
@@ -396,16 +396,16 @@ const steps = {
|
|
396
396
|
},
|
397
397
|
|
398
398
|
compareDropdownMenuAndDropdownWidthForUserSpecifiedWidth: () => {
|
399
|
-
let dropdownWidth
|
399
|
+
let dropdownWidth;
|
400
400
|
utilities.getNthElement(fillInTheGapsDropdownCommonComponent.dropdownSpecifyCorrectAnswerSection(), 0)
|
401
401
|
.then(($originalDropdownWidth) => {
|
402
|
-
dropdownWidth = $originalDropdownWidth.css('width'); //Storing original dropdown width
|
402
|
+
dropdownWidth = parseFloat($originalDropdownWidth.css('width')); //Storing original dropdown width as a numeric value
|
403
403
|
});
|
404
404
|
fillInTheGapsDropdownCommonComponent.steps.expandDropdownInSpecifyCorrectAnswerSection(0);
|
405
405
|
fillInTheGapsDropdownCommonComponent.dropdownList()
|
406
406
|
.then(($dropdownMenuWidth) => {
|
407
|
-
let dropdownMenuWidth = $dropdownMenuWidth.
|
408
|
-
expect(dropdownMenuWidth).to.be.
|
407
|
+
let dropdownMenuWidth = $dropdownMenuWidth[0].offsetWidth;
|
408
|
+
expect(dropdownMenuWidth).to.be.closeTo(dropdownWidth, 1); // Comparing dropdown menu and dropdown width with a tolerance of 1px
|
409
409
|
});
|
410
410
|
},
|
411
411
|
|
@@ -23,7 +23,7 @@ const selectors = {
|
|
23
23
|
tableCell: () => cy.get('[class*="CellContainer"]'),
|
24
24
|
correctAnswerGrid: () => cy.get('.correct-ans-selection-grid'),
|
25
25
|
tableRow: () => cy.get('[class*="wrapper-row"]'),
|
26
|
-
|
26
|
+
correctAnswersSectionLabel: () => cy.get('[class*="question-preview-wrapper"] [class*="CorrectAnswerHeader"]'),
|
27
27
|
penaltyPointsForEachIncorrectRowInputField: () => cy.get('input[aria-label="Penalty points for each incorrect row"]'),
|
28
28
|
pointsPerRowLabel: () => cy.get('.selection-grid-partial-points-per-response-label'),
|
29
29
|
enableRowHeadingLabel: () => cy.get('[data-ngie-testid="enable-row-heading-checkbox"] [class*="label"]'),
|
@@ -657,6 +657,34 @@ const steps = {
|
|
657
657
|
});
|
658
658
|
return questionsArray;
|
659
659
|
},
|
660
|
+
|
661
|
+
/**
|
662
|
+
* Verifies the presence of an error icon in the specified row of the Specify Columns and Rows grid.
|
663
|
+
* @param {number} rowIndex - The index of the row to verify.
|
664
|
+
*/
|
665
|
+
verifyErrorIconInSpecifyColumnsAndRowsGrid: (rowIndex) => {
|
666
|
+
utilities.getNthElement(gridQuestionCommonComponent.editCellPropertyRow(), rowIndex)
|
667
|
+
.within(() => {
|
668
|
+
utilities.getNthElement(gridQuestionCommonComponent.tableCell(), 0)
|
669
|
+
.within(() => {
|
670
|
+
utilities.verifyElementVisibilityState(commonComponents.errorIcon(), 'visible');
|
671
|
+
});
|
672
|
+
});
|
673
|
+
},
|
674
|
+
|
675
|
+
/**
|
676
|
+
* Verifies the absence of an error icon in the specified row of the Specify Columns and Rows grid.
|
677
|
+
* @param {number} rowIndex - The index of the row to verify.
|
678
|
+
*/
|
679
|
+
verifyErrorIconInSpecifyColumnsAndRowsGridNotExists: (rowIndex) => {
|
680
|
+
utilities.getNthElement(gridQuestionCommonComponent.editCellPropertyRow(), rowIndex)
|
681
|
+
.within(() => {
|
682
|
+
utilities.getNthElement(gridQuestionCommonComponent.tableCell(), 0)
|
683
|
+
.within(() => {
|
684
|
+
utilities.verifyElementVisibilityState(commonComponents.errorIcon(), 'notExist');
|
685
|
+
});
|
686
|
+
});
|
687
|
+
}
|
660
688
|
}
|
661
689
|
|
662
690
|
const tests = {
|
@@ -251,12 +251,12 @@ const steps = {
|
|
251
251
|
|
252
252
|
verifyNoImageAlternativeTextPresentInPreviewTab: () => {
|
253
253
|
imageCanvasComponent.canvasImageInPreviewTab()
|
254
|
-
.should('have.attr', 'alt', '');
|
254
|
+
.should('have.attr', 'alt', 'highlightImage.jpg');
|
255
255
|
},
|
256
256
|
|
257
257
|
verifyNoImageAlternativeTextPresentInEditTab: () => {
|
258
258
|
imageCanvasComponent.canvasImage()
|
259
|
-
.should('have.attr', 'alt', '');
|
259
|
+
.should('have.attr', 'alt', 'highlightImage.jpg');
|
260
260
|
},
|
261
261
|
|
262
262
|
verifyImageFitsToCanvas: () => {
|
@@ -979,7 +979,7 @@ const tests = {
|
|
979
979
|
|
980
980
|
it('When user clears text in the \'Alternative text\' input field, then default alternative text should be displayed for canvas image', () => {
|
981
981
|
imageCanvasComponent.steps.clearImageAlternativeTextInputFieldText();
|
982
|
-
imageCanvasComponent.steps.
|
982
|
+
imageCanvasComponent.steps.verifyNoImageAlternativeTextPresentInEditTab();
|
983
983
|
});
|
984
984
|
},
|
985
985
|
|
@@ -138,7 +138,7 @@ const tests = {
|
|
138
138
|
questionInputFieldComponent.steps.clearQuestionInputField();
|
139
139
|
questionInputFieldComponent.steps.verifyQuestionInputFieldPlaceholder();
|
140
140
|
questionInputFieldComponent.steps.addInputToQuestionInputField('Lorem Ipsum');
|
141
|
-
utilities.
|
141
|
+
utilities.verifyTextContent(questionInputFieldComponent.questionInputField(), 'Lorem Ipsum');
|
142
142
|
questionInputFieldComponent.steps.verifyQuestionInputFieldPlaceholderNotDisplayed();
|
143
143
|
});
|
144
144
|
},
|
@@ -67,8 +67,8 @@ const selectors = {
|
|
67
67
|
//Specify correct answer matrix
|
68
68
|
tableCellContainerSpecifyCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__CellContainer"]'),
|
69
69
|
tableRowContainerSpecifyCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__RowContainer"]'),
|
70
|
-
leftArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('[aria-label="Left Pagination Button"]
|
71
|
-
rightArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('[aria-label="Right Pagination Button"]
|
70
|
+
leftArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('.classification-set-correct-answer-wrapper [aria-label="Left Pagination Button"]'),
|
71
|
+
rightArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('.classification-set-correct-answer-wrapper [aria-label="Right Pagination Button"]'),
|
72
72
|
tableCellLabel: () => cy.get('.cell-label'),
|
73
73
|
|
74
74
|
//Additional Settings
|
@@ -92,8 +92,7 @@ const selectors = {
|
|
92
92
|
addRowButton: () => cy.get('[aria-label="Rows"] [aria-label*="Increase count"]'),
|
93
93
|
deleteColumnButton: () => cy.get('[aria-label="Columns"] [aria-label*="Decrease count"]'),
|
94
94
|
deleteRowButton: () => cy.get('[aria-label="Rows"] [aria-label*="Decrease count"]'),
|
95
|
-
|
96
|
-
penaltyPointsForIncorrectDropzoneInputField: () => cy.get('input[aria-label="penalty points for each incorrect option"]'),
|
95
|
+
penaltyPointsForIncorrectDropzoneInputField: () => cy.get('input[aria-label="Penalty points for each incorrect dropzone"]'),
|
97
96
|
penaltyPointsForIncorrectOptionInputField: () => cy.get('input[aria-label="penalty points for each incorrect option"]'),
|
98
97
|
penaltyPointsForEachIncorrectOptionOrDropzoneLabel: () => cy.get('[class*="PenaltyScoreForEachIncorrectstyles__PointsLabel"]'),
|
99
98
|
tableOuterBorder: () => cy.get('.table-border'),
|
@@ -174,6 +174,16 @@ const steps = {
|
|
174
174
|
.click();
|
175
175
|
},
|
176
176
|
|
177
|
+
clickAndDropGroupedOptionInOptionsContainerInSpecifyCorrectAnswerSection: (optionText) => {
|
178
|
+
fillInTheGapsOverImageDragAndDropPage.dropzoneSpecifyCorrectAnswerSection()
|
179
|
+
.contains(optionText)
|
180
|
+
.click({ force: true });
|
181
|
+
draggableOptionContainer.groupedOptionsContainerSpecifyCorrectAnswerSection()
|
182
|
+
.find('[class*="DraggableGroupItemsstyle__DraggableWrapper"]')
|
183
|
+
.eq(0)
|
184
|
+
.click();
|
185
|
+
},
|
186
|
+
|
177
187
|
/**
|
178
188
|
* @description Verifies that the image in the Preview tab has the correct source and alt text.
|
179
189
|
* @param {number} optionIndex - The index of the option in the Preview tab.
|
@@ -885,9 +885,9 @@ const steps = {
|
|
885
885
|
.should('have.value', xTickInterval)
|
886
886
|
},
|
887
887
|
|
888
|
-
|
888
|
+
verifyXDisplayAxisCheckboxUnchecked: () => {
|
889
889
|
graphingPage.xDisplayAxisCheckbox()
|
890
|
-
.should('be.checked')
|
890
|
+
.should('not.be.checked')
|
891
891
|
},
|
892
892
|
|
893
893
|
uncheckXDisplayAxisCheckbox: () => {
|
@@ -1004,9 +1004,9 @@ const steps = {
|
|
1004
1004
|
.should('have.value', yTickInterval)
|
1005
1005
|
},
|
1006
1006
|
|
1007
|
-
|
1007
|
+
verifyYDisplayAxisCheckboxUnchecked: () => {
|
1008
1008
|
graphingPage.yDisplayAxisCheckbox()
|
1009
|
-
.should('be.checked')
|
1009
|
+
.should('not.be.checked')
|
1010
1010
|
},
|
1011
1011
|
|
1012
1012
|
uncheckYDisplayAxisCheckbox: () => {
|
package/cypress/pages/index.js
CHANGED
@@ -13,9 +13,6 @@ export * from './shortTextResponsePage';
|
|
13
13
|
export * from './fillInTheGapsDropdownPage';
|
14
14
|
export * from './fillInTheGapsDragAndDropPage';
|
15
15
|
export * from './dragAndDropIntoCategoriesPage';
|
16
|
-
export * from './listMatchingPage';
|
17
|
-
export * from './listMatchingScoring';
|
18
|
-
export * from './passagePage';
|
19
16
|
export * from './highlightPage';
|
20
17
|
export * from './videoResponsePage';
|
21
18
|
export * from './listOrderingPage';
|