itemengine-cypress-automation 1.0.202 → 1.0.203
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/config-files/ilqa.json +1 -1
- package/cypress/e2e/ILC/ChartsBar/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +2 -2
- package/cypress/e2e/ILC/ChartsBar/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +3 -3
- package/cypress/e2e/ILC/ChartsBar/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +14 -2
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightBasic.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +356 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +320 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +355 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/toleranceThresholdScoring.js +141 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +170 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/additionalSettingsForDropzones.js +170 -0
- package/cypress/e2e/ILC/ImageHighlight/Scoring/singleSelectionPreviewScoring.js +250 -0
- package/cypress/e2e/ILC/ImageHighlight/singleMultipleSelection.js +99 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/additionalSettings.js +89 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationBorderProperties.js +53 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationGridProperties.js +98 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +89 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationBorderProperties.js +54 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +90 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCutomizationGridProperties.js +99 -0
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/allOrNothingPenaltyScoring.js +61 -0
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +227 -0
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +380 -0
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +294 -0
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +383 -0
- package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +7 -7
- package/cypress/pages/chartsBarPage.js +1 -4
- package/cypress/pages/chartsDotPlotPage.js +0 -13
- package/cypress/pages/components/additionalSettingsPanel.js +1 -0
- package/cypress/pages/components/ariaLabelSectionComponent.js +1 -1
- package/cypress/pages/components/chartsCommonComponent.js +19 -0
- package/cypress/pages/components/fillInTheGapsDragAndDropCommonComponents.js +1 -0
- package/cypress/pages/components/gridQuestionCommonComponent.js +1836 -134
- package/cypress/pages/components/singleMultipleSelectionModeComponent.js +74 -1
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +25 -2
- package/cypress/pages/essayResponsePage.js +9 -1
- package/cypress/pages/feedbackScalePage.js +1 -1
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +111 -30
- package/cypress/pages/matchingPage.js +2 -1
- package/cypress/pages/multipleSelectionGridPage.js +4 -2
- package/cypress/pages/shortTextResponsePage.js +2 -2
- package/cypress/pages/singleSelectionGridPage.js +4 -2
- package/cypress/pages/textEntryMathPage.js +1 -0
- package/cypress/pages/textEntryMathWithImagePage.js +1 -1
- package/cypress/pages/uploadResponsePage.js +1 -3
- package/package.json +1 -1
@@ -1,3 +1,6 @@
|
|
1
|
+
const css = Cypress.env('css');
|
2
|
+
import utilities from "../../support/helpers/utilities";
|
3
|
+
|
1
4
|
const selectors = {
|
2
5
|
multipleSelectionToggleButton: () => cy.get('.response-toggle-wrapper button[aria-label*="Multiple selection"]'),
|
3
6
|
singleSelectionToggleButton: () => cy.get('.response-toggle-wrapper button[aria-label*="Single selection"]'),
|
@@ -12,10 +15,80 @@ const steps = {
|
|
12
15
|
selectSingleSelectionToggle: () => {
|
13
16
|
singleMultipleSelectionModeComponent.singleSelectionToggleButton()
|
14
17
|
.click();
|
18
|
+
},
|
19
|
+
|
20
|
+
/**
|
21
|
+
* @param {("Single selection"|"Multiple selection")} toggleButtonType - Type of toggle button.
|
22
|
+
* @description Verifies the selected state of toggle button.
|
23
|
+
*/
|
24
|
+
verifyToggleButtonSelected: (toggleButtonType) => {
|
25
|
+
switch (toggleButtonType) {
|
26
|
+
case 'Single Selection':
|
27
|
+
singleMultipleSelectionModeComponent.singleSelectionToggleButton()
|
28
|
+
.should('have.attr','aria-pressed','true');
|
29
|
+
break;
|
30
|
+
case 'Multiple selection':
|
31
|
+
singleMultipleSelectionModeComponent.multipleSelectionToggleButton()
|
32
|
+
.should('have.attr','aria-pressed','true');
|
33
|
+
break;
|
34
|
+
default:
|
35
|
+
throw new Error('Invalid toggle button');
|
36
|
+
}
|
37
|
+
},
|
38
|
+
|
39
|
+
/**
|
40
|
+
* @param {("Single selection"|"Multiple selection")} toggleButtonType - Type of toggle button.
|
41
|
+
* @description Verifies the not-selected state of toggle button.
|
42
|
+
*/
|
43
|
+
verifyToggleButtonNotSelected: (toggleButtonType) => {
|
44
|
+
switch (toggleButtonType) {
|
45
|
+
case 'Single Selection':
|
46
|
+
singleMultipleSelectionModeComponent.singleSelectionToggleButton()
|
47
|
+
.should('have.attr','aria-pressed','false');
|
48
|
+
break;
|
49
|
+
case 'Multiple selection':
|
50
|
+
singleMultipleSelectionModeComponent.multipleSelectionToggleButton()
|
51
|
+
.should('have.attr','aria-pressed','false');
|
52
|
+
break;
|
53
|
+
default:
|
54
|
+
throw new Error('Invalid toggle button');
|
55
|
+
}
|
56
|
+
},
|
57
|
+
}
|
58
|
+
|
59
|
+
const tests = {
|
60
|
+
verifySingleMultipleSelectionModeContentCSSandA11y: () => {
|
61
|
+
it('\'Single selection\' and \'Multiple selection\' toggle buttons should be visible and \'Multiple selection\' should be selected by default',() => {
|
62
|
+
utilities.verifyElementVisibilityState(singleMultipleSelectionModeComponent.singleSelectionToggleButton(),'visible');
|
63
|
+
utilities.verifyElementVisibilityState(singleMultipleSelectionModeComponent.multipleSelectionToggleButton(),'visible');
|
64
|
+
utilities.verifyInnerText(singleMultipleSelectionModeComponent.singleSelectionToggleButton(),'Single selection');
|
65
|
+
utilities.verifyInnerText(singleMultipleSelectionModeComponent.multipleSelectionToggleButton(),'Multiple selection');
|
66
|
+
singleMultipleSelectionModeComponent.steps.verifyToggleButtonSelected('Multiple selection');
|
67
|
+
});
|
68
|
+
|
69
|
+
it('CSS of Single multiple selection toggle buttons', { tags: 'css' }, () => {
|
70
|
+
utilities.verifyCSS(singleMultipleSelectionModeComponent.singleSelectionToggleButton(), {
|
71
|
+
'background-color': css.color.transparent,
|
72
|
+
'color':css.color.UnselectedToggleButton,
|
73
|
+
'font-size': css.fontSize.normal,
|
74
|
+
'font-weight': css.fontWeight.bold
|
75
|
+
});
|
76
|
+
utilities.verifyCSS(singleMultipleSelectionModeComponent.multipleSelectionToggleButton(), {
|
77
|
+
'background-color': css.color.toggleButtonSelectedBg,
|
78
|
+
'color':css.color.primaryBtn,
|
79
|
+
'font-size': css.fontSize.normal,
|
80
|
+
'font-weight': css.fontWeight.bold
|
81
|
+
});
|
82
|
+
});
|
83
|
+
|
84
|
+
it('Accessibility of Single multiple selection toggle buttons', { tags: 'a11y' }, () => {
|
85
|
+
cy.checkAccessibility(singleMultipleSelectionModeComponent.multipleSelectionToggleButton().parents('[class*="HighlightImagestyles__ToggleWrapper"]'));
|
86
|
+
});
|
15
87
|
}
|
16
88
|
}
|
17
89
|
|
18
90
|
export const singleMultipleSelectionModeComponent = {
|
19
91
|
...selectors,
|
20
|
-
steps
|
92
|
+
steps,
|
93
|
+
tests
|
21
94
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { optionsWrapperComponent, createQuestionBasePage, autoScoredSpecifyCorrectAnswerSection, scoringSectionBaseEditTab, autoScoredScoringSectionMultiResponseType, questionInstructionsComponent, autoScoredStudentViewSettings, autoScoredScoringPreviewTab, commonComponents, ckEditorToolbar, equationEditorFlyout, randomizeOptionsComponent, allowMultipleInstancesOfSameDraggableOptionComponent, studentViewSettingsLabelComponent, additionalSettingsPanel, draggableOptionContainer, draggableOptionsSectionComponent, maximumCapacityPerDropzoneComponent, enableOuterBorderComponent, specifyRowsAndColumnsComponent, additionalSettingsAccessibilitySectionComponent } from "./components";
|
1
|
+
import { optionsWrapperComponent, createQuestionBasePage, autoScoredSpecifyCorrectAnswerSection, scoringSectionBaseEditTab, autoScoredScoringSectionMultiResponseType, questionInstructionsComponent, autoScoredStudentViewSettings, autoScoredScoringPreviewTab, commonComponents, ckEditorToolbar, equationEditorFlyout, randomizeOptionsComponent, allowMultipleInstancesOfSameDraggableOptionComponent, studentViewSettingsLabelComponent, additionalSettingsPanel, draggableOptionContainer, draggableOptionsSectionComponent, maximumCapacityPerDropzoneComponent, enableOuterBorderComponent, specifyRowsAndColumnsComponent, additionalSettingsAccessibilitySectionComponent, styleAndLayoutCustomizationAccordionComponent } from "./components";
|
2
2
|
import utilities from "../support/helpers/utilities";
|
3
3
|
import constants from "../fixtures/constants";
|
4
4
|
const css = Cypress.env('css');
|
@@ -56,7 +56,7 @@ const selectors = {
|
|
56
56
|
rightArrowNavigationButton: () => cy.get('[class*="DragAndDropTablestyles__PaginationRightControl"]'),
|
57
57
|
|
58
58
|
//Specify correct answer matrix
|
59
|
-
tableCellContainerSpecifyCorrectAnswerSection: () => cy.get('[class*="
|
59
|
+
tableCellContainerSpecifyCorrectAnswerSection: () => cy.get('.classification-set-correct-answer-wrapper [class*="styles__CellContainer"]'),
|
60
60
|
tableRowContainerSpecifyCorrectAnswerSection: () => cy.get('[class*="Matrixstyles__RowContainer"]'),
|
61
61
|
leftArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('.classification-set-correct-answer-wrapper [aria-label="Left Pagination Button"]'),
|
62
62
|
rightArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('.classification-set-correct-answer-wrapper [aria-label="Right Pagination Button"]'),
|
@@ -90,6 +90,9 @@ const selectors = {
|
|
90
90
|
maxLimitInEachDropzoneHelpText: () => cy.get('[class*="Matrixstyles__MaxLimitWrapper"]'),
|
91
91
|
dropzoneGridSpecifyCorrectAnswerSection: () => cy.get('[class*="Matrixstyles__TableWrapper"]'),
|
92
92
|
dropzoneGridPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="Matrixstyles__TableWrapper"]'),
|
93
|
+
|
94
|
+
//Additional settings
|
95
|
+
layoutLabel: () => cy.get('[class*="Layoutstyles__SectionWrapper"]'),
|
93
96
|
}
|
94
97
|
|
95
98
|
const steps = {
|
@@ -921,11 +924,17 @@ const steps = {
|
|
921
924
|
dragAndDropIntoCategoriesPage.leftArrowNavigationButton()
|
922
925
|
.click();
|
923
926
|
},
|
927
|
+
|
924
928
|
clickOnLeftArrowNavigationButtonSpecifyCorrectAnswerSection: () => {
|
925
929
|
dragAndDropIntoCategoriesPage.leftArrowNavigationButtonSpecifyCorrectAnswerSection()
|
926
930
|
.click();
|
927
931
|
},
|
928
932
|
|
933
|
+
clickOnLeftArrowNavigationButtonPreviewTab: () => {
|
934
|
+
dragAndDropIntoCategoriesPage.leftArrowNavigationButtonPreviewTab()
|
935
|
+
.click();
|
936
|
+
},
|
937
|
+
|
929
938
|
clickOnRightArrowNavigationButton: () => {
|
930
939
|
dragAndDropIntoCategoriesPage.rightArrowNavigationButton()
|
931
940
|
.click();
|
@@ -936,6 +945,11 @@ const steps = {
|
|
936
945
|
.click();
|
937
946
|
},
|
938
947
|
|
948
|
+
clickOnRightArrowNavigationButtonPreviewTab: () => {
|
949
|
+
dragAndDropIntoCategoriesPage.rightArrowNavigationButtonPreviewTab()
|
950
|
+
.click();
|
951
|
+
},
|
952
|
+
|
939
953
|
/**
|
940
954
|
* @description Verify column is visible in the specify columns and rows section table
|
941
955
|
* @param {number} columnIndex Index of the column
|
@@ -952,6 +966,14 @@ const steps = {
|
|
952
966
|
utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection().eq(columnIndex), 'visible');
|
953
967
|
},
|
954
968
|
|
969
|
+
/**
|
970
|
+
* @description Verify column is visible in the preview tab table
|
971
|
+
* @param {number} columnIndex Index of the column
|
972
|
+
*/
|
973
|
+
verifyColumnIsVisibleInTablePreviewTab: (columnIndex) => {
|
974
|
+
utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.cellContainerPreviewTab().eq(columnIndex), 'visible');
|
975
|
+
},
|
976
|
+
|
955
977
|
/**
|
956
978
|
* @description Verify column is not visible in the specify columns and rows section table
|
957
979
|
* @param {number} columnIndex Index of the column
|
@@ -1286,6 +1308,7 @@ const tests = {
|
|
1286
1308
|
...createQuestionBasePage.tests,
|
1287
1309
|
...additionalSettingsPanel.tests,
|
1288
1310
|
...additionalSettingsAccessibilitySectionComponent.tests,
|
1311
|
+
...styleAndLayoutCustomizationAccordionComponent.tests,
|
1289
1312
|
verifyContentsOfSpecifyCorrectAnswerSection: (scoringType) => {
|
1290
1313
|
it(`When the user selects ${scoringType} from scoring type dropdown then the specify correct answer sections should be displayed`, () => {
|
1291
1314
|
dragAndDropIntoCategoriesPage.steps.verifyTableCellPropertySpecifyCorrectAnswer(0, 'None');
|
@@ -804,7 +804,15 @@ const steps = {
|
|
804
804
|
categoryNamesArray.forEach((categoryTooltipName) => {
|
805
805
|
essayResponsePage.equationEditorSectionCategories()
|
806
806
|
.contains(categoryTooltipName, { matchCase: false })
|
807
|
-
.
|
807
|
+
.trigger('mouseover')
|
808
|
+
commonComponents.tooltipText()
|
809
|
+
.and('be.visible')
|
810
|
+
.should('have.text', categoryTooltipName)
|
811
|
+
essayResponsePage.equationEditorSectionCategories()
|
812
|
+
.contains(categoryTooltipName, { matchCase: false })
|
813
|
+
.trigger('mouseout')
|
814
|
+
commonComponents.tooltipText()
|
815
|
+
.should('not.exist');
|
808
816
|
});
|
809
817
|
},
|
810
818
|
|
@@ -97,7 +97,7 @@ const selectors = {
|
|
97
97
|
scoringHelpText: () => cy.get('[class*="ScoringText"]'),
|
98
98
|
studentViewSettingsLabel: () => cy.get('[class*="StudentViewSettingsLabel"]'),
|
99
99
|
legendAccordionWrapper: () => cy.get('[class*="feedback-layout-accordion"]'),
|
100
|
-
additionalSettingsAcknowledgementsLabel:()=> cy.get('.additional-settings-
|
100
|
+
additionalSettingsAcknowledgementsLabel:()=> cy.get('.additional-settings-container [class*="InlineRichTextComponentstyles__LabelWarpper"]')
|
101
101
|
}
|
102
102
|
|
103
103
|
const steps = {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import constants from "../fixtures/constants";
|
2
2
|
import utilities from "../support/helpers/utilities";
|
3
3
|
const css = Cypress.env('css');
|
4
|
-
import { createQuestionBasePage, optionsWrapperComponent, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, questionInputFieldComponent, fillInTheGapsDragAndDropCommonComponents, correctIncorrectAnswerLabelComponent, questionInstructionsComponent, autoScoredStudentViewSettings, ckEditorToolbar, equationEditorFlyout, draggableOptionContainer, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, commonComponents, draggableOptionsSectionComponent, studentViewSettingsLabelComponent, randomizeOptionsComponent, enableOuterBorderComponent, allowMultipleInstancesOfSameDraggableOptionComponent, additionalSettingsPanel, responseAreaSettingsPopupComponent, styleAndLayoutCustomizationAccordionComponent, figCommonStyleAndLayoutComponent, draggableOptionsStyleAndLayoutComponent } from "./components"
|
4
|
+
import { createQuestionBasePage, optionsWrapperComponent, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, questionInputFieldComponent, fillInTheGapsDragAndDropCommonComponents, correctIncorrectAnswerLabelComponent, questionInstructionsComponent, autoScoredStudentViewSettings, ckEditorToolbar, equationEditorFlyout, draggableOptionContainer, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, commonComponents, draggableOptionsSectionComponent, studentViewSettingsLabelComponent, randomizeOptionsComponent, enableOuterBorderComponent, allowMultipleInstancesOfSameDraggableOptionComponent, additionalSettingsPanel, responseAreaSettingsPopupComponent, gradingViewEnumerationComponent, ariaLabelSectionComponent, styleAndLayoutCustomizationAccordionComponent, figCommonStyleAndLayoutComponent, draggableOptionsStyleAndLayoutComponent } from "./components"
|
5
5
|
|
6
6
|
//TODO update option container selectors when https://redmine.zeuslearning.com/issues/563159 is resolved
|
7
7
|
const selectors = {
|
@@ -20,6 +20,8 @@ const selectors = {
|
|
20
20
|
...enableOuterBorderComponent,
|
21
21
|
...responseAreaSettingsPopupComponent,
|
22
22
|
...additionalSettingsPanel,
|
23
|
+
...gradingViewEnumerationComponent,
|
24
|
+
...ariaLabelSectionComponent,
|
23
25
|
...styleAndLayoutCustomizationAccordionComponent,
|
24
26
|
...figCommonStyleAndLayoutComponent,
|
25
27
|
...draggableOptionsStyleAndLayoutComponent,
|
@@ -51,6 +53,7 @@ const selectors = {
|
|
51
53
|
optionContainerOptionsPreviewTab: () => cy.get('.no-split-pane-wrapper .draggable-selected-item'),
|
52
54
|
dropzoneWrapperPreviewTab: () => cy.get('.label-image-with-dnd-canvas-wrapper .cell'),
|
53
55
|
dropzoneNumeration: () => cy.get('[class*="DroppableHotspotstyle__NumerationDiv"]'),
|
56
|
+
correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('[class*="ClozeWithDragAndDropstyles__CorrectAnswers"] .question-text-wrapper'),
|
54
57
|
//Additional settings
|
55
58
|
accessibilityLabel: () => cy.get('[class*="Accessibilitystyles__AccessibilityLabelWrapper"]'),
|
56
59
|
flagNonAccessibleCheckbox: () => cy.get('[data-ngie-testid="response-option-checkbox"] input'),
|
@@ -79,6 +82,8 @@ const steps = {
|
|
79
82
|
...allowMultipleInstancesOfSameDraggableOptionComponent.steps,
|
80
83
|
...additionalSettingsPanel.steps,
|
81
84
|
...responseAreaSettingsPopupComponent.steps,
|
85
|
+
...gradingViewEnumerationComponent.steps,
|
86
|
+
...ariaLabelSectionComponent.steps,
|
82
87
|
...styleAndLayoutCustomizationAccordionComponent.steps,
|
83
88
|
...figCommonStyleAndLayoutComponent.steps,
|
84
89
|
...draggableOptionsStyleAndLayoutComponent.steps,
|
@@ -634,8 +639,8 @@ const steps = {
|
|
634
639
|
*/
|
635
640
|
verifyOptionTextNotWordWrappedInDropzoneSpecifyCorrectAnswerSection: (dropzoneIndex) => {
|
636
641
|
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), dropzoneIndex)
|
637
|
-
.find('.
|
638
|
-
.should('not.have.class', 'word-wrap');
|
642
|
+
.find('.question-text-wrapper')
|
643
|
+
.should('not.have.class', 'word-wrap-area');
|
639
644
|
},
|
640
645
|
|
641
646
|
/**
|
@@ -644,8 +649,8 @@ const steps = {
|
|
644
649
|
*/
|
645
650
|
verifyOptionTextIsWordWrappedInDropzoneSpecifyCorrectAnswerSection: (dropzoneIndex) => {
|
646
651
|
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), dropzoneIndex)
|
647
|
-
.find('.
|
648
|
-
.should('have.class', 'word-wrap');
|
652
|
+
.find('.question-text-wrapper')
|
653
|
+
.should('have.class', 'word-wrap-area');
|
649
654
|
},
|
650
655
|
|
651
656
|
verifyDropzoneHeightWhenLongTextIsDroppedInSpecifyCorrectAnswerSection: () => {
|
@@ -671,8 +676,8 @@ const steps = {
|
|
671
676
|
*/
|
672
677
|
verifyOptionTextNotWordWrappedInDropzonePreviewTab: (dropzoneIndex) => {
|
673
678
|
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex)
|
674
|
-
.find('.
|
675
|
-
.should('not.have.class', 'word-wrap');
|
679
|
+
.find('.question-text-wrapper')
|
680
|
+
.should('not.have.class', 'word-wrap-area');
|
676
681
|
},
|
677
682
|
|
678
683
|
/**
|
@@ -681,8 +686,8 @@ const steps = {
|
|
681
686
|
*/
|
682
687
|
verifyOptionTextIsWordWrappedInDropzonePreviewTab: (dropzoneIndex) => {
|
683
688
|
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex)
|
684
|
-
.find('.
|
685
|
-
.should('have.class', 'word-wrap');
|
689
|
+
.find('.question-text-wrapper')
|
690
|
+
.should('have.class', 'word-wrap-area');
|
686
691
|
},
|
687
692
|
|
688
693
|
verifyDropzoneHeightWhenLongTextIsDroppedInPreviewTab: () => {
|
@@ -734,11 +739,85 @@ const steps = {
|
|
734
739
|
utilities.hoverAwayFromElement();
|
735
740
|
},
|
736
741
|
|
742
|
+
/**
|
743
|
+
* Verifies that the partial equal weights points per response score is as expected.
|
744
|
+
* @param {string} pointsPerResponse - The expected points per response score text.
|
745
|
+
*/
|
737
746
|
verifyPartialEqualWeightsPointsPerResponseScore: (pointsPerResponse) => {
|
738
747
|
fillInTheGapsDragAndDropPage.partialEqualWeightsPointsPerResponseScore()
|
739
748
|
.should('have.text', pointsPerResponse);
|
740
749
|
},
|
741
750
|
|
751
|
+
verifyDropzoneNumerationNotExists: () => {
|
752
|
+
utilities.verifyElementVisibilityState(fillInTheGapsDragAndDropPage.dropzoneNumeration(), 'notExist');
|
753
|
+
},
|
754
|
+
|
755
|
+
/**
|
756
|
+
* Verifies the enumeration of dropzones in the preview tab against the provided array.
|
757
|
+
* @param {Array<string>} enumerationArray - The array of expected enumerations.
|
758
|
+
* @example - verifyDropzoneEnumeration(['1', '2', '3']);
|
759
|
+
*/
|
760
|
+
verifyDropzoneEnumeration: (enumerationArray) => {
|
761
|
+
utilities.verifyElementCount(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), enumerationArray.length);
|
762
|
+
enumerationArray.forEach((option, index) => {
|
763
|
+
fillInTheGapsDragAndDropPage.dropzonePreviewTab()
|
764
|
+
.eq(index)
|
765
|
+
.within(() => {
|
766
|
+
utilities.verifyTextContent(fillInTheGapsDragAndDropPage.dropzoneNumeration(), `${option}`);
|
767
|
+
});
|
768
|
+
});
|
769
|
+
},
|
770
|
+
|
771
|
+
/**
|
772
|
+
* Verifies the enumeration of correct answer responses against the provided array.
|
773
|
+
* @param {Array<string>} enumerationArray - The array of expected correct answer enumerations.
|
774
|
+
* @example - verifyCorrectAnswerResponsesEnumeration(['A', 'B', 'C']);
|
775
|
+
*/
|
776
|
+
verifyCorrectAnswerResponsesEnumeration: (enumerationArray) => {
|
777
|
+
utilities.verifyElementCount(fillInTheGapsDragAndDropCommonComponents.correctAnswersOptions(), enumerationArray.length);
|
778
|
+
enumerationArray.forEach((option, index) => {
|
779
|
+
utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsDragAndDropCommonComponents.correctAnswersNumeration(), index), `${option}`);
|
780
|
+
});
|
781
|
+
},
|
782
|
+
|
783
|
+
/**
|
784
|
+
* Verifies the correct answer responses without enumeration.
|
785
|
+
* @param {string[]} correctAnswerArray - An array of correct answer responses to verify.
|
786
|
+
* @returns {void}
|
787
|
+
*/
|
788
|
+
verifyCorrectAnswerResponsesWithoutEnumeration: (correctAnswerArray) => {
|
789
|
+
utilities.verifyElementCount(fillInTheGapsDragAndDropCommonComponents.correctAnswerResponseWrapperWithoutEnumeration(), correctAnswerArray.length);
|
790
|
+
correctAnswerArray.forEach((correctAnswer, index) => {
|
791
|
+
utilities.getNthElement(fillInTheGapsDragAndDropCommonComponents.correctAnswerResponseWrapperWithoutEnumeration(), index)
|
792
|
+
.within(($element) => {
|
793
|
+
utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'visible');
|
794
|
+
utilities.verifyInnerText(cy.wrap($element), correctAnswer);
|
795
|
+
})
|
796
|
+
});
|
797
|
+
},
|
798
|
+
|
799
|
+
/**
|
800
|
+
* Verifies the 'aria-label' attribute of a dropzone element in the preview tab.
|
801
|
+
* @param {number} inputFieldIndex - The index of the dropzone element to verify.
|
802
|
+
* @param {string} ariaLabel - The expected value of the 'aria-label' attribute.
|
803
|
+
*/
|
804
|
+
verifyDropzoneAriaLabelPreviewTab: (inputFieldIndex, ariaLabel) => {
|
805
|
+
fillInTheGapsDragAndDropPage.dropzonePreviewTab()
|
806
|
+
.eq(inputFieldIndex)
|
807
|
+
.should('have.attr', 'aria-label', ariaLabel)
|
808
|
+
},
|
809
|
+
|
810
|
+
/**
|
811
|
+
* Verifies the 'aria-label' attribute of a dropzone element in the 'Specify Correct Answer' section.
|
812
|
+
* @param {number} inputFieldIndex - The index of the dropzone element to verify.
|
813
|
+
* @param {string} ariaLabel - The expected value of the 'aria-label' attribute.
|
814
|
+
*/
|
815
|
+
verifyDropzoneAriaLabelSpecifyCorrectAnswerSection: (inputFieldIndex, ariaLabel) => {
|
816
|
+
fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection()
|
817
|
+
.eq(inputFieldIndex)
|
818
|
+
.should('have.attr', 'aria-label', ariaLabel)
|
819
|
+
},
|
820
|
+
|
742
821
|
/**
|
743
822
|
* Verifies the placement of the draggable option panel.
|
744
823
|
* @param {('Bottom' | 'Top' | 'Left' | 'Right')} panelPlacement - The placement of the draggable option panel.
|
@@ -805,10 +884,10 @@ const steps = {
|
|
805
884
|
},
|
806
885
|
|
807
886
|
/**
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
887
|
+
* Verifies the border color of a draggable option.
|
888
|
+
* @param {number} optionIndex - The index of the draggable option.
|
889
|
+
* @param {string} borderValue - The expected border value of the draggable option.
|
890
|
+
*/
|
812
891
|
verifyDraggableOptionBorderColor: (optionIndex, borderValue) => {
|
813
892
|
utilities.verifyCSS(utilities.getNthElement(draggableOptionContainer.draggableOption(), optionIndex), {
|
814
893
|
'border': borderValue
|
@@ -816,22 +895,22 @@ const steps = {
|
|
816
895
|
},
|
817
896
|
|
818
897
|
/**
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
898
|
+
* Verifies the border style of the dropzone at the specified index.
|
899
|
+
* @param {number} optionIndex - The index of the response area to verify.
|
900
|
+
* @param {string} borderStyle - The expected border style value in CSS format.
|
901
|
+
*/
|
823
902
|
verifyDraggableOptionBorderStyle: (optionIndex, borderStyle) => {
|
824
903
|
const styleName = borderStyle.toLowerCase();
|
825
|
-
utilities.verifyCSS(utilities.getNthElement(
|
904
|
+
utilities.verifyCSS(utilities.getNthElement(fillInTheGapsDragAndDropPage.draggableOption(), optionIndex), {
|
826
905
|
'border-style': styleName
|
827
906
|
});
|
828
907
|
},
|
829
908
|
|
830
909
|
/**
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
910
|
+
* Verifies the drag handle icon of the draggable options.
|
911
|
+
* @param {('Default' | 'Arrows' | 'None')} dragIcon - The type of drag icon.
|
912
|
+
* @throws {Error} If an incorrect drag icon is provided.
|
913
|
+
*/
|
835
914
|
verifyDraggableOptionDragHandleIcon: (dragIcon) => {
|
836
915
|
draggableOptionContainer.draggableOption()
|
837
916
|
.each(($element) => {
|
@@ -868,10 +947,10 @@ const steps = {
|
|
868
947
|
},
|
869
948
|
|
870
949
|
/**
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
950
|
+
* Verifies the border color of the dropzone at the specified index.
|
951
|
+
* @param {number} dropzoneIndex - The index of the response area to verify.
|
952
|
+
* @param {string} borderValue - The expected border color value in CSS format.
|
953
|
+
*/
|
875
954
|
verifyDropzoneBorderColor: (dropzoneIndex, borderValue) => {
|
876
955
|
utilities.verifyCSS(utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex), {
|
877
956
|
'border': borderValue
|
@@ -879,10 +958,10 @@ const steps = {
|
|
879
958
|
},
|
880
959
|
|
881
960
|
/**
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
961
|
+
* Verifies the border style of the dropzone at the specified index.
|
962
|
+
* @param {number} dropzoneIndex - The index of the response area to verify.
|
963
|
+
* @param {string} borderStyle - The expected border style value in CSS format.
|
964
|
+
*/
|
886
965
|
verifyDropzoneBorderStyle: (dropzoneIndex, borderStyle) => {
|
887
966
|
const styleName = borderStyle.toLowerCase();
|
888
967
|
utilities.verifyCSS(utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex), {
|
@@ -909,6 +988,8 @@ const tests = {
|
|
909
988
|
...questionInstructionsComponent.tests,
|
910
989
|
...questionInputFieldComponent.tests,
|
911
990
|
...additionalSettingsPanel.tests,
|
991
|
+
...gradingViewEnumerationComponent.tests,
|
992
|
+
...ariaLabelSectionComponent.tests,
|
912
993
|
...styleAndLayoutCustomizationAccordionComponent.tests,
|
913
994
|
...figCommonStyleAndLayoutComponent.tests,
|
914
995
|
...draggableOptionsStyleAndLayoutComponent.tests,
|
@@ -75,6 +75,7 @@ const selectors = {
|
|
75
75
|
correctAnswersOptions: () => cy.get('.match-list-drag-and-drop .question-text-wrapper'),
|
76
76
|
correctAnswersWrapper: () => cy.get('.match-list-drag-and-drop'),
|
77
77
|
correctAnswersOptionContainer: () => cy.get('.draggable-selected-option'),
|
78
|
+
gradingViewOption: () => cy.get('..item-content-wrapper'),
|
78
79
|
questionBorderPreviewTab: () => cy.get('[class*="ClozeWithDragAndDropstyles__WrapperDiv"]'),
|
79
80
|
correctAnswerResponseWrapperWithoutEnumeration: () => cy.get('.answer-status-response-preview-wrapper .item-wrapper'),
|
80
81
|
correctAnswerTextWithoutEnumeration: () => cy.get('.answer-status-response-preview-wrapper .item-wrapper'),
|
@@ -942,7 +943,7 @@ const steps = {
|
|
942
943
|
},
|
943
944
|
|
944
945
|
verifyGradingViewOptionDisabled: () => {
|
945
|
-
matchingPage.
|
946
|
+
matchingPage.gradingViewOption()
|
946
947
|
.should('have.css', 'pointer-events', 'none');
|
947
948
|
},
|
948
949
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import utilities from "../support/helpers/utilities";
|
2
|
-
import { createQuestionBasePage, questionInstructionsComponent, gridQuestionCommonComponent, scoringSectionBaseEditTab, autoScoredScoringPreviewTab, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, specifyRowsAndColumnsComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, studentViewSettingsLabelComponent, randomizeOptionsComponent, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent } from "./components";
|
2
|
+
import { createQuestionBasePage, questionInstructionsComponent, gridQuestionCommonComponent, scoringSectionBaseEditTab, autoScoredScoringPreviewTab, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, specifyRowsAndColumnsComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, studentViewSettingsLabelComponent, randomizeOptionsComponent, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, styleAndLayoutCustomizationAccordionComponent } from "./components";
|
3
3
|
const css = Cypress.env('css');
|
4
4
|
|
5
5
|
const selectors = {
|
@@ -31,6 +31,7 @@ const steps = {
|
|
31
31
|
...randomizeOptionsComponent.steps,
|
32
32
|
...commonComponents.steps,
|
33
33
|
...additionalSettingsPanel.steps,
|
34
|
+
...styleAndLayoutCustomizationAccordionComponent.steps,
|
34
35
|
/**
|
35
36
|
* Modifies the property of an option cell in the grid for checkbox settings.
|
36
37
|
* @param {Object} position - The position of the option cell.
|
@@ -154,6 +155,7 @@ const tests = {
|
|
154
155
|
...commonComponents.tests,
|
155
156
|
...additionalSettingsPanel.tests,
|
156
157
|
...additionalSettingsAccessibilitySectionComponent.tests,
|
158
|
+
...styleAndLayoutCustomizationAccordionComponent.tests,
|
157
159
|
/**
|
158
160
|
* Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
|
159
161
|
* @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
|
@@ -242,7 +244,7 @@ const tests = {
|
|
242
244
|
optionCellPropertyMenuOptions.forEach((cellType, index) => {
|
243
245
|
utilities.verifyInnerText(utilities.getNthElement(multipleSelectionGridPage.editCellPropertyListOption(), index), cellType);
|
244
246
|
});
|
245
|
-
multipleSelectionGridPage.steps.verifyCellPropertyMenuOptionIsSelected(optionCellPropertyMenuOptions[
|
247
|
+
multipleSelectionGridPage.steps.verifyCellPropertyMenuOptionIsSelected(optionCellPropertyMenuOptions[0]);
|
246
248
|
});
|
247
249
|
|
248
250
|
it('CSS of default option type dropdown in active state', { tags: 'css' }, () => {
|
@@ -829,7 +829,7 @@ const steps = {
|
|
829
829
|
|
830
830
|
verifyAriaLabelAddedResponseFieldPreviewTab: (text) => {
|
831
831
|
shortTextResponsePage.previewTabResponseField()
|
832
|
-
.should('have.attr', 'aria-label', `${text}
|
832
|
+
.should('have.attr', 'aria-label', `${text} `);
|
833
833
|
},
|
834
834
|
|
835
835
|
verifyAnswerInputFieldHasDefaultAriaLabelInSpecifyCorrectAnswerSection: () => {
|
@@ -839,7 +839,7 @@ const steps = {
|
|
839
839
|
|
840
840
|
verifyResponseFieldHasDefaultAriaLabelInPreviewTab: () => {
|
841
841
|
shortTextResponsePage.previewTabResponseField()
|
842
|
-
.should('have.attr', 'aria-label', 'Enter your response to the question here
|
842
|
+
.should('have.attr', 'aria-label', 'Enter your response to the question here ');
|
843
843
|
},
|
844
844
|
|
845
845
|
checkFlagThisItemNonAccessibleCheckbox: () => {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import utilities from "../support/helpers/utilities";
|
2
|
-
import { createQuestionBasePage, questionInstructionsComponent, gridQuestionCommonComponent, scoringSectionBaseEditTab, ckEditorToolbar, equationEditorFlyout, autoScoredScoringPreviewTab, correctIncorrectAnswerLabelComponent, autoScoredScoringSectionMultiResponseType, autoScoredStudentViewSettings, specifyRowsAndColumnsComponent, autoScoredSpecifyCorrectAnswerSection, randomizeOptionsComponent, studentViewSettingsLabelComponent, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent } from "./components";
|
2
|
+
import { createQuestionBasePage, questionInstructionsComponent, gridQuestionCommonComponent, scoringSectionBaseEditTab, ckEditorToolbar, equationEditorFlyout, autoScoredScoringPreviewTab, correctIncorrectAnswerLabelComponent, autoScoredScoringSectionMultiResponseType, autoScoredStudentViewSettings, specifyRowsAndColumnsComponent, autoScoredSpecifyCorrectAnswerSection, randomizeOptionsComponent, studentViewSettingsLabelComponent, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, styleAndLayoutCustomizationAccordionComponent } from "./components";
|
3
3
|
const css = Cypress.env('css');
|
4
4
|
|
5
5
|
const selectors = {
|
@@ -35,6 +35,7 @@ const steps = {
|
|
35
35
|
...randomizeOptionsComponent.steps,
|
36
36
|
...commonComponents.steps,
|
37
37
|
...additionalSettingsPanel.steps,
|
38
|
+
...styleAndLayoutCustomizationAccordionComponent.steps,
|
38
39
|
/**
|
39
40
|
* Modifies the property of an option cell in the grid for radio button settings.
|
40
41
|
* @param {Object} position - The position of the option cell.
|
@@ -158,6 +159,7 @@ const tests = {
|
|
158
159
|
...createQuestionBasePage.tests,
|
159
160
|
...additionalSettingsPanel.tests,
|
160
161
|
...additionalSettingsAccessibilitySectionComponent.tests,
|
162
|
+
...styleAndLayoutCustomizationAccordionComponent.tests,
|
161
163
|
/**
|
162
164
|
* Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
|
163
165
|
* @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
|
@@ -222,7 +224,7 @@ const tests = {
|
|
222
224
|
optionCellPropertyMenuOptions.forEach((cellType, index) => {
|
223
225
|
utilities.verifyInnerText(utilities.getNthElement(singleSelectionGridPage.editCellPropertyListOption(), index), cellType);
|
224
226
|
});
|
225
|
-
singleSelectionGridPage.steps.verifyCellPropertyMenuOptionIsSelected(optionCellPropertyMenuOptions[
|
227
|
+
singleSelectionGridPage.steps.verifyCellPropertyMenuOptionIsSelected(optionCellPropertyMenuOptions[0]);
|
226
228
|
});
|
227
229
|
|
228
230
|
it('CSS of default option type dropdown in active state', { tags: 'css' }, () => {
|
@@ -10,6 +10,7 @@ const selectors = {
|
|
10
10
|
...createQuestionBasePage,
|
11
11
|
...autoScoredScoringSectionMultiResponseType,
|
12
12
|
...autoScoredSpecifyCorrectAnswerSection,
|
13
|
+
...commonComponents,
|
13
14
|
|
14
15
|
addStructureTab: () => cy.get('[data-ngie-testid="add-structure-tab"]'),
|
15
16
|
responseToken: () => cy.get('.cke_button__addresponse'),
|
@@ -15,7 +15,7 @@ const selectors = {
|
|
15
15
|
canvasInPreviewTab: () => cy.get('[class*="PreviewTabstyles__ContentWrapper"] .image-container'),
|
16
16
|
textAreaPreviewTab: () => cy.get('.label-image-with-text-preview [class*="TextBoxContainer"]'),
|
17
17
|
tickIcon: () => cy.get('.add-background-tick-icon-wrapper [data-name*="Rectangle"]'),
|
18
|
-
responseFieldWrapperPreviewTab: () => cy.get('
|
18
|
+
responseFieldWrapperPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="__PointerWrapper"]'),
|
19
19
|
responseFieldNumerationPreviewTab: () => cy.get('.image-container .response-input-adornment')
|
20
20
|
}
|
21
21
|
|
@@ -298,11 +298,9 @@ const steps = {
|
|
298
298
|
});
|
299
299
|
},
|
300
300
|
|
301
|
-
|
301
|
+
verifyEditDisplayTextPopupInputField: () => {
|
302
302
|
uploadResponsePage.editDisplayTextPopupInputField()
|
303
303
|
.should('have.value', 'image.png')
|
304
|
-
.parent()
|
305
|
-
.and('have.class', 'Mui-focused');
|
306
304
|
},
|
307
305
|
|
308
306
|
clearEditDisplayTextPopupInputField: () => {
|