itemengine-cypress-automation 1.0.337-IEI-5508-automated-tests-9e03453.0 → 1.0.339-12thMarchRegressionFixes-6c8185b.0
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/ChartsBar/HorizontalOrientationBarChart/editQuestion.smoke.js +94 -0
- package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +93 -0
- package/cypress/e2e/ILC/ChartsDotsPlot/editQuestion.smoke.js +92 -0
- package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +84 -0
- package/cypress/e2e/ILC/ChartsLine/previewContentsForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/CkEditorEquationEditor/selectModeEditorBasic.js +1 -1
- package/cypress/e2e/ILC/CkEditorInsertImage/insertImageBasicFile.js +1 -1
- package/cypress/e2e/ILC/CkEditorInsertImage/upload.js +1 -1
- package/cypress/e2e/ILC/CkEditorInsertTable/insertTableEditorBasicFile.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +12 -9
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +2 -1
- package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +63 -1
- package/cypress/e2e/ILC/EssayResponse/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/EssayResponseBasic/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/EssayResponseMath/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/checkScoringLableBannerAndCorrectAnswer.js +84 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/checkAddAlternativeButton.js +33 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +2 -4
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -8
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +32 -2
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +39 -6
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +119 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +91 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/checkAddAlternativeButton.js +37 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +3 -3
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +36 -2
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +36 -6
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/previewContentsForAllViewsInIncompleteAuthoring.smoke.js +103 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +96 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/checkAddAlternativeButton.js +38 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownOptionsSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +39 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +39 -8
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViewsInIncompleteuthoring.smoke.js +106 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/supportedFileTypes.js +2 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +38 -5
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +88 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/checkAddAlternative.js +35 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editQuestion.smoke.js +33 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/previewContentsForAllViewsInIncompleteAuthoring.js +97 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -4
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +79 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/checkAddAlternativeButton.js +32 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +30 -2
- package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +35 -4
- package/cypress/e2e/ILC/FillInTheGapsTextNew/previewContentsForAllViewsInIncompleteAuthoring.smoke.js +99 -0
- package/cypress/e2e/ILC/GridFill/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/ImageHighlight/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +109 -0
- package/cypress/e2e/ILC/ImageHighlight/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternatePoints.js +45 -0
- package/cypress/e2e/ILC/ImageHighlight/Scoring/checkScoringLableBannerAndCorrectAnswer.js +96 -0
- package/cypress/e2e/ILC/ImageHighlight/checkAddAlternativeButton.js +39 -0
- package/cypress/e2e/ILC/ImageHighlight/editQuestion.smoke.js +76 -0
- package/cypress/e2e/ILC/ImageHighlight/editTabBasicSection.js +46 -0
- package/cypress/e2e/ILC/ImageHighlight/headerSection.js +35 -5
- package/cypress/e2e/ILC/ImageHighlight/previewContentForAllViewInIncompleteAuthoring.js +118 -0
- package/cypress/e2e/ILC/ListOrderingNew/editQuestion.smoke.js +3 -0
- package/cypress/e2e/ILC/Matching/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/Matching/styleAndLayoutCustomizationLayoutProperties.js +3 -3
- package/cypress/e2e/ILC/NumberLine/editQuestion.smoke.js +79 -0
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/editQuestion.smoke.js +72 -0
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +1 -0
- package/cypress/e2e/ILC/NumberLineLabel/editQuestion.smoke.js +80 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +81 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +2 -2
- package/cypress/e2e/ILC/ShortTextResponseNew/editQuestion.smoke.js +56 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/previewContentsForAllViews.smoke.js +5 -6
- package/cypress/e2e/ILC/SingleSelection/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/SingleSelection/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/SingleSelectionGridNew/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/editQuestion.smoke.js +76 -0
- package/cypress/e2e/ILC/TextEntryMathWithImage/editQuestion.smoke.js +92 -0
- package/cypress/e2e/ILC/TextEntryMathWithImage/previewTabContentsForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/TextSelection/editQuestion.smoke.js +0 -3
- package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +3 -3
- package/cypress/e2e/ILC/chartsDotsPlot/allOrNothingForAllViews.smoke.js +9 -9
- package/cypress/e2e/ILC/chartsDotsPlot/gradingViewAndCorrectAnswerView.smoke.js +2 -2
- package/cypress/e2e/ILC/chartsDotsPlot/numberLineAxisSettings.js +1 -0
- package/cypress/e2e/ILC/chartsDotsPlot/previewContentsForAllViews.smoke.js +1 -1
- package/cypress/fixtures/uploadResponseFileType.js +1 -1
- package/cypress/pages/chartsBarPage.js +3 -0
- package/cypress/pages/chartsDotPlotPage.js +2 -0
- package/cypress/pages/chartsLinePage.js +38 -2
- package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
- package/cypress/pages/components/browseItemsPage.js +4 -4
- package/cypress/pages/components/fillInTheGapsDragAndDropCommonComponents.js +22 -1
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +67 -0
- package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +66 -0
- package/cypress/pages/components/layoutSectionComponent.js +1 -1
- package/cypress/pages/components/optionsWrapperComponent.js +1 -0
- package/cypress/pages/components/scoringSectionBaseEditTab.js +2 -1
- package/cypress/pages/createItemPage.js +7 -0
- package/cypress/pages/dialogBoxBase.js +13 -7
- package/cypress/pages/drawingResponsePage.js +73 -2
- package/cypress/pages/feedbackScalePage.js +2 -0
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +71 -4
- package/cypress/pages/fillInTheGapsDropdownPage.js +21 -0
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +2 -2
- package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +22 -0
- package/cypress/pages/fillInTheGapsOverImageTextPage.js +22 -0
- package/cypress/pages/fillInTheGapsTextPage.js +24 -2
- package/cypress/pages/imageHighlightPage.js +106 -6
- package/cypress/pages/listOrderingPage.js +4 -2
- package/cypress/pages/menuBarPage.js +65 -65
- package/cypress/pages/multipleSelectionGridPage.js +68 -1
- package/cypress/pages/multipleSelectionPage.js +67 -0
- package/cypress/pages/numberLineLabelPage.js +4 -1
- package/cypress/pages/numberLinePage.js +2 -0
- package/cypress/pages/shortTextResponsePage.js +2 -0
- package/cypress/pages/singleSelectionGridPage.js +68 -1
- package/cypress/pages/singleSelectionPage.js +67 -0
- package/cypress/pages/textEntryMathPage.js +7 -3
- package/cypress/pages/textEntryMathWithImagePage.js +3 -0
- package/package.json +1 -1
@@ -23,7 +23,9 @@ const selectors = {
|
|
23
23
|
...figCommonStyleAndLayoutComponent,
|
24
24
|
setForAllTextContainersLabel: () => cy.get('[data-ngie-testid="set-for-all-text-containers-checkbox"] .MuiFormControlLabel-label'),
|
25
25
|
setForAllTextContainersCheckbox: () => cy.get('[data-ngie-testid="set-for-all-text-containers-checkbox"] input'),
|
26
|
-
correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.no-numeration-correct-answers-wrapper .preview-question-text-wrapper')
|
26
|
+
correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.no-numeration-correct-answers-wrapper .preview-question-text-wrapper'),
|
27
|
+
answerStatusBanner: () => cy.get('[class*="AnswerStatusWrapper"]'),
|
28
|
+
correctAnswerSectionWrapper: () => cy.get('[class*="label-image-with-text-correct-answer-wrapper"]'),
|
27
29
|
}
|
28
30
|
|
29
31
|
const steps = {
|
@@ -142,7 +144,27 @@ const steps = {
|
|
142
144
|
.should('have.attr', 'value', correctAnswer);
|
143
145
|
});
|
144
146
|
});
|
145
|
-
}
|
147
|
+
},
|
148
|
+
|
149
|
+
verifyCorrectAnswerSectionNotExist: () => {
|
150
|
+
fillInTheGapsTextPage.correctAnswerSectionWrapper()
|
151
|
+
.should('not.exist');
|
152
|
+
},
|
153
|
+
|
154
|
+
verifyCorrectAnswerSectionExist: () => {
|
155
|
+
fillInTheGapsTextPage.correctAnswerSectionWrapper()
|
156
|
+
.should('exist');
|
157
|
+
},
|
158
|
+
|
159
|
+
verifyAnswerStatusBannerNotExist: () => {
|
160
|
+
fillInTheGapsTextPage.answerStatusBanner()
|
161
|
+
.should('not.exist');
|
162
|
+
},
|
163
|
+
|
164
|
+
verifyAnswerStatusBannerExist: () => {
|
165
|
+
fillInTheGapsTextPage.answerStatusBanner()
|
166
|
+
.should('be.visible');
|
167
|
+
},
|
146
168
|
}
|
147
169
|
|
148
170
|
const tests = {
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import utilities from "../support/helpers/utilities";
|
2
|
-
import { additionalSettingsAccessibilitySectionComponent, additionalSettingsPanel, autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, backgroundImageUploadComponent, commonComponents, createQuestionBasePage, enableOuterBorderComponent, gradingViewEnumerationComponent, imageActionsComponent, imageCanvasComponent, questionInstructionsComponent, scoringSectionBaseEditTab, showAvailableOptionsToStudents, showStudentMaximumNumberOfPossibleSelections, singleMultipleSelectionModeComponent, colorPopupComponent } from "./components"
|
2
|
+
import { additionalSettingsAccessibilitySectionComponent, additionalSettingsPanel, autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, backgroundImageUploadComponent, commonComponents, createQuestionBasePage, enableOuterBorderComponent, gradingViewEnumerationComponent, imageActionsComponent, imageCanvasComponent, questionInstructionsComponent, scoringSectionBaseEditTab, showAvailableOptionsToStudents, showStudentMaximumNumberOfPossibleSelections, singleMultipleSelectionModeComponent, colorPopupComponent } from "./components";
|
3
|
+
import { createItemPage } from "./createItemPage";
|
4
|
+
import { dialogBoxBase } from "./dialogBoxBase";
|
3
5
|
const css = Cypress.env('css');
|
4
6
|
let imageWidth = 768;
|
5
7
|
let imageHeight = 432;
|
@@ -104,6 +106,8 @@ const selectors = {
|
|
104
106
|
ariaLabelInputField: () => cy.get('input[placeholder*="Enter ARIA label"]'),
|
105
107
|
inputFieldNumeration: () => cy.get('.MuiInputAdornment-root'),
|
106
108
|
ariaLabelSectionLabel: () => cy.get('[class*="styles__LabelWrapper"]').contains('ARIA'),
|
109
|
+
addAlternativeAnswerButton: () => cy.get('[class*="AddAlternateAnswer"] button'),
|
110
|
+
correctAnswerSection: () => cy.get('[class*="CorrectAnswerTextWrapper"]'),
|
107
111
|
}
|
108
112
|
|
109
113
|
const steps = {
|
@@ -122,6 +126,8 @@ const steps = {
|
|
122
126
|
...showStudentMaximumNumberOfPossibleSelections.steps,
|
123
127
|
...additionalSettingsPanel.steps,
|
124
128
|
...gradingViewEnumerationComponent.steps,
|
129
|
+
...createItemPage.steps,
|
130
|
+
...commonComponents.steps,
|
125
131
|
|
126
132
|
//Specify possible options
|
127
133
|
verifyToolbarDisabled: () => {
|
@@ -518,7 +524,7 @@ const steps = {
|
|
518
524
|
|
519
525
|
/**
|
520
526
|
* @param {number} index of highlight region
|
521
|
-
* @description this functions
|
527
|
+
* @description this functions removes highlight for a region in set correct answer section
|
522
528
|
*/
|
523
529
|
removeHighlightOfARegionInSetCorrectAnswerSection: (index) => {
|
524
530
|
imageHighlightPage.specifyCorrectAnswerSectionHighlight()
|
@@ -1501,6 +1507,36 @@ const steps = {
|
|
1501
1507
|
imageHighlightPage.popupBorderStyleButtons().eq(2)
|
1502
1508
|
.should('have.attr', 'aria-pressed', 'true');
|
1503
1509
|
},
|
1510
|
+
|
1511
|
+
checkAlternativeButtonDisabled: () => {
|
1512
|
+
imageHighlightPage.addAlternativeAnswerButton()
|
1513
|
+
.should('be.disabled');
|
1514
|
+
},
|
1515
|
+
|
1516
|
+
checkAlternativeButtonEnabled: () => {
|
1517
|
+
imageHighlightPage.addAlternativeAnswerButton()
|
1518
|
+
.should('be.enabled');
|
1519
|
+
},
|
1520
|
+
|
1521
|
+
verifyAnswerStatusBannerNotExist: () => {
|
1522
|
+
imageHighlightPage.correctIncorrectStatusMessageText()
|
1523
|
+
.should('not.exist');
|
1524
|
+
},
|
1525
|
+
|
1526
|
+
verifyAnswerStatusBannerExist: () => {
|
1527
|
+
imageHighlightPage.correctIncorrectStatusMessageText()
|
1528
|
+
.should('be.visible');
|
1529
|
+
},
|
1530
|
+
|
1531
|
+
verifyCorrectAnswerSectionExist: () => {
|
1532
|
+
imageHighlightPage.correctAnswerSection()
|
1533
|
+
.should('be.visible');
|
1534
|
+
},
|
1535
|
+
|
1536
|
+
verifyCorrectAnswerSectionNotExist: () => {
|
1537
|
+
imageHighlightPage.correctAnswerSection()
|
1538
|
+
.should('not.exist');
|
1539
|
+
},
|
1504
1540
|
}
|
1505
1541
|
|
1506
1542
|
const tests = {
|
@@ -1519,6 +1555,71 @@ const tests = {
|
|
1519
1555
|
...additionalSettingsPanel.tests,
|
1520
1556
|
...gradingViewEnumerationComponent.tests,
|
1521
1557
|
...additionalSettingsAccessibilitySectionComponent.tests,
|
1558
|
+
//TODO need to remove once Save as you go is available for all questions
|
1559
|
+
/**
|
1560
|
+
* @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
|
1561
|
+
* in the 'Specify correct answer' section for alternative answers in auto-scored questions.
|
1562
|
+
* @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
|
1563
|
+
* @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
|
1564
|
+
*/
|
1565
|
+
verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
|
1566
|
+
it('\'+ Add alternative answer\' button should be present', () => {
|
1567
|
+
utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
|
1568
|
+
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
|
1569
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
1570
|
+
.verifyPseudoClassBeforeProperty('content', '""');
|
1571
|
+
});
|
1572
|
+
|
1573
|
+
it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
|
1574
|
+
utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
|
1575
|
+
'color': css.color.activeButtons,
|
1576
|
+
'font-size': css.fontSize.default,
|
1577
|
+
'font-weight': css.fontWeight.regular
|
1578
|
+
});
|
1579
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
1580
|
+
.verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
|
1581
|
+
});
|
1582
|
+
|
1583
|
+
it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
|
1584
|
+
utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
|
1585
|
+
autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
|
1586
|
+
});
|
1587
|
+
|
1588
|
+
it('CSS of warning popup', { tags: 'css' }, () => {
|
1589
|
+
utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
|
1590
|
+
'color': css.color.flyoutTitle,
|
1591
|
+
'font-size': css.fontSize.heading,
|
1592
|
+
'font-weight': css.fontWeight.semibold
|
1593
|
+
});
|
1594
|
+
utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
|
1595
|
+
'color': css.color.labels,
|
1596
|
+
'font-size': css.fontSize.default,
|
1597
|
+
'font-weight': css.fontWeight.regular
|
1598
|
+
});
|
1599
|
+
utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
|
1600
|
+
'fill': css.color.closeIcon
|
1601
|
+
});
|
1602
|
+
});
|
1603
|
+
|
1604
|
+
it('Accessibility of warning popup', { tags: 'a11y' }, () => {
|
1605
|
+
cy.checkAccessibility(dialogBoxBase.dialogBox());
|
1606
|
+
dialogBoxBase.steps.closeWarningPopup();
|
1607
|
+
});
|
1608
|
+
},
|
1609
|
+
|
1610
|
+
//TODO need to remove once Save as you go is available for all questions
|
1611
|
+
verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
|
1612
|
+
it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then a warning popup should be displayed and on closing the popup, alternative 2 accordion should be in expanded state', () => {
|
1613
|
+
autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
|
1614
|
+
.click();
|
1615
|
+
dialogBoxBase.steps.closeWarningPopup();
|
1616
|
+
//TODO: Need to add error message according to question types
|
1617
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
|
1618
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
|
1619
|
+
.eq(1)
|
1620
|
+
.should('have.attr', 'aria-expanded', 'true');
|
1621
|
+
});
|
1622
|
+
},
|
1522
1623
|
|
1523
1624
|
/**
|
1524
1625
|
* @param {string} scoringType scoring type 'All or nothing| Partial equal weights| Partial different weights'
|
@@ -1550,17 +1651,16 @@ const tests = {
|
|
1550
1651
|
|
1551
1652
|
it(`When the user has removed all the options from the dropzone in the ${accordionName} accordion, error message should not be thrown on the \'${accordionName}\' accordion`, () => {
|
1552
1653
|
imageHighlightPage.steps.removeHighlightOfARegionInSetCorrectAnswerSection(1);
|
1553
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), '
|
1554
|
-
utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Please set a correct answer.')
|
1654
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist')
|
1555
1655
|
if (accordionName == 'Correct') {
|
1556
1656
|
autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
|
1557
1657
|
.within(() => {
|
1558
|
-
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), '
|
1658
|
+
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'notExist');
|
1559
1659
|
});
|
1560
1660
|
} else {
|
1561
1661
|
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
|
1562
1662
|
.within(() => {
|
1563
|
-
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), '
|
1663
|
+
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'notExist');
|
1564
1664
|
});
|
1565
1665
|
};
|
1566
1666
|
});
|
@@ -3,6 +3,7 @@ import utilities from "../support/helpers/utilities";
|
|
3
3
|
import { autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, commonComponents, correctIncorrectAnswerLabelComponent, createQuestionBasePage, optionsWrapperComponent, questionInstructionsComponent, randomizeOptionsComponent, scoringSectionBaseEditTab, studentViewSettingsLabelComponent, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, enableOuterBorderComponent, styleAndLayoutCustomizationAccordionComponent } from "./components"
|
4
4
|
import { listOrderingCommonStyleAndLayoutComponent } from "./components/listOrderingCommonStyleAndLayoutComponent";
|
5
5
|
import { createItemPage } from "./createItemPage";
|
6
|
+
import { dialogBoxBase } from "./dialogBoxBase";
|
6
7
|
const options = ['sprout', 'plant', 'flower', 'seed'];
|
7
8
|
const css = Cypress.env('css');
|
8
9
|
|
@@ -149,7 +150,8 @@ const steps = {
|
|
149
150
|
...enableOuterBorderComponent.steps,
|
150
151
|
...styleAndLayoutCustomizationAccordionComponent.steps,
|
151
152
|
...listOrderingCommonStyleAndLayoutComponent.steps,
|
152
|
-
|
153
|
+
...createItemPage.steps,
|
154
|
+
...dialogBoxBase.steps,
|
153
155
|
|
154
156
|
/**
|
155
157
|
* Verifies the border value of specify correct answer section options
|
@@ -251,7 +253,7 @@ const steps = {
|
|
251
253
|
break;
|
252
254
|
case 'none':
|
253
255
|
dragIcon
|
254
|
-
.should('not.
|
256
|
+
.should('not.be.visible');
|
255
257
|
break;
|
256
258
|
default:
|
257
259
|
throw new Error('Invalid drag handle option');
|
@@ -1,66 +1,66 @@
|
|
1
1
|
import { browseItemsPage, createQuestionBasePage } from "./components";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
2
|
+
import { createItemPage } from "./createItemPage";
|
3
|
+
|
4
|
+
const selectors = {
|
5
|
+
...browseItemsPage,
|
6
|
+
...createItemPage,
|
7
|
+
itemBankDataApiAccordion: () => cy.get('[role="button"]').contains('Item Bank'),
|
8
|
+
fetchItemsButton: () => cy.get('[role="button"]').contains('Fetch Items'),
|
9
|
+
browseItemsButton: () => cy.get('[role="button"]').contains('Browse Items'),
|
10
|
+
exampleRequestBody: () => cy.get('pre[class="body-param__example microlight"]'),
|
11
|
+
exampleResponseValue: () => cy.get('pre[class="example microlight"]'),
|
12
|
+
exampleResponseBody: () => cy.get('pre[class="microlight"]'),
|
13
|
+
responseStatus: () => cy.get('[class="response-col_status"]'),
|
14
|
+
responseDescription: () => cy.get('.response-col_description__inner'),
|
15
|
+
buttonTryItOut: () => cy.get('[class="btn try-out__btn"]'),
|
16
|
+
responseTextArea: () => cy.get('textarea[class="body-param__text"]'),
|
17
|
+
buttonExecute: () => cy.get('.execute'),
|
18
|
+
requestLoader: () => cy.get('.loading-container')
|
19
|
+
}
|
20
|
+
|
21
|
+
const steps = {
|
22
|
+
...browseItemsPage.steps,
|
23
|
+
...createItemPage.steps,
|
24
|
+
...createQuestionBasePage.steps,
|
25
|
+
expandItemBankDataApiAccordion: () => {
|
26
|
+
menuBarPage.itemBankDataApiAccordion()
|
27
|
+
.click()
|
28
|
+
.parents('[role="button"]')
|
29
|
+
.should('have.attr', 'aria-expanded', 'true');
|
30
|
+
},
|
31
|
+
|
32
|
+
clickFetchItemsButton: () => {
|
33
|
+
menuBarPage.fetchItemsButton()
|
34
|
+
.click()
|
35
|
+
.parents('[role="button"]')
|
36
|
+
.should('have.class', 'Mui-selected');
|
37
|
+
cy.url()
|
38
|
+
.should('eq', Cypress.config().baseUrl + '/item-engine/data-api/item-bank/fetch-items');
|
39
|
+
},
|
40
|
+
|
41
|
+
tryItOut: () => {
|
42
|
+
menuBarPage.buttonTryItOut()
|
43
|
+
.click();
|
44
|
+
},
|
45
|
+
|
46
|
+
enterTextInSampleRequestBody: (text) => {
|
47
|
+
menuBarPage.responseTextArea()
|
48
|
+
.clear()
|
49
|
+
.fill(text);
|
50
|
+
},
|
51
|
+
|
52
|
+
execute: () => {
|
53
|
+
menuBarPage.buttonExecute()
|
54
|
+
.click();
|
55
|
+
},
|
56
|
+
|
57
|
+
navigateToBrowseItems: () => {
|
58
|
+
menuBarPage.browseItemsButton()
|
59
|
+
.click()
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
export const menuBarPage = {
|
64
|
+
...selectors,
|
65
|
+
steps
|
66
|
+
}
|
@@ -184,7 +184,8 @@ const steps = {
|
|
184
184
|
|
185
185
|
verifyCorrectAnswerSectionNotExist: () => {
|
186
186
|
multipleSelectionGridPage.correctAnswerSection()
|
187
|
-
.should('not.exist');
|
187
|
+
.should('not.exist');
|
188
|
+
},
|
188
189
|
/**
|
189
190
|
* Verifies the contents of option fields within the options section.
|
190
191
|
* @param {Array<string>} optionsTextArray - An array of strings representing the expected text content for each option field.
|
@@ -212,6 +213,72 @@ const tests = {
|
|
212
213
|
...additionalSettingsPanel.tests,
|
213
214
|
...additionalSettingsAccessibilitySectionComponent.tests,
|
214
215
|
...styleAndLayoutCustomizationAccordionComponent.tests,
|
216
|
+
//TODO need to remove once Save as you go is available for all questions
|
217
|
+
/**
|
218
|
+
* @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
|
219
|
+
* in the 'Specify correct answer' section for alternative answers in auto-scored questions.
|
220
|
+
* @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
|
221
|
+
* @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
|
222
|
+
*/
|
223
|
+
verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
|
224
|
+
it('\'+ Add alternative answer\' button should be present', () => {
|
225
|
+
utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
|
226
|
+
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
|
227
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
228
|
+
.verifyPseudoClassBeforeProperty('content', '""');
|
229
|
+
});
|
230
|
+
|
231
|
+
it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
|
232
|
+
utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
|
233
|
+
'color': css.color.activeButtons,
|
234
|
+
'font-size': css.fontSize.default,
|
235
|
+
'font-weight': css.fontWeight.regular
|
236
|
+
});
|
237
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
238
|
+
.verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
|
239
|
+
});
|
240
|
+
|
241
|
+
it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
|
242
|
+
utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
|
243
|
+
autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
|
244
|
+
});
|
245
|
+
|
246
|
+
it('CSS of warning popup', { tags: 'css' }, () => {
|
247
|
+
utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
|
248
|
+
'color': css.color.flyoutTitle,
|
249
|
+
'font-size': css.fontSize.heading,
|
250
|
+
'font-weight': css.fontWeight.semibold
|
251
|
+
});
|
252
|
+
utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
|
253
|
+
'color': css.color.labels,
|
254
|
+
'font-size': css.fontSize.default,
|
255
|
+
'font-weight': css.fontWeight.regular
|
256
|
+
});
|
257
|
+
utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
|
258
|
+
'fill': css.color.closeIcon
|
259
|
+
});
|
260
|
+
});
|
261
|
+
|
262
|
+
it('Accessibility of warning popup', { tags: 'a11y' }, () => {
|
263
|
+
cy.checkAccessibility(dialogBoxBase.dialogBox());
|
264
|
+
dialogBoxBase.steps.closeWarningPopup();
|
265
|
+
});
|
266
|
+
},
|
267
|
+
|
268
|
+
//TODO need to remove once Save as you go is available for all questions
|
269
|
+
verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
|
270
|
+
it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then a warning popup should be displayed and on closing the popup, alternative 2 accordion should be in expanded state', () => {
|
271
|
+
autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
|
272
|
+
.click();
|
273
|
+
dialogBoxBase.steps.closeWarningPopup();
|
274
|
+
//TODO: Need to add error message according to question types
|
275
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
|
276
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
|
277
|
+
.eq(1)
|
278
|
+
.should('have.attr', 'aria-expanded', 'true');
|
279
|
+
});
|
280
|
+
},
|
281
|
+
|
215
282
|
/**
|
216
283
|
* Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
|
217
284
|
* @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
|
@@ -914,6 +914,73 @@ const tests = {
|
|
914
914
|
...ckEditorInsertTableComponent.tests,
|
915
915
|
...ckEditorInsertImageComponent.tests,
|
916
916
|
...ckEditorLinkComponent.tests,
|
917
|
+
|
918
|
+
//TODO need to remove once Save as you go is available for all questions
|
919
|
+
/**
|
920
|
+
* @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
|
921
|
+
* in the 'Specify correct answer' section for alternative answers in auto-scored questions.
|
922
|
+
* @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
|
923
|
+
* @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
|
924
|
+
*/
|
925
|
+
verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
|
926
|
+
it('\'+ Add alternative answer\' button should be present', () => {
|
927
|
+
utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
|
928
|
+
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
|
929
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
930
|
+
.verifyPseudoClassBeforeProperty('content', '""');
|
931
|
+
});
|
932
|
+
|
933
|
+
it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
|
934
|
+
utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
|
935
|
+
'color': css.color.activeButtons,
|
936
|
+
'font-size': css.fontSize.default,
|
937
|
+
'font-weight': css.fontWeight.regular
|
938
|
+
});
|
939
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
940
|
+
.verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
|
941
|
+
});
|
942
|
+
|
943
|
+
it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
|
944
|
+
utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
|
945
|
+
autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
|
946
|
+
});
|
947
|
+
|
948
|
+
it('CSS of warning popup', { tags: 'css' }, () => {
|
949
|
+
utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
|
950
|
+
'color': css.color.flyoutTitle,
|
951
|
+
'font-size': css.fontSize.heading,
|
952
|
+
'font-weight': css.fontWeight.semibold
|
953
|
+
});
|
954
|
+
utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
|
955
|
+
'color': css.color.labels,
|
956
|
+
'font-size': css.fontSize.default,
|
957
|
+
'font-weight': css.fontWeight.regular
|
958
|
+
});
|
959
|
+
utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
|
960
|
+
'fill': css.color.closeIcon
|
961
|
+
});
|
962
|
+
});
|
963
|
+
|
964
|
+
it('Accessibility of warning popup', { tags: 'a11y' }, () => {
|
965
|
+
cy.checkAccessibility(dialogBoxBase.dialogBox());
|
966
|
+
dialogBoxBase.steps.closeWarningPopup();
|
967
|
+
});
|
968
|
+
},
|
969
|
+
|
970
|
+
//TODO need to remove once Save as you go is available for all questions
|
971
|
+
verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
|
972
|
+
it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then a warning popup should be displayed and on closing the popup, alternative 2 accordion should be in expanded state', () => {
|
973
|
+
autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
|
974
|
+
.click();
|
975
|
+
dialogBoxBase.steps.closeWarningPopup();
|
976
|
+
//TODO: Need to add error message according to question types
|
977
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
|
978
|
+
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
|
979
|
+
.eq(1)
|
980
|
+
.should('have.attr', 'aria-expanded', 'true');
|
981
|
+
});
|
982
|
+
},
|
983
|
+
|
917
984
|
verifyPreviewModesAndScoreWhenPointsAndCorrectAnswersIsNotSet: () => {
|
918
985
|
it('When the user has not set correct answer option(s) and alloted points, \'Student view\' radio button should be checked, \'Grading view\' button should not be checked, 0 points should be displayed and no correct or incorrect icons should be displayed in the preview tab', () => {
|
919
986
|
utilities.verifyInnerText(autoScoredScoringPreviewTab.studentViewRadioButtonLabel(), 'Student view');
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import constants from '../fixtures/constants';
|
2
2
|
import utilities from '../support/helpers/utilities';
|
3
3
|
import { createQuestionBasePage, questionInstructionsComponent, scoringSectionBaseEditTab, ckEditorToolbar, equationEditorFlyout, autoScoredScoringPreviewTab, autoScoredStudentViewSettings, numberLineCommonComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, commonComponents, studentViewSettingsLabelComponent, randomizeOptionsComponent, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, toolSettingsComponent, layoutSectionComponent } from './components';
|
4
|
+
import { createItemPage } from './createItemPage';
|
4
5
|
const css = Cypress.env('css');
|
5
6
|
const tolerance = 6.24;
|
6
7
|
|
@@ -57,6 +58,8 @@ const steps = {
|
|
57
58
|
...commonComponents.steps,
|
58
59
|
...layoutSectionComponent.steps,
|
59
60
|
...createQuestionBasePage.steps,
|
61
|
+
...createItemPage.steps,
|
62
|
+
|
60
63
|
navigateToLabelNumberLineTab: () => {
|
61
64
|
numberLineLabelPage.labelNumberLineTab()
|
62
65
|
.click();
|
@@ -823,7 +826,7 @@ const steps = {
|
|
823
826
|
let containerHeight = $element[0].clientHeight;
|
824
827
|
graphHeight = graphHeight - containerHeight - 32;
|
825
828
|
const originY = graphHeight / 2 - tolerance / 2;
|
826
|
-
const yPixel = originY -
|
829
|
+
const yPixel = originY - y * ((graphHeight - tolerance) / range);
|
827
830
|
cy.get(`.ngie-accordion .ngie-jxgbox svg ellipse[cy*="${Math.floor(yPixel)}"]:visible`)
|
828
831
|
.should('not.exist');
|
829
832
|
});
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import utilities from '../support/helpers/utilities';
|
2
2
|
import { createQuestionBasePage, toolsAndControlsComponent, questionInstructionsComponent, resetPopupComponent, scoringSectionBaseEditTab, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, commonComponents, autoScoredScoringSectionMultiResponseType, toolSettingsComponent, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, autoScoredStudentViewSettings, randomizeOptionsComponent, studentViewSettingsLabelComponent, defaultToolDropdown, layoutSectionComponent, numberLineCommonComponent } from './components';
|
3
|
+
import { createItemPage } from './createItemPage';
|
3
4
|
import { dialogBoxBase } from './dialogBoxBase';
|
4
5
|
const css = Cypress.env('css');
|
5
6
|
const range = 22.18;
|
@@ -76,6 +77,7 @@ const steps = {
|
|
76
77
|
...defaultToolDropdown.steps,
|
77
78
|
...numberLineCommonComponent.steps,
|
78
79
|
...layoutSectionComponent.steps,
|
80
|
+
...createItemPage.steps,
|
79
81
|
|
80
82
|
/**
|
81
83
|
* This function selects tool options
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { createQuestionBasePage, autoScoredStudentViewSettings, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, questionInstructionsComponent, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, commonComponents, additionalSettingsPanel, acceptedStudentInputComponent, studentViewSettingsLabelComponent, customizeSpecialCharacterComponent, studentResponseAndLayoutComponent } from "./components/";
|
2
2
|
import { dialogBoxBase } from "./dialogBoxBase";
|
3
3
|
import utilities from "../support/helpers/utilities";
|
4
|
+
import { createItemPage } from "./createItemPage";
|
4
5
|
const css = Cypress.env('css');
|
5
6
|
|
6
7
|
const selectors = {
|
@@ -104,6 +105,7 @@ const steps = {
|
|
104
105
|
...commonComponents.steps,
|
105
106
|
...additionalSettingsPanel.steps,
|
106
107
|
...autoScoredSpecifyCorrectAnswerSection.steps,
|
108
|
+
...createItemPage.steps,
|
107
109
|
|
108
110
|
verifyCorrectIcon: () => {
|
109
111
|
utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'visible');
|