itemengine-cypress-automation 1.0.341-e2eFixes18March-66a79d0.0 → 1.0.341-graphAndCharts-0a4e8d7.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/BrowseItems/browseReviewItems.js +398 -0
- package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +329 -0
- package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +260 -0
- package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +368 -0
- package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +1 -3
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +0 -2
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
- package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
- package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +84 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +3 -3
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/checkAddAlternativeButton.js +33 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +2 -4
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/draggableOptions.js +2 -4
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +33 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +39 -6
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
- package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
- package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
- package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
- package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +96 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/checkAddAlternative.js +37 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +4 -6
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabBasicSection.js +47 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +38 -9
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +0 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +2 -4
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
- package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
- package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
- package/cypress/e2e/ILC/Graphing/headerSection.js +1 -2
- package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
- package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +11 -0
- package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
- package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
- package/cypress/e2e/ILC/GridFill/headerSection.js +2 -4
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +1 -2
- package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
- package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
- package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
- package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
- package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +2 -1
- package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +226 -0
- package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
- package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
- package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
- package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
- package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
- package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
- package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
- package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
- package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
- package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +4 -2
- package/cypress/e2e/ILC/NumberLine/headerSection.js +1 -2
- package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -0
- package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +3 -4
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +10 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
- package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -2
- package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
- package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
- package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
- package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
- package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
- package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
- package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -3
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +3 -10
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -4
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -5
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +0 -4
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +2 -8
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +0 -8
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +0 -1
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +0 -8
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +0 -2
- package/cypress/e2e/ILC/TextEntryMath/customSettings.js +4 -0
- package/cypress/e2e/ILC/TextEntryMath/equationEditor.smoke.js +8 -0
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -2
- package/cypress/e2e/ILC/TextEntryMath/evaluationMethodsWithoutSetResponse.smoke.js +1 -0
- package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +10 -7
- package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
- package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingAlternatePointsMoreThanCorrectPoints.js +80 -0
- package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingCorrectPointsMoreThanAlternatePoints.js +30 -0
- package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +109 -0
- package/cypress/e2e/ILC/TextSelection/checkAddAlternativeButton.js +46 -0
- package/cypress/e2e/ILC/TextSelection/editTabBasicSection.js +57 -0
- package/cypress/e2e/ILC/TextSelection/headerSection.js +38 -6
- package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +1 -2
- package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
- package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
- package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
- package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
- package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +185 -0
- package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
- package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +289 -0
- package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
- package/cypress/e2e/ILC/ThinkSphere/planPhase.js +581 -0
- package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
- package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
- package/cypress/e2e/Sessions/fetchResponses.js +3 -3
- package/cypress/e2e/Sessions/scores.js +9 -5
- package/cypress/e2e/applitools.config.js +3 -3
- package/cypress/fixtures/constants.js +5 -1
- package/cypress/fixtures/theme/ilc.json +16 -1
- package/cypress/fixtures/uploads/sample.webm +0 -0
- package/cypress/fixtures/uploads/sample.wmv +0 -0
- package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
- package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
- package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
- package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
- package/cypress/pages/audioPlayerPage.js +22 -22
- package/cypress/pages/brainingCampManipulativePage.js +1 -1
- package/cypress/pages/components/additionalSettingsPanel.js +3 -2
- package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
- package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +17 -51
- package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
- package/cypress/pages/components/browseItemsPage.js +998 -7
- package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
- package/cypress/pages/components/ckEditorEquationEditorComponent.js +4 -4
- package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
- package/cypress/pages/components/ckEditorLinkComponent.js +3 -3
- package/cypress/pages/components/commonComponents.js +8 -1
- package/cypress/pages/components/createQuestionBasePage.js +1 -1
- package/cypress/pages/components/defaultToolDropdown.js +7 -6
- package/cypress/pages/components/desmosToolComponent.js +1 -1
- package/cypress/pages/components/editCategoryFlyout.js +2 -2
- package/cypress/pages/components/equationEditorSectionCommonComponent.js +13 -26
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -70
- package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -101
- package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
- package/cypress/pages/components/hideExpressionListComponent.js +53 -0
- package/cypress/pages/components/imageCanvasComponent.js +7 -6
- package/cypress/pages/components/index.js +1 -0
- package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
- package/cypress/pages/components/optionsWrapperComponent.js +1 -1
- package/cypress/pages/components/questionInstructionsComponent.js +7 -0
- package/cypress/pages/components/scoringSectionBaseEditTab.js +12 -13
- package/cypress/pages/desmos3DGraphingPage.js +368 -0
- package/cypress/pages/desmosGeometryPage.js +308 -0
- package/cypress/pages/dialogBoxBase.js +2 -1
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +26 -6
- package/cypress/pages/drawingResponsePage.js +16 -15
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +1 -68
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +4 -4
- package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
- package/cypress/pages/gradingViewPage.js +8 -0
- package/cypress/pages/graphingPage.js +5 -8
- package/cypress/pages/gridFillPage.js +7 -8
- package/cypress/pages/imageHighlightPage.js +0 -66
- package/cypress/pages/index.js +3 -1
- package/cypress/pages/multipleSelectionGridPage.js +1 -68
- package/cypress/pages/multipleSelectionPage.js +10 -106
- package/cypress/pages/numberLineLabelPage.js +5 -8
- package/cypress/pages/numberLinePage.js +4 -7
- package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
- package/cypress/pages/singleSelectionGridPage.js +1 -68
- package/cypress/pages/singleSelectionPage.js +0 -104
- package/cypress/pages/textSelectionPage.js +25 -6
- package/cypress/pages/thinkSpherePage.js +1874 -0
- package/cypress/support/commands.js +7 -4
- package/cypress/support/e2e.js +1 -0
- package/cypress/support/helpers/createItem.js +1181 -1
- package/cypress/support/helpers/utilities.js +75 -1
- package/deploy/smoke/deploy.yaml +2 -2
- package/package.json +3 -3
- package/scripts/dataApi.mjs +3 -0
- package/scripts/sorry-cypress.mjs +13 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
import utilities from "../../support/helpers/utilities";
|
2
2
|
import { dialogBoxBase } from "../dialogBoxBase";
|
3
|
-
import { createQuestionBasePage } from "../components
|
3
|
+
import { createQuestionBasePage } from "../components";
|
4
4
|
import { questionInstructionsComponent } from "../components/questionInstructionsComponent";
|
5
5
|
|
6
6
|
const css = Cypress.env('css');
|
@@ -8,8 +8,8 @@ const selectors = {
|
|
8
8
|
//Basic
|
9
9
|
equationEditorIcon: () => cy.get('.cke_button__nextgeneqneditor_icon:visible'),
|
10
10
|
equationEditorLabel: () => cy.get('[class*="EquationEditorstyles__Heading"]'),
|
11
|
-
okButton: () => cy.get('
|
12
|
-
|
11
|
+
okButton: () => cy.get('[title="OK"]'),
|
12
|
+
editorCancelButton: () => cy.get('[title="Cancel"]'),
|
13
13
|
equationEditorPopUp: () => cy.get('[class*="EquationEditorstyles__EquationEditorContainer"]'),
|
14
14
|
equationWrapper: () => cy.get('.cke_widget_ngie_equation [class*="NGMathJax"]'),
|
15
15
|
equationInInputField: () => cy.get('[class*="ngie_latex"]').eq(0),
|
@@ -84,8 +84,8 @@ const steps = {
|
|
84
84
|
return null;
|
85
85
|
},
|
86
86
|
|
87
|
-
|
88
|
-
ckEditorEquationEditorComponent.
|
87
|
+
closeEquationEditor: () => {
|
88
|
+
ckEditorEquationEditorComponent.editorCancelButton()
|
89
89
|
.click();
|
90
90
|
},
|
91
91
|
|
@@ -23,7 +23,7 @@ const selectors = {
|
|
23
23
|
widthInputField: () => cy.get('.cke_dialog_ui_input_text').eq(5),
|
24
24
|
heightLabel: () => cy.get('.dialog-input-label').eq(3),
|
25
25
|
heightInputField: () => cy.get('.cke_dialog_ui_input_text').eq(7),
|
26
|
-
borderLabel: () => cy.get('
|
26
|
+
borderLabel: () => cy.get('[class="cke_dialog_ui_html"]').eq(2),
|
27
27
|
borderInputField: () => cy.get('.cke_dialog_ui_input_text').eq(9),
|
28
28
|
hSpaceLabel: () => cy.get('.dialog-input-label').eq(5),
|
29
29
|
hSpaceInputField: () => cy.get('.cke_dialog_ui_input_text').eq(11),
|
@@ -36,8 +36,8 @@ const selectors = {
|
|
36
36
|
fixedRadioButton: () => cy.get('[class*="image-responsiveness-radio-wrapper"]').eq(3),
|
37
37
|
fixedRadioLabel: () => cy.get('[class*="image-responsiveness-radio-wrapper"]').eq(4),
|
38
38
|
//Alignment
|
39
|
-
alignmentLabel: () => cy.get('.dialog-input-label').eq(
|
40
|
-
alignmentDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(
|
39
|
+
alignmentLabel: () => cy.get('.dialog-input-label').eq(9),
|
40
|
+
alignmentDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(3),
|
41
41
|
alignmentOptions: (alignment = null) => {
|
42
42
|
if (alignment) {
|
43
43
|
return cy.get(`[class*="cke_dialog_ui_input_select"] option[value="${alignment}"]`)
|
@@ -12,7 +12,7 @@ const selectors = {
|
|
12
12
|
linkLabel: () => cy.get('.dialog-header-label'),
|
13
13
|
linkPopUpWrapper: () => cy.get('.custom-link-wrapper'),
|
14
14
|
urlInQuestionInstruction: () => cy.get('[data-cke-saved-href*="https"]'),
|
15
|
-
foxImageLinkUrlValueCheck: () => cy.get('[
|
15
|
+
foxImageLinkUrlValueCheck: () => cy.get('[src*="https://cdn.pixabay.com/photo/2016/11/29/03/28/fox-1867062_960_720.jpg"]'),
|
16
16
|
urlInputField: () => cy.get('input[class*="cke_dialog_ui_input_text"]').eq(1),
|
17
17
|
OkButton: () => cy.get('[title="OK"]'),
|
18
18
|
//Link Info
|
@@ -24,8 +24,8 @@ const selectors = {
|
|
24
24
|
linkTypeDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(0),
|
25
25
|
protocolLabel: () => cy.get('.dialog-input-label').eq(2),
|
26
26
|
protocolDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(1),
|
27
|
-
urlLabel: () => cy.get('.dialog-input-label').eq(
|
28
|
-
urlInputField: () => cy.get('.cke_dialog_ui_input_text').eq(
|
27
|
+
urlLabel: () => cy.get('.dialog-input-label').eq(0),
|
28
|
+
urlInputField: () => cy.get('.cke_dialog_ui_input_text').eq(0),
|
29
29
|
//Protocol
|
30
30
|
protocolDropDown: () => cy.get('.dialog-input-area').eq(2),
|
31
31
|
selectProtocolOptionDropdown: (protocolType = null) => {
|
@@ -7,6 +7,7 @@ const selectors = {
|
|
7
7
|
tooltipText: () => cy.get('[class*="MuiTooltip-tooltip"]:visible'),
|
8
8
|
snackbar: () => cy.get('.MuiSnackbarContent-message'),
|
9
9
|
snackbarCloseButton: () => cy.get('.MuiSnackbarContent-action'),
|
10
|
+
popoverContainer: () => cy.get('.ngie-popover-container'),
|
10
11
|
//Remove :visible https://redmine.zeuslearning.com/issues/564243 gets resolved
|
11
12
|
errorMessage: () => cy.get('.error-text-message:visible'),
|
12
13
|
nextGenCreateItemWrapper: () => cy.get('#nextgen-assess-create-item'),
|
@@ -17,7 +18,9 @@ const selectors = {
|
|
17
18
|
tickIconForOptionButtons: () => cy.get('.ngie-toggle-button-tick-icon'),
|
18
19
|
errorIcon: () => cy.get('[id="Icon_material-error"]'),
|
19
20
|
alertMessage: () => cy.get('[role="alert"]:visible'),
|
20
|
-
warningIcon: () => cy.get('[class*="WarningIcon"]')
|
21
|
+
warningIcon: () => cy.get('[class*="WarningIcon"]'),
|
22
|
+
buttonDesktopViewToggle: () => cy.get('[aria-label*="Desktop View toggle button"]'),
|
23
|
+
buttonMobileViewToggle: () => cy.get('[aria-label*="Mobile View toggle button"]'),
|
21
24
|
}
|
22
25
|
|
23
26
|
const steps = {
|
@@ -94,6 +97,10 @@ const steps = {
|
|
94
97
|
utilities.verifyElementVisibilityState(commonComponents.tooltipText(), 'notExist');
|
95
98
|
},
|
96
99
|
|
100
|
+
verifyErrorMessageDoesNotHaveText: () => {
|
101
|
+
commonComponents.errorMessage()
|
102
|
+
.should('not.have.text', 'Error:');
|
103
|
+
}
|
97
104
|
}
|
98
105
|
|
99
106
|
const tests = {
|
@@ -227,7 +227,7 @@ const tests = {
|
|
227
227
|
it('When user has made some edits/changes and clicks on cancel button, a popup should be displayed with message \'Are you sure you want to leave this page? Your changes have not been saved.\'', () => {
|
228
228
|
selectQuestionResourceToolPage.steps.selectQuestionType(questionType);
|
229
229
|
questionInstructionsComponent.steps.addTextInQuestionInstructionsInputField('Edited');
|
230
|
-
if (questionType !== 'feedback scale' && questionType !== 'highlight image') {
|
230
|
+
if (questionType !== 'feedback scale' && questionType !== 'highlight image' && questionType !== 'think sphere') {
|
231
231
|
scoringSectionBaseEditTab.steps.allotPoints(20);
|
232
232
|
};
|
233
233
|
createQuestionBasePage.cancelButton()
|
@@ -31,10 +31,11 @@ const steps = {
|
|
31
31
|
}
|
32
32
|
|
33
33
|
const tests = {
|
34
|
-
verifyDefaultToolDropdown:(toolOptionsArray)=>{
|
35
|
-
|
34
|
+
verifyDefaultToolDropdown:(toolOptionsArray, defaultTool)=>{
|
35
|
+
const defaultSelectedTool = defaultTool || toolOptionsArray[0];
|
36
|
+
it(`\'Default tool\' label and dropdown should be displayed with \'${defaultSelectedTool}\' option selected by default`, () => {
|
36
37
|
utilities.verifyInnerText(defaultToolDropdown.defaultToolDropdownLabel(), 'Default tool');
|
37
|
-
utilities.verifyInnerText(defaultToolDropdown.defaultToolDropdown(),
|
38
|
+
utilities.verifyInnerText(defaultToolDropdown.defaultToolDropdown(), defaultSelectedTool);
|
38
39
|
});
|
39
40
|
|
40
41
|
it(`${toolOptionsArray} options should be displayed when the user expands the \'Default tool\' dropdown`, () => {
|
@@ -53,19 +54,19 @@ const tests = {
|
|
53
54
|
'font-size': css.fontSize.normal,
|
54
55
|
'font-weight': css.fontWeight.semibold
|
55
56
|
});
|
56
|
-
utilities.verifyCSS(defaultToolDropdown.defaultToolDropdownOptions(
|
57
|
+
utilities.verifyCSS(defaultToolDropdown.defaultToolDropdownOptions(toolOptionsArray[0]), {
|
57
58
|
'color': css.color.liText,
|
58
59
|
'background-color': css.color.liTextSelectedBg,
|
59
60
|
'font-size': css.fontSize.default,
|
60
61
|
'font-weight': css.fontWeight.regular
|
61
62
|
});
|
62
|
-
utilities.verifyCSS(defaultToolDropdown.defaultToolDropdownOptions(
|
63
|
+
utilities.verifyCSS(defaultToolDropdown.defaultToolDropdownOptions(toolOptionsArray[1]), {
|
63
64
|
'color': css.color.liText,
|
64
65
|
'background-color': css.color.transparent,
|
65
66
|
'font-size': css.fontSize.default,
|
66
67
|
'font-weight': css.fontWeight.regular
|
67
68
|
});
|
68
|
-
defaultToolDropdown.steps.selectOptionFromDefaultToolDropdown(
|
69
|
+
defaultToolDropdown.steps.selectOptionFromDefaultToolDropdown(defaultSelectedTool);
|
69
70
|
});
|
70
71
|
}
|
71
72
|
}
|
@@ -21,7 +21,7 @@ const selectors = {
|
|
21
21
|
previewTabDesmosToolKeypad: () => cy.get('[class*="DesmosToolstyles__DesmosToolViewWrapper"] .dcg-basic-keypad-container'),
|
22
22
|
previewTabDesmosToolKeypadKeys: (ariaLabel = null) => {
|
23
23
|
if (ariaLabel) {
|
24
|
-
return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]`)
|
24
|
+
return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]:visible`)
|
25
25
|
} else {
|
26
26
|
return cy.get('.dcg-basic-keypad .dcg-keypad-btn')
|
27
27
|
}
|
@@ -23,9 +23,9 @@ const selectors = {
|
|
23
23
|
}
|
24
24
|
|
25
25
|
const steps = {
|
26
|
-
openEditCategoryFlyout: () => {
|
26
|
+
openEditCategoryFlyout: (categoryName = 'general') => {
|
27
27
|
essayResponsePage.equationEditorSectionCategories()
|
28
|
-
.contains(`${equationEditorCategoriesAndSymbols[
|
28
|
+
.contains(`${equationEditorCategoriesAndSymbols[categoryName].displayName}`)
|
29
29
|
.parents('[id*="DraggableItem"]')
|
30
30
|
.within(() => {
|
31
31
|
essayResponsePage.equationEditorSectionCategoriesEditIcon()
|
@@ -252,50 +252,35 @@ const tests = {
|
|
252
252
|
equationEditorFlyout.steps.verifyCategoryIsDisplayedInEquationEditor(`${equationEditorCategoriesAndSymbols['greek'].displayName}`);
|
253
253
|
});
|
254
254
|
|
255
|
-
it('On deselecting all the categories an error message
|
256
|
-
cy.log('Pre step: Switching to Edit tab')
|
255
|
+
it('On deselecting all the categories, an error message "Error: Please select a category." should be displayed, and the preview tab Equation Editor flyout should be empty', () => {
|
256
|
+
cy.log('Pre step: Switching to Edit tab');
|
257
257
|
equationEditorSectionCommonComponent.steps.switchToEditTab();
|
258
258
|
if (questionType == 'essay response') {
|
259
|
-
//Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
|
259
|
+
// Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
|
260
260
|
equationEditorSectionCommonComponent.steps.expandCustomizeFormattingOptionsAccordion();
|
261
261
|
}
|
262
262
|
equationEditorSectionCommonComponent.steps.selectingCategories([`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`, `${equationEditorCategoriesAndSymbols['primary'].displayName}`, `${equationEditorCategoriesAndSymbols['general'].displayName}`, `${equationEditorCategoriesAndSymbols['common'].displayName}`, `${equationEditorCategoriesAndSymbols['algebra'].displayName}`, `${equationEditorCategoriesAndSymbols['geo'].displayName}`, `${equationEditorCategoriesAndSymbols['compare'].displayName}`, `${equationEditorCategoriesAndSymbols['matrices'].displayName}`, `${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols['keyPad'].displayName}`]);
|
263
|
-
utilities.
|
264
|
-
cy.log('Switching to Preview tab')
|
263
|
+
utilities.verifyElementVisibilityState(equationEditorSectionCommonComponent.selectACategoryErrorMessage(), 'notExist');
|
264
|
+
cy.log('Switching to Preview tab');
|
265
265
|
equationEditorSectionCommonComponent.steps.switchToPreviewTab();
|
266
266
|
if (questionType == 'essay response') {
|
267
267
|
equationEditorSectionCommonComponent.steps.selectPreviewTabToolbarOption('Equation Editor');
|
268
|
-
}
|
269
|
-
else {
|
268
|
+
} else {
|
270
269
|
equationEditorSectionCommonComponent.steps.focusInResponseAnswerInputFieldPreviewTab(0);
|
271
270
|
}
|
272
271
|
utilities.verifyElementVisibilityState(equationEditorFlyout.dialogBox(), 'visible');
|
273
272
|
utilities.verifyElementVisibilityState(equationEditorFlyout.categoryTabTitle(), 'notExist');
|
274
273
|
utilities.verifyElementVisibilityState(equationEditorFlyout.categoryCharactersWrapper(), 'notExist');
|
275
|
-
cy.log('Post step: Switching to Edit tab')
|
274
|
+
cy.log('Post step: Switching to Edit tab');
|
276
275
|
equationEditorSectionCommonComponent.steps.switchToEditTab();
|
277
276
|
if (questionType == 'essay response') {
|
278
|
-
//Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
|
277
|
+
// Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
|
279
278
|
equationEditorSectionCommonComponent.steps.expandCustomizeFormattingOptionsAccordion();
|
280
|
-
}
|
281
|
-
});
|
282
|
-
|
283
|
-
//https://redmine.zeuslearning.com/issues/530205
|
284
|
-
it('CSS of error message', { tags: 'css' }, () => {
|
285
|
-
utilities.verifyCSS(equationEditorSectionCommonComponent.selectACategoryErrorMessage(), {
|
286
|
-
'color': css.color.errorText,
|
287
|
-
'font-size': css.fontSize.small,
|
288
|
-
'font-weight': css.fontWeight.regular
|
289
|
-
});
|
290
|
-
});
|
291
|
-
|
292
|
-
it('Accessibility of error message', { tags: 'a11y' }, () => {
|
293
|
-
cy.checkAccessibility(equationEditorSectionCommonComponent.selectACategoryErrorMessage());
|
279
|
+
}
|
294
280
|
});
|
295
281
|
|
296
|
-
it('
|
282
|
+
it('User should be able to select any category', () => {
|
297
283
|
equationEditorSectionCommonComponent.steps.selectACategoryInEquationEditorSectionEditTab(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`);
|
298
|
-
utilities.verifyElementVisibilityState(equationEditorSectionCommonComponent.selectACategoryErrorMessage(), 'notExist');
|
299
284
|
});
|
300
285
|
},
|
301
286
|
|
@@ -505,12 +490,14 @@ const tests = {
|
|
505
490
|
utilities.verifyElementNotDisabled(equationEditorFlyout.buttonPrevious());
|
506
491
|
utilities.verifyElementNotDisabled(equationEditorFlyout.buttonNext());
|
507
492
|
cy.log('Clicking on Next button to reach end of tablist')
|
508
|
-
equationEditorFlyout.steps.clickOnEquationEditorButtonNext()
|
493
|
+
equationEditorFlyout.steps.clickOnEquationEditorButtonNext();
|
494
|
+
equationEditorFlyout.steps.clickOnEquationEditorButtonNext();
|
509
495
|
utilities.verifyElementNotDisabled(equationEditorFlyout.buttonPrevious());
|
510
496
|
utilities.verifyElementDisabled(equationEditorFlyout.buttonNext());
|
511
497
|
});
|
512
498
|
|
513
499
|
it('When user clicks on the \'Previous button\', and reaches the beginning of the tablist \'Previous button\' should become disabled and \'Next button\' should become enabled', () => {
|
500
|
+
equationEditorFlyout.steps.clickOnEquationEditorButtonPrevious()
|
514
501
|
equationEditorFlyout.steps.clickOnEquationEditorButtonPrevious()
|
515
502
|
equationEditorFlyout.steps.clickOnEquationEditorButtonPrevious()
|
516
503
|
utilities.verifyElementDisabled(equationEditorFlyout.buttonPrevious());
|
@@ -6,7 +6,6 @@ import { optionsWrapperComponent } from "./optionsWrapperComponent";
|
|
6
6
|
import { createQuestionBasePage } from "./createQuestionBasePage";
|
7
7
|
import { placeholderTextSectionComponent } from "./placeholderTextSectionComponent";
|
8
8
|
import { scoringSectionBaseEditTab } from "./scoringSectionBaseEditTab";
|
9
|
-
import { dialogBoxBase } from "../dialogBoxBase";
|
10
9
|
const css = Cypress.env('css');
|
11
10
|
|
12
11
|
const selectors = {
|
@@ -418,7 +417,7 @@ const steps = {
|
|
418
417
|
},
|
419
418
|
|
420
419
|
compareDropdownMenuAndDropdownWidthForAutoScaled: () => {
|
421
|
-
let originalDropdownWidth
|
420
|
+
let originalDropdownWidth;
|
422
421
|
utilities.getNthElement(fillInTheGapsDropdownCommonComponent.dropdownSpecifyCorrectAnswerSection(), 0)
|
423
422
|
.parents('.response-dropdown-wrapper')
|
424
423
|
.then(($originalDropdownWidth) => {
|
@@ -750,72 +749,6 @@ const steps = {
|
|
750
749
|
}
|
751
750
|
|
752
751
|
const tests = {
|
753
|
-
//TODO need to remove once Save as you go is available for all questions
|
754
|
-
/**
|
755
|
-
* @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
|
756
|
-
* in the 'Specify correct answer' section for alternative answers in auto-scored questions.
|
757
|
-
* @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
|
758
|
-
* @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
|
759
|
-
*/
|
760
|
-
verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
|
761
|
-
it('\'+ Add alternative answer\' button should be present', () => {
|
762
|
-
utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
|
763
|
-
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
|
764
|
-
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
765
|
-
.verifyPseudoClassBeforeProperty('content', '""');
|
766
|
-
});
|
767
|
-
|
768
|
-
it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
|
769
|
-
utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
|
770
|
-
'color': css.color.activeButtons,
|
771
|
-
'font-size': css.fontSize.default,
|
772
|
-
'font-weight': css.fontWeight.regular
|
773
|
-
});
|
774
|
-
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
775
|
-
.verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
|
776
|
-
});
|
777
|
-
|
778
|
-
it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
|
779
|
-
utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
|
780
|
-
autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
|
781
|
-
});
|
782
|
-
|
783
|
-
it('CSS of warning popup', { tags: 'css' }, () => {
|
784
|
-
utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
|
785
|
-
'color': css.color.flyoutTitle,
|
786
|
-
'font-size': css.fontSize.heading,
|
787
|
-
'font-weight': css.fontWeight.semibold
|
788
|
-
});
|
789
|
-
utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
|
790
|
-
'color': css.color.labels,
|
791
|
-
'font-size': css.fontSize.default,
|
792
|
-
'font-weight': css.fontWeight.regular
|
793
|
-
});
|
794
|
-
utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
|
795
|
-
'fill': css.color.closeIcon
|
796
|
-
});
|
797
|
-
});
|
798
|
-
|
799
|
-
it('Accessibility of warning popup', { tags: 'a11y' }, () => {
|
800
|
-
cy.checkAccessibility(dialogBoxBase.dialogBox());
|
801
|
-
dialogBoxBase.steps.closeWarningPopup();
|
802
|
-
});
|
803
|
-
},
|
804
|
-
|
805
|
-
//TODO need to remove once Save as you go is available for all questions
|
806
|
-
verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
|
807
|
-
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', () => {
|
808
|
-
autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
|
809
|
-
.click();
|
810
|
-
dialogBoxBase.steps.closeWarningPopup();
|
811
|
-
//TODO: Need to add error message according to question types
|
812
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
|
813
|
-
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
|
814
|
-
.eq(1)
|
815
|
-
.should('have.attr', 'aria-expanded', 'true');
|
816
|
-
});
|
817
|
-
},
|
818
|
-
|
819
752
|
/**
|
820
753
|
* Verifies the contents and functionality of the 'Specify correct answer' accordion for fill in the gaps over image dropdown question.
|
821
754
|
* @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
|
@@ -830,9 +763,9 @@ const tests = {
|
|
830
763
|
});
|
831
764
|
|
832
765
|
//Note: the expand and close dropdown does not work hence selecting one option here, the error message appears
|
833
|
-
it('When user expands and collapses the dropdown without selecting any option,
|
766
|
+
it('When user expands and collapses the dropdown without selecting any option, error message should not be displayed', () => {
|
834
767
|
fillInTheGapsDropdownCommonComponent.steps.selectResponseFromDropdownSpecifyCorrectAnswerSection(0, 'Flower');
|
835
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), '
|
768
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
|
836
769
|
});
|
837
770
|
|
838
771
|
it('When the user selects any option from the dropdown, then error message should disappear and that option should be displayed on the dropdown', () => {
|
@@ -105,7 +105,7 @@ const steps = {
|
|
105
105
|
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), responseIndex)
|
106
106
|
.clear();
|
107
107
|
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), responseIndex)
|
108
|
-
.type(responseText, { delay:
|
108
|
+
.type(responseText, { delay: 0 });
|
109
109
|
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), responseIndex)
|
110
110
|
.click();
|
111
111
|
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), responseIndex)
|
@@ -474,7 +474,8 @@ const steps = {
|
|
474
474
|
*/
|
475
475
|
focusInAndFocusOutOfResponseAnswerInputFieldSpecifyCorrectAnswer: (answerFieldIndex) => {
|
476
476
|
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), answerFieldIndex)
|
477
|
-
.click()
|
477
|
+
.click();
|
478
|
+
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), answerFieldIndex)
|
478
479
|
.blur();
|
479
480
|
},
|
480
481
|
|
@@ -779,8 +780,7 @@ const steps = {
|
|
779
780
|
utilities.getNthElement(fillInTheGapsTextCommonComponent.responseAccordionAnswerInputFieldWrapper(), answerFieldIndex)
|
780
781
|
.within(() => {
|
781
782
|
fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection()
|
782
|
-
.clear()
|
783
|
-
.blur();
|
783
|
+
.clear();
|
784
784
|
});
|
785
785
|
},
|
786
786
|
|
@@ -908,10 +908,9 @@ const steps = {
|
|
908
908
|
|
909
909
|
const tests = {
|
910
910
|
verifySetLimitSectionErrorConditionsForMinAndMaxCharacterInputFields: () => {
|
911
|
-
it('When the user clears the minimum character limit input field and focuses out of it, then error message
|
911
|
+
it('When the user clears the minimum character limit input field and focuses out of it, then error message should not be displayed', () => {
|
912
912
|
fillInTheGapsTextCommonComponent.steps.clearAndFocusOutOfMinimumCharacterLimitInputField();
|
913
|
-
utilities.
|
914
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible');
|
913
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
|
915
914
|
});
|
916
915
|
|
917
916
|
commonComponents.tests.verifyErrorMessageCSSAndA11y();
|
@@ -921,10 +920,9 @@ const tests = {
|
|
921
920
|
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
922
921
|
});
|
923
922
|
|
924
|
-
it('When the user clears the maximum character limit input field and focuses out of it, then error message
|
923
|
+
it('When the user clears the maximum character limit input field and focuses out of it, then error message should not be displayed', () => {
|
925
924
|
fillInTheGapsTextCommonComponent.steps.clearAndFocusOutOfMaximumCharacterLimitInputField();
|
926
|
-
utilities.
|
927
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible');
|
925
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
|
928
926
|
});
|
929
927
|
|
930
928
|
it('When the user enters value in maximum character limit input field then the error message should disappear', () => {
|
@@ -932,10 +930,9 @@ const tests = {
|
|
932
930
|
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
933
931
|
});
|
934
932
|
|
935
|
-
it('When the user sets minimum limit input field value greater than maximum limit input field value then error message
|
933
|
+
it('When the user sets minimum limit input field value greater than maximum limit input field value then error message should not be displayed', () => {
|
936
934
|
fillInTheGapsTextCommonComponent.steps.setMinimumLimit(45);
|
937
|
-
|
938
|
-
fillInTheGapsTextCommonComponent.steps.verifyMinimumLimitErrorMessage();
|
935
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
|
939
936
|
});
|
940
937
|
|
941
938
|
commonComponents.tests.verifyErrorMessageCSSAndA11y();
|
@@ -945,10 +942,9 @@ const tests = {
|
|
945
942
|
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
946
943
|
});
|
947
944
|
|
948
|
-
it('When the user sets maximum limit input field value less than minimum limit input field value then error message
|
945
|
+
it('When the user sets maximum limit input field value less than minimum limit input field value then error message should not be displayed', () => {
|
949
946
|
fillInTheGapsTextCommonComponent.steps.setMaximumLimit(26);
|
950
|
-
|
951
|
-
fillInTheGapsTextCommonComponent.steps.verifyMinimumLimitErrorMessage();
|
947
|
+
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
952
948
|
});
|
953
949
|
|
954
950
|
it('When the user sets maximum limit input field value greater than or equal to minimum limit input field value then error message should disappear', () => {
|
@@ -1008,8 +1004,7 @@ const tests = {
|
|
1008
1004
|
|
1009
1005
|
it('When user enters zero in maximum limit input field, then error message \'Error: Maximum limit must be greater than 0.\' should be displayed', () => {
|
1010
1006
|
fillInTheGapsTextCommonComponent.steps.setMaximumLimit(0);
|
1011
|
-
|
1012
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage().eq(1), 'visible');
|
1007
|
+
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
1013
1008
|
});
|
1014
1009
|
|
1015
1010
|
it('When user enters limit more than zero in maximum limit input field, then error message should disappear', () => {
|
@@ -1017,10 +1012,9 @@ const tests = {
|
|
1017
1012
|
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
1018
1013
|
});
|
1019
1014
|
|
1020
|
-
it('When user enters minimum limit more than maximum limit then error messages should be displayed
|
1015
|
+
it('When user enters minimum limit more than maximum limit then error messages should not be displayed', () => {
|
1021
1016
|
fillInTheGapsTextCommonComponent.steps.setMinimumLimit(60);
|
1022
|
-
|
1023
|
-
utilities.verifyInnerText(commonComponents.errorMessage().eq(1), 'Error: Maximum limit must be greater than or equal to Minimum limit.');
|
1017
|
+
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
1024
1018
|
fillInTheGapsTextCommonComponent.steps.setMaximumLimit(60);
|
1025
1019
|
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
1026
1020
|
});
|
@@ -1246,9 +1240,9 @@ const tests = {
|
|
1246
1240
|
utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsTextCommonComponent.responseAccordionLabel(), 1), 'Response 2');
|
1247
1241
|
});
|
1248
1242
|
|
1249
|
-
it('When user focuses in and out of the response accordion \'Answer\' input field,
|
1243
|
+
it('When user focuses in and out of the response accordion \'Answer\' input field, error message should not be displayed', () => {
|
1250
1244
|
fillInTheGapsTextCommonComponent.steps.focusInAndFocusOutOfResponseAnswerInputFieldSpecifyCorrectAnswer(0, 0);
|
1251
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), '
|
1245
|
+
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
|
1252
1246
|
});
|
1253
1247
|
|
1254
1248
|
it('When gives an input to \'Answer\' input field, then error message should disappear', () => {
|
@@ -1424,10 +1418,10 @@ const tests = {
|
|
1424
1418
|
utilities.verifyElementVisibilityState(fillInTheGapsTextCommonComponent.responseAccordionAddAlternateButtonLabel(), 'visible');
|
1425
1419
|
});
|
1426
1420
|
|
1427
|
-
it('When user has not entered text inside answer input field and clicks on \'Add alternate\'
|
1428
|
-
|
1429
|
-
utilities.
|
1430
|
-
|
1421
|
+
it('When user has not entered text inside answer input field and clicks on \'Add alternate\' button, then the button should be disabled and \'Answer is required\' tooltip should be displayed', () => {
|
1422
|
+
utilities.verifyElementDisabled(utilities.getNthElement(fillInTheGapsTextCommonComponent.responseAccordionAddAlternateButton(), 0).find('button'));
|
1423
|
+
utilities.getNthElement(fillInTheGapsTextCommonComponent.responseAccordionAddAlternateButton(), 0)
|
1424
|
+
.verifyTooltip('Answer is required');
|
1431
1425
|
});
|
1432
1426
|
|
1433
1427
|
it('When user enters text inside answer input field, then error message should disappear', () => {
|
@@ -1437,6 +1431,7 @@ const tests = {
|
|
1437
1431
|
|
1438
1432
|
it('When the user clicks on the \'Add Alternate\' button, then one alternate answer input field should be displayed', () => {
|
1439
1433
|
fillInTheGapsTextCommonComponent.steps.addAlternateAnswerInResponseAccordion(0);
|
1434
|
+
utilities.triggerMouseout(fillInTheGapsTextCommonComponent.responseAccordionAddAlternateButton());
|
1440
1435
|
utilities.verifyElementCount(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), 2);
|
1441
1436
|
utilities.verifyElementVisibilityState(fillInTheGapsTextCommonComponent.responseAccordionAddAlternateButton(), 'visible');
|
1442
1437
|
});
|
@@ -1455,15 +1450,10 @@ const tests = {
|
|
1455
1450
|
fillInTheGapsTextCommonComponent.steps.verifyAnswerInputFieldPlaceholder(1);
|
1456
1451
|
});
|
1457
1452
|
|
1458
|
-
it('When the user clicks on the \'Add Alternate\' button without entering text in the newly added alternate answer input field,
|
1453
|
+
it('When the user clicks on the \'Add Alternate\' button without entering text in the newly added alternate answer input field, new input field should be added and user should be able to add response in the input field', () => {
|
1459
1454
|
fillInTheGapsTextCommonComponent.steps.addAlternateAnswerInResponseAccordion(0);
|
1460
|
-
utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Answer is required.');
|
1461
1455
|
utilities.verifyElementCount(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), 2);
|
1462
|
-
});
|
1463
|
-
|
1464
|
-
it('When user adds text in alternate input field and clicks on \'Add alternate\' button, then then a third alternate answer input field should be displayed and error message should disappear', () => {
|
1465
1456
|
fillInTheGapsTextCommonComponent.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 1, responseText: 'Leaf' }]);
|
1466
|
-
commonComponents.steps.verifyErrorMessageIsNotDisplayed();
|
1467
1457
|
fillInTheGapsTextCommonComponent.steps.addAlternateAnswerInResponseAccordion(0);
|
1468
1458
|
utilities.verifyElementCount(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), 3);
|
1469
1459
|
});
|
@@ -1569,8 +1559,12 @@ const tests = {
|
|
1569
1559
|
|
1570
1560
|
it('When user adds alternate answer input field, then accepted student input should be applied on both the response answer input fields in the response accordion', () => {
|
1571
1561
|
fillInTheGapsTextCommonComponent.steps.addAlternateAnswerInResponseAccordion(0);
|
1572
|
-
fillInTheGapsTextCommonComponent.
|
1573
|
-
|
1562
|
+
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), 0)
|
1563
|
+
.should('not.be.disabled')
|
1564
|
+
.type('Hi12');
|
1565
|
+
utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldSpecifyCorrectAnswerSection(), 1)
|
1566
|
+
.should('not.be.disabled')
|
1567
|
+
.type('Hi12');
|
1574
1568
|
fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 1, responseText: 'Hi12' }]);
|
1575
1569
|
});
|
1576
1570
|
},
|
@@ -1715,72 +1709,6 @@ const tests = {
|
|
1715
1709
|
fillInTheGapsTextCommonComponent.steps.verifyAnswerInputFieldPlaceholderTextPreviewTab(1, 'Global placeholder');
|
1716
1710
|
});
|
1717
1711
|
},
|
1718
|
-
|
1719
|
-
//TODO need to remove once Save as you go is available for all questions
|
1720
|
-
/**
|
1721
|
-
* @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
|
1722
|
-
* in the 'Specify correct answer' section for alternative answers in auto-scored questions.
|
1723
|
-
* @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
|
1724
|
-
* @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
|
1725
|
-
*/
|
1726
|
-
verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
|
1727
|
-
it('\'+ Add alternative answer\' button should be present', () => {
|
1728
|
-
utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
|
1729
|
-
utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
|
1730
|
-
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
1731
|
-
.verifyPseudoClassBeforeProperty('content', '""');
|
1732
|
-
});
|
1733
|
-
|
1734
|
-
it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
|
1735
|
-
utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
|
1736
|
-
'color': css.color.activeButtons,
|
1737
|
-
'font-size': css.fontSize.default,
|
1738
|
-
'font-weight': css.fontWeight.regular
|
1739
|
-
});
|
1740
|
-
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
|
1741
|
-
.verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
|
1742
|
-
});
|
1743
|
-
|
1744
|
-
it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
|
1745
|
-
utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
|
1746
|
-
autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
|
1747
|
-
});
|
1748
|
-
|
1749
|
-
it('CSS of warning popup', { tags: 'css' }, () => {
|
1750
|
-
utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
|
1751
|
-
'color': css.color.flyoutTitle,
|
1752
|
-
'font-size': css.fontSize.heading,
|
1753
|
-
'font-weight': css.fontWeight.semibold
|
1754
|
-
});
|
1755
|
-
utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
|
1756
|
-
'color': css.color.labels,
|
1757
|
-
'font-size': css.fontSize.default,
|
1758
|
-
'font-weight': css.fontWeight.regular
|
1759
|
-
});
|
1760
|
-
utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
|
1761
|
-
'fill': css.color.closeIcon
|
1762
|
-
});
|
1763
|
-
});
|
1764
|
-
|
1765
|
-
it('Accessibility of warning popup', { tags: 'a11y' }, () => {
|
1766
|
-
cy.checkAccessibility(dialogBoxBase.dialogBox());
|
1767
|
-
dialogBoxBase.steps.closeWarningPopup();
|
1768
|
-
});
|
1769
|
-
},
|
1770
|
-
|
1771
|
-
//TODO need to remove once Save as you go is available for all questions
|
1772
|
-
verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
|
1773
|
-
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', () => {
|
1774
|
-
autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
|
1775
|
-
.click();
|
1776
|
-
dialogBoxBase.steps.closeWarningPopup();
|
1777
|
-
//TODO: Need to add error message according to question types
|
1778
|
-
utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
|
1779
|
-
autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
|
1780
|
-
.eq(1)
|
1781
|
-
.should('have.attr', 'aria-expanded', 'true');
|
1782
|
-
});
|
1783
|
-
},
|
1784
1712
|
}
|
1785
1713
|
|
1786
1714
|
export const fillInTheGapsTextCommonComponent = {
|