itemengine-cypress-automation 1.0.379-IEI-5744-ecb0cd7.0 → 1.0.379-fullExecutionFixes-683b689.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/Dockerfile +1 -0
- package/cypress/e2e/GradingGridView/gradingGridView.js +156 -0
- package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +2 -0
- package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +4 -0
- package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
- package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +25 -25
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +37 -36
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +37 -36
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +37 -36
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightBasic.js +26 -25
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +39 -38
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +31 -30
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +35 -34
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +247 -0
- package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
- package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
- package/cypress/e2e/ILC/ChartsBar/specifyCorrectAnswerSection.js +92 -0
- package/cypress/e2e/ILC/ChartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePointsLocked.js +220 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +25 -25
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +47 -46
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +25 -24
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +25 -24
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightBasic.js +25 -25
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +24 -23
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +21 -20
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +48 -46
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +249 -0
- package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
- package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
- package/cypress/e2e/ILC/ChartsLine/specifyCorrectAnswerSection.js +94 -0
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
- package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +3 -3
- package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
- package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
- package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
- package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +63 -4
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +116 -7
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettingsForGroupedLayout.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 +1 -3
- package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +2 -2
- package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +7 -7
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +3 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
- package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
- package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
- package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
- package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
- package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
- package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
- package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
- package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
- package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +210 -0
- package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +2 -2
- package/cypress/e2e/ILC/GridFill/headerSection.js +3 -3
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
- package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +2 -1
- package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +212 -0
- package/cypress/e2e/ILC/ImageHighlight/customiseHighlightStyle.js +29 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +2 -4
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
- package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +237 -1
- package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/manuallyAndNonScoredEditTab.js +2 -1
- package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +2 -4
- package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +7 -12
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +10 -14
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
- package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +215 -0
- package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
- package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +36 -9
- package/cypress/e2e/ILC/ListOrderingNew/manuallyAndNonScoredEditTab.js +2 -0
- package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +7 -23
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +309 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +36 -1
- package/cypress/e2e/ILC/Matching/Scoring/blankResponseScoring.js +38 -41
- package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
- package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
- package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
- package/cypress/e2e/ILC/Matching/clickAndDrop.js +5 -5
- package/cypress/e2e/ILC/Matching/draggableOptions.js +7 -0
- package/cypress/e2e/ILC/Matching/editQuestion.smoke.js +3 -2
- package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
- package/cypress/e2e/ILC/Matching/headerSection.js +38 -12
- package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
- package/cypress/e2e/ILC/Matching/studentViewSettings.js +2 -0
- package/cypress/e2e/ILC/Matching/studentViewSettingsForGroupedLayout.js +1 -1
- package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +6 -6
- package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
- package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +2 -1
- package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +100 -69
- package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +1 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
- package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
- package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
- package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
- package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
- package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
- package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
- package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
- package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +186 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +35 -51
- package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
- package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +101 -70
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
- package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
- package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
- package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
- package/cypress/e2e/ILC/TextSelection/additionalSettings.js +1 -0
- package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +231 -0
- package/cypress/e2e/ILC/TextSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -0
- package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +1 -1
- package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +7 -1
- package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
- package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +2 -0
- package/cypress/e2e/ILC/ThinkSphere/planPhase.js +45 -5
- package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +12 -12
- package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
- package/cypress/e2e/ILC/ThinkSphere/previewTabSolveSection.js +36 -0
- package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +4 -4
- package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
- package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
- package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
- package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
- package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
- package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
- package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
- package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +27 -28
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +24 -24
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +39 -37
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsBasic.js +22 -23
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +25 -24
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +31 -31
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/toleranceThresholdScoring.js +18 -19
- package/cypress/e2e/ILC/chartsDotsPlot/specifyCorrectAnswerSection.js +96 -0
- package/cypress/e2e/Sessions/fetchResponses.js +3 -3
- package/cypress/e2e/Sessions/saveResponseScores.js +2 -2
- package/cypress/fixtures/thinkSphereWhiteboardTools.js +66 -0
- package/cypress/pages/audioPlayerPage.js +47 -22
- package/cypress/pages/brainingCampManipulativePage.js +1 -1
- package/cypress/pages/chartsBarPage.js +45 -0
- package/cypress/pages/chartsDotPlotPage.js +25 -0
- package/cypress/pages/chartsLinePage.js +28 -3
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -1
- package/cypress/pages/components/chartsCommonComponent.js +6 -2
- package/cypress/pages/components/ckEditorEquationEditorComponent.js +1 -0
- package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
- package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
- package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
- package/cypress/pages/components/colorPopupComponent.js +6 -0
- package/cypress/pages/components/createQuestionBasePage.js +14 -1
- package/cypress/pages/components/draggableOptionsSectionComponent.js +2 -0
- package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +28 -0
- package/cypress/pages/components/gridQuestionCommonComponent.js +55 -2
- package/cypress/pages/components/imageCanvasComponent.js +4 -4
- package/cypress/pages/components/questionInstructionsComponent.js +2 -0
- package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
- package/cypress/pages/components/specifyRowsAndColumnsComponent.js +7 -1
- package/cypress/pages/contentBlocksPage.js +2 -0
- package/cypress/pages/desmos3DGraphingPage.js +149 -4
- package/cypress/pages/desmosGeometryPage.js +184 -4
- package/cypress/pages/drawingResponsePage.js +2 -0
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +3 -4
- package/cypress/pages/gradingGridViewPage.js +64 -0
- package/cypress/pages/graphingPage.js +27 -8
- package/cypress/pages/gridFillPage.js +15 -6
- package/cypress/pages/imageHighlightPage.js +115 -15
- package/cypress/pages/index.js +1 -0
- package/cypress/pages/listOrderingPage.js +40 -1
- package/cypress/pages/matchingPage.js +26 -7
- package/cypress/pages/numberLineLabelPage.js +31 -8
- package/cypress/pages/numberLinePage.js +19 -7
- package/cypress/pages/singleSelectionPage.js +30 -1
- package/cypress/pages/textEntryMathPage.js +24 -1
- package/cypress/pages/thinkSpherePage.js +951 -89
- package/cypress/pages/uploadResponsePage.js +17 -1
- package/cypress/pages/videoResponsePage.js +3 -0
- package/cypress/support/commands.js +9 -0
- package/cypress/support/helpers/createItem.js +22 -3
- package/cypress/support/helpers/utilities.js +14 -1
- package/package.json +2 -2
- /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/checkAnswerFunctionalityForAllViews.js +0 -0
- /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/editQuestion.smoke.js +0 -0
@@ -9,7 +9,7 @@ import { selectQuestionResourceToolPage } from "./selectQuestionResourceToolPage
|
|
9
9
|
import { videoResponsePage } from "./videoResponsePage";
|
10
10
|
import { singleSelectionPage } from "./singleSelectionPage";
|
11
11
|
import { essayResponsePage } from "./essayResponsePage";
|
12
|
-
import { equationEditorCategoriesAndSymbols } from "../fixtures/equationEditorCategoriesAndSymbols";
|
12
|
+
import { equationEditorCategoriesAndSymbols } from "../fixtures/equationEditorCategoriesAndSymbols ";
|
13
13
|
const css = Cypress.env('css');
|
14
14
|
|
15
15
|
const selectors = {
|
@@ -31,7 +31,7 @@ const selectors = {
|
|
31
31
|
...editCategoryFlyout,
|
32
32
|
...createCustomCategoryFlyout,
|
33
33
|
...createQuestionBasePage,
|
34
|
-
|
34
|
+
|
35
35
|
editQuestionPencil: () => cy.get('[class*="Widgetstyles__HeaderContainer"] button.icon-pencil'),
|
36
36
|
widgetHeaderQuestionTitle: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="Widgetstyles__QuestionTypeText"]'),
|
37
37
|
imageUploadSection: () => cy.get('[class*="TabsComponentstyles__ImageUploadComponentWrapper"]'),
|
@@ -80,13 +80,13 @@ const selectors = {
|
|
80
80
|
planStrategyListResetToDefault: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
|
81
81
|
planStrategyAddItemButton: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
|
82
82
|
planStrategyCheckbox: () => cy.get('[class*="Planstyles__StrategiesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
|
83
|
-
videoLinkComponent: () => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'),
|
83
|
+
videoLinkComponent: (nthElement = 0) => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'), nthElement),
|
84
84
|
uploadVideoLinkButton: () => cy.get('[class*="ListOptionsComponentstyles__UploadVideoTextWrapper"]'),
|
85
85
|
planSentenceStarterSection: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"]'),
|
86
86
|
planSentenceStarterListHeader: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__HeadingTextWrapper"]'),
|
87
87
|
planSentenceStarterListResetToDefault: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
|
88
88
|
planSentenceStarterAddItemButton: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
|
89
|
-
planSentenceStarterCheckbox
|
89
|
+
planSentenceStarterCheckbox: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
|
90
90
|
solvePhaseAccordian: () => cy.get('[class*="Planstyles__SolveAccordianWrapper"] [class~="MuiAccordionSummary-root"] [role="button"]'),
|
91
91
|
solvePhaseAccordianLabel: () => cy.get('[class*="Solvestyles__AccordionLabel"]'),
|
92
92
|
inputTypeVideoFile: () => cy.get('[class*="Planstyles__StrategiesWrapper"] input[type="file"]'),
|
@@ -98,7 +98,7 @@ const selectors = {
|
|
98
98
|
editVideoButton: () => cy.get('[aria-label*="Change video"]'),
|
99
99
|
deleteVideoButton: () => cy.get('[aria-label*="Delete video"]'),
|
100
100
|
listInputField: () => cy.get('.option-component textarea[placeholder]'),
|
101
|
-
deleteButton: () => cy.get('button[aria-label*="Delete"]'),
|
101
|
+
deleteButton: () => cy.get('button[aria-label*="Delete"].ngie-icon-btn-cls'),
|
102
102
|
optionNumeration: () => cy.get('[class*="MuiInputAdornment-positionStart"]'),
|
103
103
|
iconPencil: () => cy.get('div[class*="icon-pencil"]'),
|
104
104
|
iconXCircle: () => cy.get('div[class*="icon-x-circle"]'),
|
@@ -110,8 +110,8 @@ const selectors = {
|
|
110
110
|
thinkSphereMathQuestionHeaderDeleteIcon: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="icon-Delete"]'),
|
111
111
|
addCheckMathQuestionButton: () => cy.get('.ngie-btn-typography').contains(`Add 'Check your math' question`),
|
112
112
|
firstAvailableItemLink: () => utilities.getNthElement(cy.get('.browse-item-styled-link'), 0),
|
113
|
-
saveButton: () => cy.get('.ngie-btn-typography').contains('save',{matchCase: false}),
|
114
|
-
cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel',{matchCase: false}),
|
113
|
+
saveButton: () => cy.get('.ngie-btn-typography').contains('save', { matchCase: false }),
|
114
|
+
cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel', { matchCase: false }),
|
115
115
|
AddCheckMathQuestionHeader: () => cy.get('.browse-title-wrapper').contains(`Add 'Check your math' question`),
|
116
116
|
singleOptionTextFieldWrapper: () => cy.get('[class*="SingleOptionstyle__TextFieldWrapper"]'),
|
117
117
|
customizeStampComponent: () => cy.get('[class*="CustomizeStampstyles__CustomizeStampWrapper"]'),
|
@@ -136,7 +136,7 @@ const selectors = {
|
|
136
136
|
imageUploadSectionQuestionImageCrossIcon: () => thinkSpherePage.imageUploadSection().find('div[class*="QuestionImageComponentstyle__CrossIcon"]'),
|
137
137
|
imageRadioButtonParentSvg: () => thinkSpherePage.imageRadioButton().parent().find('svg'),
|
138
138
|
solvePhaseAccordionSvg: () => thinkSpherePage.solvePhaseAccordion().find('svg'),
|
139
|
-
|
139
|
+
customizeToolsAndControlsPath: () => thinkSpherePage.customizeToolsAndControls().find('path'),
|
140
140
|
solvePhaseToolsAndControlsOptionsTilesFeatherCheckIcon: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name="Icon feather-check"]'),
|
141
141
|
solvePhaseToolsAndControlsOptionsTilesRectangle: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name*="Rectangle"]'),
|
142
142
|
solvePhaseToolsAndControlsOptionsTilesDragItemFlexWrapperSvg: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('.drag-item-flex-wrapper svg'),
|
@@ -150,9 +150,9 @@ const selectors = {
|
|
150
150
|
popupTitle: () => cy.get('[class*="dialog-title-wrapper"]'),
|
151
151
|
strategyNameLabel: () => cy.get('[class*="ThinkSpherePreviewstyles__StrategyNameTextWrapper"]'),
|
152
152
|
strategyNameInputField: () => cy.get('[class*="new-strategy-name-field"]'),
|
153
|
-
addStrategyPopupCancelButton: () =>
|
153
|
+
addStrategyPopupCancelButton: () =>
|
154
154
|
cy.get('.dialog-content').contains('Cancel'),
|
155
|
-
addStrategyPopupSaveButton: () =>
|
155
|
+
addStrategyPopupSaveButton: () =>
|
156
156
|
cy.get('.dialog-content').contains('Save'),
|
157
157
|
// preview tab plan section selection
|
158
158
|
questionInstructionPreviewTexWrapper: () => cy.get('.question-instruction.question-text-wrapper'),
|
@@ -160,9 +160,9 @@ const selectors = {
|
|
160
160
|
questionInstructionPreviewImageExpandButton: () => cy.get('[class*="ThinkSpherePreviewstyles__ExpandImageIconWrapper"]'),
|
161
161
|
questionInstructionImagePopup: () => cy.get('[class*="QuestionTextstyle__ImagePopupDiv"]'),
|
162
162
|
closeExpandImagePopupButton: () => cy.get('.close-popup-btn'),
|
163
|
-
PlanningPreviewWrapper
|
163
|
+
PlanningPreviewWrapper: () => cy.get('[class*="PlanningPreviewstyles__PlanningPreviewWrapper"]'),
|
164
164
|
planningPreviewHeading: () => cy.get('[class*="PlanningPreviewstyles__HeadingWrapper"]'),
|
165
|
-
planningWriteWrapper
|
165
|
+
planningWriteWrapper: () => cy.get('[class*="PlanningPreviewstyles__WriteWrapper"]'),
|
166
166
|
problemAskingWrapper: () => cy.get('[class*="PlanningPreviewstyles__ProblemAskingWrapper"]'),
|
167
167
|
contentEditableDiv: () => cy.get('[class*="PlanningPreviewstyles__ContentEditableDiv"]'),
|
168
168
|
micIconWrapper: () => cy.get('[class*="PlanningPreviewstyles__MicIconWrapper"]'),
|
@@ -211,6 +211,46 @@ const selectors = {
|
|
211
211
|
categoriesDropDownParent: () => cy.get('.drop-down-parent'),
|
212
212
|
cardWrapper: () => cy.get('.card-wrapper'),
|
213
213
|
cardLabel: () => cy.get('.widget-card-label'),
|
214
|
+
thinkSphereQuestionInstructionCKEditor: () => cy.get('div.cke_editable[contenteditable="true"]'),
|
215
|
+
reviewTab: () => cy.get('div[aria-label="Review tab"]'),
|
216
|
+
solveTab: () => cy.get('div[aria-label="Solve tab"]'),
|
217
|
+
planTab: () => cy.get('div[aria-label="Plan tab"]'),
|
218
|
+
checkYourMathHeading: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__CheckYourMathTextWrapper"]'), 0),
|
219
|
+
problemAskingToMeTextWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__ProblemAskingToMeTextWrapper"]'), 0),
|
220
|
+
reviewQuestionWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__QuestionWrapper"]'), 0),
|
221
|
+
reviewComponentWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__ComponentWrapper"]'), 0),
|
222
|
+
problemStatementWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__ProblemStatementWrapper"]'), 0),
|
223
|
+
gradingViewRadioButton: () => cy.get('label[aria-label="Grading View"]'),
|
224
|
+
studentViewRadioButton: () => cy.get('label[aria-label="Student View"]'),
|
225
|
+
correctAnswerLabelWrapper: () => cy.get('div[class*="CorrectAnswerLabelWrapper"]'),
|
226
|
+
whiteboardComponent: () => cy.get('.whiteboard'),
|
227
|
+
whiteBoardTools: () => cy.get('.tools'),
|
228
|
+
whiteBoardSubTools: () => cy.get('.subtools'),
|
229
|
+
whiteBoardCanvasContainer: () => cy.get('.canvas-container'),
|
230
|
+
whiteBoardFooter: () => cy.get('.footer-container'),
|
231
|
+
whiteBoardNewPage: () => cy.get('[data-testid=new-page]'),
|
232
|
+
whiteBoardPreviousPage: () => cy.get('[data-testid=previous]'),
|
233
|
+
whiteBoardNextPage: () => cy.get('[data-testid=next]'),
|
234
|
+
whiteBoardRecordOrPauseButton: () => cy.get('[data-testid=record]'),
|
235
|
+
whiteBoardStopButton: () => cy.get('[data-testid=stop]'),
|
236
|
+
whiteBoardPage: () => cy.get('.page'),
|
237
|
+
whiteboardRecordingStatus: () => cy.get('.status-container'),
|
238
|
+
whiteboardRecordingTimeStatus: () => cy.get('.timecode-container'),
|
239
|
+
whiteboardPlayBackStatus: () => cy.get('[class*=ReviewTabstyles__ThinkSphereWhiteboardPlayerContainer]'),
|
240
|
+
whiteboardPlayer: () => cy.get('[class*=ThinkSphereWhiteboardPlayerstyles__ThinkSphereWhiteboardPlayerWrapper]'),
|
241
|
+
whiteboardRecordingInProgressWarning: () => cy.get('[class*=whiteboard-recording-warning-popup]'),
|
242
|
+
whiteboardRecordingInProgressWarningOkButton: () => cy.get('[data-testid=accept-button]'),
|
243
|
+
whiteboardRecordingInProgressWarningHeader: () => cy.get('#alert-dialog-title'),
|
244
|
+
whiteboardRecordingInProgressWarningDescription: () => cy.get('#alert-dialog-description'),
|
245
|
+
whiteboardPlaybackPlayButton: () => cy.get('[data-testid=play]'),
|
246
|
+
whiteboardPlaybackPauseButton: () => cy.get('[data-testid=pause]'),
|
247
|
+
whiteboardPlaybackTime: () => cy.get('[data-testid=time]'),
|
248
|
+
whiteboardPlaybackSpeakerButton: () => cy.get('.speaker-button'),
|
249
|
+
whiteboardVolumeIcon: () => cy.get('.volume-icon'),
|
250
|
+
whiteboardMutedIcon: () => cy.get('.mute-icon'),
|
251
|
+
whiteboardVolumeSlider: () => cy.get('[class*=slider-container]'),
|
252
|
+
submitButton: () => cy.get('button[aria-label="Submit"]'),
|
253
|
+
goToGradingViewButton: () => cy.contains('button', 'GO TO GRADING VIEW'),
|
214
254
|
};
|
215
255
|
|
216
256
|
const steps = {
|
@@ -364,20 +404,20 @@ const steps = {
|
|
364
404
|
*/
|
365
405
|
uploadVideoFile: (file) => {
|
366
406
|
const fileName = file.split('/').pop(); // Extracts only 'sample.mp4'
|
367
|
-
|
407
|
+
|
368
408
|
cy.fixture(file, 'binary') // Read the file as binary
|
369
409
|
.then(Cypress.Blob.binaryStringToBlob)
|
370
410
|
.then((blob) => {
|
371
411
|
const fileObj = new File([blob], fileName, { type: 'video/mp4' });
|
372
412
|
const dataTransfer = new DataTransfer();
|
373
413
|
dataTransfer.items.add(fileObj);
|
374
|
-
|
414
|
+
|
375
415
|
thinkSpherePage.inputTypeVideoFile().then(($input) => {
|
376
416
|
$input[0].files = dataTransfer.files;
|
377
417
|
cy.wrap($input).trigger('change', { force: true });
|
378
418
|
});
|
379
419
|
});
|
380
|
-
|
420
|
+
|
381
421
|
cy.wait(4000);
|
382
422
|
},
|
383
423
|
|
@@ -453,13 +493,13 @@ const steps = {
|
|
453
493
|
},
|
454
494
|
expandSolvePhaseAccordion: () => {
|
455
495
|
thinkSpherePage.solvePhaseAccordion()
|
456
|
-
|
457
|
-
|
496
|
+
.click()
|
497
|
+
.should('have.attr', 'aria-expanded', 'true');
|
458
498
|
},
|
459
499
|
expandCustomizeToolsAndControls: () => {
|
460
500
|
thinkSpherePage.customizeToolsAndControls()
|
461
|
-
|
462
|
-
|
501
|
+
.click()
|
502
|
+
.should('have.attr', 'aria-expanded', 'true');
|
463
503
|
},
|
464
504
|
/**
|
465
505
|
* Verifies the tools and controls options.
|
@@ -476,9 +516,9 @@ const steps = {
|
|
476
516
|
*/
|
477
517
|
selectOptionFromToolsAndControls: (option) => {
|
478
518
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
479
|
-
|
519
|
+
.click();
|
480
520
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
481
|
-
|
521
|
+
.should('have.attr', 'data-aria-pressed', 'true');
|
482
522
|
},
|
483
523
|
/**
|
484
524
|
* Deselects an option from tools and controls.
|
@@ -486,9 +526,9 @@ const steps = {
|
|
486
526
|
*/
|
487
527
|
deselectOptionFromToolsAndControls: (option) => {
|
488
528
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
489
|
-
|
529
|
+
.click();
|
490
530
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
491
|
-
|
531
|
+
.should('have.attr', 'data-aria-pressed', 'false');
|
492
532
|
},
|
493
533
|
/**
|
494
534
|
* Verifies if an option is selected.
|
@@ -496,7 +536,7 @@ const steps = {
|
|
496
536
|
*/
|
497
537
|
verifyOptionIsSelected: (option) => {
|
498
538
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
499
|
-
|
539
|
+
.should('have.attr', 'data-aria-pressed', 'true');
|
500
540
|
},
|
501
541
|
/**
|
502
542
|
* Verifies if an option is not selected.
|
@@ -504,7 +544,7 @@ const steps = {
|
|
504
544
|
*/
|
505
545
|
verifyOptionIsNotSelected: (option) => {
|
506
546
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
507
|
-
|
547
|
+
.should('have.attr', 'data-aria-pressed', 'false');
|
508
548
|
},
|
509
549
|
|
510
550
|
/**
|
@@ -537,7 +577,7 @@ const steps = {
|
|
537
577
|
utilities.getNthElement(thinkSpherePage.deleteButton(), index)
|
538
578
|
.click();
|
539
579
|
},
|
540
|
-
|
580
|
+
|
541
581
|
/**
|
542
582
|
* Verifies the delete option button disabled state.
|
543
583
|
* @param {string} list - The list to verify ('strategy' or other).
|
@@ -619,14 +659,14 @@ const steps = {
|
|
619
659
|
.within(() => {
|
620
660
|
utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
|
621
661
|
.clear()
|
622
|
-
.type(text);
|
662
|
+
.type(text, { delay: 500 });
|
623
663
|
});
|
624
664
|
} else {
|
625
665
|
thinkSpherePage.planSentenceStarterSection()
|
626
666
|
.within(() => {
|
627
667
|
utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
|
628
668
|
.clear()
|
629
|
-
.type(text);
|
669
|
+
.type(text, { delay: 500 });
|
630
670
|
});
|
631
671
|
}
|
632
672
|
},
|
@@ -753,9 +793,9 @@ const steps = {
|
|
753
793
|
},
|
754
794
|
|
755
795
|
verifyOptionAlignmentIsSelected: (direction) => {
|
756
|
-
if(direction === 'topLeft') {
|
796
|
+
if (direction === 'topLeft') {
|
757
797
|
thinkSpherePage.whiteBoardCanvas()
|
758
|
-
|
798
|
+
.should('not.have.css', 'justify-content', 'start');
|
759
799
|
} else {
|
760
800
|
thinkSpherePage.whiteBoardCanvas()
|
761
801
|
.should('have.css', 'justify-content', (direction === 'center' || direction === 'flex-end') ? 'normal' : direction);
|
@@ -765,7 +805,7 @@ const steps = {
|
|
765
805
|
}
|
766
806
|
}
|
767
807
|
},
|
768
|
-
|
808
|
+
|
769
809
|
clickOnImageRadioButton: () => {
|
770
810
|
thinkSpherePage.imageRadioButton()
|
771
811
|
.click();
|
@@ -774,10 +814,11 @@ const steps = {
|
|
774
814
|
clickOnEditQuestionIcon: () => {
|
775
815
|
utilities.getNthElement(thinkSpherePage.editQuestionPencil(), 0)
|
776
816
|
.click();
|
817
|
+
cy.wait(1000);
|
777
818
|
},
|
778
819
|
|
779
820
|
clickOnQuestionInstructionExpandImageButton: () => {
|
780
|
-
thinkSpherePage.questionInstructionPreviewImageExpandButton()
|
821
|
+
utilities.getNthElement(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 0)
|
781
822
|
.click();
|
782
823
|
},
|
783
824
|
|
@@ -936,20 +977,20 @@ const steps = {
|
|
936
977
|
|
937
978
|
verifyCategoryCharactersAndUnSelectedState: (arrayOfSymbolsAriaLabel) => {
|
938
979
|
thinkSpherePage.categoryCharacters()
|
939
|
-
|
940
|
-
|
941
|
-
editCategoryFlyout.categoryCharacters()
|
942
|
-
.eq(index)
|
943
|
-
.should('not.have.class', 'Mui-selected')
|
944
|
-
.invoke('attr', 'aria-label')
|
945
|
-
.then((ariaLabel) => {
|
946
|
-
const tooltipText = ariaLabel.split(' ').slice(0, -1).join(' ');
|
980
|
+
.then(($symbols) => {
|
981
|
+
for (let index = 10; index < $symbols.length - 1; index++) {
|
947
982
|
editCategoryFlyout.categoryCharacters()
|
948
983
|
.eq(index)
|
949
|
-
.
|
950
|
-
|
951
|
-
|
952
|
-
|
984
|
+
.should('not.have.class', 'Mui-selected')
|
985
|
+
.invoke('attr', 'aria-label')
|
986
|
+
.then((ariaLabel) => {
|
987
|
+
const tooltipText = ariaLabel.split(' ').slice(0, -1).join(' ');
|
988
|
+
editCategoryFlyout.categoryCharacters()
|
989
|
+
.eq(index)
|
990
|
+
.verifyTooltip(tooltipText);
|
991
|
+
});
|
992
|
+
}
|
993
|
+
});
|
953
994
|
},
|
954
995
|
|
955
996
|
verifyCategoryCharactersAndSelectedState: (arrayOfSymbolsAriaLabel) => {
|
@@ -957,15 +998,15 @@ const steps = {
|
|
957
998
|
.then(($symbols) => {
|
958
999
|
for (let index = 0; index < arrayOfSymbolsAriaLabel.length - 1; index++) {
|
959
1000
|
editCategoryFlyout.categoryCharacters()
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
1001
|
+
.eq(index)
|
1002
|
+
.should('have.class', 'Mui-selected')
|
1003
|
+
.invoke('attr', 'aria-label')
|
1004
|
+
.then((ariaLabel) => {
|
1005
|
+
const tooltipText = ariaLabel.split(' ').slice(0, -1).join(' ');
|
1006
|
+
editCategoryFlyout.categoryCharacters()
|
1007
|
+
.eq(index)
|
1008
|
+
.verifyTooltip(tooltipText);
|
1009
|
+
});
|
969
1010
|
}
|
970
1011
|
});
|
971
1012
|
},
|
@@ -977,12 +1018,12 @@ const steps = {
|
|
977
1018
|
|
978
1019
|
verifyDropdownOptions: (dropDownListArray) => {
|
979
1020
|
thinkSpherePage.categoriesDropDownMenuItem().should('have.length', dropDownListArray.length).each(($item) => {
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
1021
|
+
cy.wrap($item)
|
1022
|
+
.invoke('text')
|
1023
|
+
.then((text) => {
|
1024
|
+
const trimmedText = text.trim();
|
1025
|
+
expect(dropDownListArray).to.include(trimmedText);
|
1026
|
+
});
|
986
1027
|
});
|
987
1028
|
},
|
988
1029
|
|
@@ -992,22 +1033,22 @@ const steps = {
|
|
992
1033
|
|
993
1034
|
clickOnQuestionTypesAccordion: () => {
|
994
1035
|
thinkSpherePage.filterSectionQuestionTypesAccordion()
|
995
|
-
|
1036
|
+
.click()
|
996
1037
|
},
|
997
1038
|
|
998
1039
|
typeInSearchBar: (input) => {
|
999
1040
|
thinkSpherePage.searchBar()
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1041
|
+
.clear()
|
1042
|
+
.type(input)
|
1043
|
+
.should('have.value', input);
|
1003
1044
|
},
|
1004
1045
|
|
1005
1046
|
searchInSearchBar: (input) => {
|
1006
1047
|
thinkSpherePage.searchBar()
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1048
|
+
.clear()
|
1049
|
+
.type(input)
|
1050
|
+
.should('have.value', input)
|
1051
|
+
.type('{enter}');
|
1011
1052
|
},
|
1012
1053
|
|
1013
1054
|
clickOnSolvePhaseAccordionIcon: (element) => {
|
@@ -1061,7 +1102,7 @@ const steps = {
|
|
1061
1102
|
|
1062
1103
|
verifyTextIsNotEmpty: (element) => {
|
1063
1104
|
element.invoke('text')
|
1064
|
-
|
1105
|
+
.should('not.be.empty');
|
1065
1106
|
},
|
1066
1107
|
|
1067
1108
|
verifyLength: (element, length) => {
|
@@ -1083,6 +1124,512 @@ const steps = {
|
|
1083
1124
|
verifySolvePhaseAccordionCollapsed: () => {
|
1084
1125
|
thinkSpherePage.solvePhaseAccordionExpandIcon().should('not.have.class', 'Mui-expanded');
|
1085
1126
|
},
|
1127
|
+
|
1128
|
+
addQuestionInstructionInnerHTML: (innerHTML) => {
|
1129
|
+
thinkSpherePage.thinkSphereQuestionInstructionCKEditor()
|
1130
|
+
.invoke('html', innerHTML);
|
1131
|
+
},
|
1132
|
+
|
1133
|
+
verifyQuestionInstructionIncreasedHeightAndScrollBar: () => {
|
1134
|
+
thinkSpherePage.thinkSphereQuestionInstructionCKEditor()
|
1135
|
+
.invoke('height') // Get the height of the element
|
1136
|
+
.should('be.gt', 198);
|
1137
|
+
|
1138
|
+
thinkSpherePage.thinkSphereQuestionInstructionCKEditor()
|
1139
|
+
.should(($el) => {
|
1140
|
+
const scrollWidth = $el[0].scrollWidth;
|
1141
|
+
const clientWidth = $el[0].clientWidth;
|
1142
|
+
|
1143
|
+
// Assert that horizontal scroll is present
|
1144
|
+
expect(scrollWidth).to.be.greaterThan(clientWidth);
|
1145
|
+
});
|
1146
|
+
},
|
1147
|
+
|
1148
|
+
verifyQuestionImagePopup: () => {
|
1149
|
+
thinkSpherePage.dialogBoxRoot()
|
1150
|
+
.within(() => {
|
1151
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionImagePopup(), 'visible');
|
1152
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.closeExpandImagePopupButton(), 'visible');
|
1153
|
+
});
|
1154
|
+
},
|
1155
|
+
|
1156
|
+
verifyAddNewStrategyPopupCloseFunctionality: () => {
|
1157
|
+
let countBeforeOpeningPopup, countAfterClosingPopup;
|
1158
|
+
cy.get(thinkSpherePage.strategiesBoxPreviewTab())
|
1159
|
+
.its('length')
|
1160
|
+
.then((count) => {
|
1161
|
+
countBeforeOpeningPopup = count;
|
1162
|
+
cy.log('Count before opening popup:', countBeforeOpeningPopup);
|
1163
|
+
});
|
1164
|
+
thinkSpherePage.addNewStrategyButton().click();
|
1165
|
+
thinkSpherePage.addStrategyPopupCancelButton().click();
|
1166
|
+
cy.get(thinkSpherePage.strategiesBoxPreviewTab())
|
1167
|
+
.its('length')
|
1168
|
+
.then((count) => {
|
1169
|
+
countAfterClosingPopup = count;
|
1170
|
+
cy.log('Count after closing popup:', countAfterClosingPopup);
|
1171
|
+
expect(countAfterClosingPopup).to.equal(countBeforeOpeningPopup);
|
1172
|
+
});
|
1173
|
+
},
|
1174
|
+
|
1175
|
+
verifyAddNewStrategyPopupSaveFunctionality: () => {
|
1176
|
+
let countBeforeOpeningPopup, countAfterClosingPopup;
|
1177
|
+
thinkSpherePage.strategiesBoxPreviewTab()
|
1178
|
+
.its('length')
|
1179
|
+
.then((count) => {
|
1180
|
+
countBeforeOpeningPopup = count;
|
1181
|
+
cy.log('Count before opening popup:', countBeforeOpeningPopup);
|
1182
|
+
});
|
1183
|
+
thinkSpherePage.addNewStrategyButton().click();
|
1184
|
+
thinkSpherePage.strategyNameInputField().type('Test Strategy');
|
1185
|
+
thinkSpherePage.addStrategyPopupSaveButton().click();
|
1186
|
+
thinkSpherePage.strategiesBoxPreviewTab()
|
1187
|
+
.its('length')
|
1188
|
+
.then((count) => {
|
1189
|
+
countAfterClosingPopup = count;
|
1190
|
+
cy.log('Count after closing popup:', countAfterClosingPopup);
|
1191
|
+
expect(countAfterClosingPopup).to.equal(countBeforeOpeningPopup + 1);
|
1192
|
+
});
|
1193
|
+
},
|
1194
|
+
|
1195
|
+
verifyVideoPopupDialogBox: () => {
|
1196
|
+
thinkSpherePage.dialogBoxRoot()
|
1197
|
+
.within(() => {
|
1198
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.dialogBoxTitle(), 'visible');
|
1199
|
+
utilities.verifyInnerText(thinkSpherePage.dialogBoxTitle(), 'Create_a_model');
|
1200
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.buttonClose(), 'visible');
|
1201
|
+
});
|
1202
|
+
},
|
1203
|
+
|
1204
|
+
verifySentenceStartersDropdown: () => {
|
1205
|
+
thinkSpherePage.chooseStarterTextIconWrapper()
|
1206
|
+
.within(() => {
|
1207
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.starterIocn(), 'visible');
|
1208
|
+
utilities.verifyInnerText(thinkSpherePage.starterTextWrapper(), 'Starters');
|
1209
|
+
});
|
1210
|
+
thinkSpherePage.chooseStarterDropdown()
|
1211
|
+
.verifyPseudoClassBeforeProperty('content', '""');
|
1212
|
+
},
|
1213
|
+
|
1214
|
+
verifySentenceStartersDropdownOptions: (sentenceStartersTextDefault) => {
|
1215
|
+
sentenceStartersTextDefault.forEach((label, index) => {
|
1216
|
+
utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
|
1217
|
+
});
|
1218
|
+
},
|
1219
|
+
|
1220
|
+
verifySentenceStartersDropdownFunctionality: () => {
|
1221
|
+
thinkSpherePage.writePlanWrapper()
|
1222
|
+
.within(() => {
|
1223
|
+
thinkSpherePage.contentEditableDiv().clear();
|
1224
|
+
});
|
1225
|
+
thinkSpherePage.steps.expandChooseStarterDropdown();
|
1226
|
+
utilities.getNthElement(thinkSpherePage.chooseStartersListOptions(), 1).click();
|
1227
|
+
thinkSpherePage.writePlanWrapper()
|
1228
|
+
.within(() => {
|
1229
|
+
thinkSpherePage.contentEditableDiv().should('have.value', 'First, I will ');
|
1230
|
+
thinkSpherePage.contentEditableDiv().clear();
|
1231
|
+
});
|
1232
|
+
},
|
1233
|
+
|
1234
|
+
verifyProblemAskingHeading: () => {
|
1235
|
+
thinkSpherePage.problemAskingWrapper()
|
1236
|
+
.within(() => {
|
1237
|
+
utilities.verifyInnerText(thinkSpherePage.subheadingWrapper(), 'The problem is asking me to');
|
1238
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.subheadingWrapper(), 'visible');
|
1239
|
+
});
|
1240
|
+
},
|
1241
|
+
|
1242
|
+
verifyProblemAskingTextArea: () => {
|
1243
|
+
thinkSpherePage.problemAskingWrapper()
|
1244
|
+
.within(() => {
|
1245
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.contentEditableDiv(), 'visible');
|
1246
|
+
utilities.verifyElementAttribute(thinkSpherePage.contentEditableDiv(), 'placeholder', 'Enter your text here');
|
1247
|
+
});
|
1248
|
+
},
|
1249
|
+
|
1250
|
+
verifyProblemAskingMicSection: (isGrading=false) => {
|
1251
|
+
thinkSpherePage.problemAskingWrapper()
|
1252
|
+
.within(() => {
|
1253
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.micIconWrapper(), 'visible');
|
1254
|
+
utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'role', 'button');
|
1255
|
+
utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'aria-label', 'Mic button');
|
1256
|
+
if(isGrading) {
|
1257
|
+
utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'tabindex', -1);
|
1258
|
+
}
|
1259
|
+
});
|
1260
|
+
},
|
1261
|
+
|
1262
|
+
verifyProblemAskingTextAreaFunctionality: (textToEnter) => {
|
1263
|
+
thinkSpherePage.problemAskingWrapper()
|
1264
|
+
.within(() => {
|
1265
|
+
thinkSpherePage.contentEditableDiv().type(textToEnter);
|
1266
|
+
thinkSpherePage.contentEditableDiv().should('have.value', textToEnter);
|
1267
|
+
});
|
1268
|
+
},
|
1269
|
+
|
1270
|
+
verifyStrategiesToPlanHeading: () => {
|
1271
|
+
thinkSpherePage.strategiesToPlanWrapper()
|
1272
|
+
.within(() => {
|
1273
|
+
utilities.verifyInnerText(thinkSpherePage.subheadingWrapper(), 'Add strategies to plan');
|
1274
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.subheadingWrapper(), 'visible');
|
1275
|
+
});
|
1276
|
+
},
|
1277
|
+
|
1278
|
+
verifyWritePlanHeading: () => {
|
1279
|
+
thinkSpherePage.writePlanWrapper()
|
1280
|
+
.within(() => {
|
1281
|
+
utilities.verifyInnerText(thinkSpherePage.subheadingWrapper(), 'Write your plan');
|
1282
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.subheadingWrapper(), 'visible');
|
1283
|
+
});
|
1284
|
+
},
|
1285
|
+
|
1286
|
+
verifyWritePlanTextArea: () => {
|
1287
|
+
thinkSpherePage.writePlanWrapper()
|
1288
|
+
.within(() => {
|
1289
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.contentEditableDiv(), 'visible');
|
1290
|
+
utilities.verifyElementAttribute(thinkSpherePage.contentEditableDiv(), 'placeholder', 'Enter your plan here');
|
1291
|
+
});
|
1292
|
+
},
|
1293
|
+
|
1294
|
+
verifyWritePlanMicSection: (isGrading=false) => {
|
1295
|
+
thinkSpherePage.writePlanWrapper()
|
1296
|
+
.within(() => {
|
1297
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.micIconWrapper(), 'visible');
|
1298
|
+
utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'role', 'button');
|
1299
|
+
utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'aria-label', 'Mic button');
|
1300
|
+
if(isGrading) {
|
1301
|
+
utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'tabindex', -1);
|
1302
|
+
}
|
1303
|
+
});
|
1304
|
+
},
|
1305
|
+
|
1306
|
+
verifyWritePlanTextAreaFunctionality: (planTextToEnter) => {
|
1307
|
+
thinkSpherePage.writePlanWrapper()
|
1308
|
+
.within(() => {
|
1309
|
+
thinkSpherePage.contentEditableDiv().type(planTextToEnter);
|
1310
|
+
thinkSpherePage.contentEditableDiv().should('have.value', planTextToEnter);
|
1311
|
+
thinkSpherePage.contentEditableDiv().clear();
|
1312
|
+
});
|
1313
|
+
},
|
1314
|
+
|
1315
|
+
verifyStrategyChipClickFunctionality: () => {
|
1316
|
+
thinkSpherePage.writePlanWrapper()
|
1317
|
+
.within(() => {
|
1318
|
+
thinkSpherePage.contentEditableDiv().clear();
|
1319
|
+
});
|
1320
|
+
thinkSpherePage.strategyChip().click();
|
1321
|
+
thinkSpherePage.writePlanWrapper()
|
1322
|
+
.within(() => {
|
1323
|
+
thinkSpherePage.contentEditableDiv().should('have.value', 'look for a pattern ');
|
1324
|
+
});
|
1325
|
+
},
|
1326
|
+
clickUploadVideoButton: () => {
|
1327
|
+
thinkSpherePage.uploadVideoLinkButton()
|
1328
|
+
.click();
|
1329
|
+
},
|
1330
|
+
|
1331
|
+
verifyPreAuthoredVideoTitles: (defaultStrategyTexts) => {
|
1332
|
+
defaultStrategyTexts.forEach((text, index) => {
|
1333
|
+
thinkSpherePage.videoLinkComponent(index)
|
1334
|
+
.within(() => {
|
1335
|
+
utilities.verifyInnerText(thinkSpherePage.uploadVideoLinkButton(), text);
|
1336
|
+
})
|
1337
|
+
});
|
1338
|
+
},
|
1339
|
+
|
1340
|
+
verifyPreAuthoredVideos: (preAuthoredVideos) => {
|
1341
|
+
preAuthoredVideos.forEach(({ duration }, optionIndex) => {
|
1342
|
+
thinkSpherePage.videoLinkComponent(optionIndex)
|
1343
|
+
.within(thinkSpherePage.steps.clickUploadVideoButton);
|
1344
|
+
thinkSpherePage.steps.startPlayback();
|
1345
|
+
thinkSpherePage.steps.waitForPlaybackToBegin();
|
1346
|
+
thinkSpherePage.playerTimer()
|
1347
|
+
.should('contain', `/${duration}`);
|
1348
|
+
thinkSpherePage.steps.closeVideoPopup();
|
1349
|
+
})
|
1350
|
+
},
|
1351
|
+
|
1352
|
+
clickOnReviewTab: () => {
|
1353
|
+
thinkSpherePage.reviewTab()
|
1354
|
+
.click();
|
1355
|
+
},
|
1356
|
+
|
1357
|
+
clickOnSolveTab: () => {
|
1358
|
+
thinkSpherePage.solveTab()
|
1359
|
+
.click();
|
1360
|
+
},
|
1361
|
+
|
1362
|
+
clickOnPlanTab: () => {
|
1363
|
+
thinkSpherePage.planTab()
|
1364
|
+
.click();
|
1365
|
+
},
|
1366
|
+
|
1367
|
+
switchToGradingView: () => {
|
1368
|
+
thinkSpherePage.gradingViewRadioButton()
|
1369
|
+
.click();
|
1370
|
+
},
|
1371
|
+
|
1372
|
+
switchToStudentView: () => {
|
1373
|
+
thinkSpherePage.studentViewRadioButton()
|
1374
|
+
.click();
|
1375
|
+
},
|
1376
|
+
|
1377
|
+
verifyCorrectAnswerLabel: () => {
|
1378
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.correctAnswerLabelWrapper(), 'visible');
|
1379
|
+
},
|
1380
|
+
|
1381
|
+
addImageAlternativeTextInputFieldText: (alternateTextForImage) => {
|
1382
|
+
thinkSpherePage.imageAlternativeTextInputField().type(alternateTextForImage);
|
1383
|
+
cy.wait(2000);
|
1384
|
+
},
|
1385
|
+
|
1386
|
+
stepsBeforeGradingView: () => {
|
1387
|
+
thinkSpherePage.steps.expandChooseStarterDropdown();
|
1388
|
+
utilities.getNthElement(thinkSpherePage.chooseStartersListOptions(), 1).click();
|
1389
|
+
thinkSpherePage.problemAskingWrapper().first()
|
1390
|
+
.within(() => {
|
1391
|
+
thinkSpherePage.contentEditableDiv().type('This is a test text for the problem.');
|
1392
|
+
});
|
1393
|
+
thinkSpherePage.strategyChip().click();
|
1394
|
+
thinkSpherePage.submitButton().click();
|
1395
|
+
thinkSpherePage.goToGradingViewButton().click();
|
1396
|
+
},
|
1397
|
+
|
1398
|
+
verifyAddStrategiesButtonDisabled: () => {
|
1399
|
+
thinkSpherePage.addNewStrategyButton().should('have.attr', 'tabindex', '-1');
|
1400
|
+
thinkSpherePage.addNewStrategyButton().click({ force: true });
|
1401
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.popupTitle(), 'notExist');
|
1402
|
+
},
|
1403
|
+
|
1404
|
+
verifyStrategiesListButtonDisabled: () => {
|
1405
|
+
utilities.getNthElement(thinkSpherePage.strategiesPreviewListLI(), 0).should('have.attr', 'tabindex', '-1');
|
1406
|
+
utilities.getNthElement(thinkSpherePage.strategiesPreviewListLI(), 0).should('have.attr', 'aria-disabled', 'true');
|
1407
|
+
},
|
1408
|
+
|
1409
|
+
verifySentenceStarterDropDownDisabled: () => {
|
1410
|
+
thinkSpherePage.chooseStarterDropdown().should('have.attr', 'aria-disabled', 'true');
|
1411
|
+
},
|
1412
|
+
|
1413
|
+
verifyDisabledProblemTextContainer: (textToEnter) => {
|
1414
|
+
thinkSpherePage.problemAskingWrapper()
|
1415
|
+
.within(() => {
|
1416
|
+
thinkSpherePage.contentEditableDiv().should('have.attr', 'readonly');
|
1417
|
+
thinkSpherePage.contentEditableDiv().should('have.value', textToEnter);
|
1418
|
+
});
|
1419
|
+
},
|
1420
|
+
|
1421
|
+
verifyDisabledWriteYourPlanTextContainer: (textToEnter) => {
|
1422
|
+
thinkSpherePage.writePlanWrapper()
|
1423
|
+
.within(() => {
|
1424
|
+
thinkSpherePage.contentEditableDiv().should('have.attr', 'readonly');
|
1425
|
+
thinkSpherePage.contentEditableDiv().should('have.value', textToEnter);
|
1426
|
+
});
|
1427
|
+
},
|
1428
|
+
|
1429
|
+
verifyDisabledStrategyChip: () => {
|
1430
|
+
thinkSpherePage.strategyChip().should('have.attr', 'tabindex', -1);
|
1431
|
+
},
|
1432
|
+
|
1433
|
+
verifyQuestionInstructionPreviewTexWrapperVisibility: (instructionText) => {
|
1434
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewTexWrapper(), 'visible');
|
1435
|
+
utilities.verifyInnerText(thinkSpherePage.questionInstructionPreviewTexWrapper(), instructionText);
|
1436
|
+
},
|
1437
|
+
|
1438
|
+
verifyQuestionInstructionPreviewImageWrapperVisibility: () => {
|
1439
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewImageWrapper(), 'visible');
|
1440
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 'visible');
|
1441
|
+
},
|
1442
|
+
|
1443
|
+
verifyWhiteBoardVisibility: () => {
|
1444
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteboardComponent(), 'visible');
|
1445
|
+
},
|
1446
|
+
|
1447
|
+
verifyWhiteBoardSectionsVisibility: () => {
|
1448
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteBoardTools(), 'visible');
|
1449
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteBoardSubTools(), 'visible');
|
1450
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteBoardCanvasContainer(), 'visible');
|
1451
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteBoardFooter(), 'visible');
|
1452
|
+
},
|
1453
|
+
|
1454
|
+
/**
|
1455
|
+
* Verifies that the inner text of the whiteboard's page label matches the expected text.
|
1456
|
+
*
|
1457
|
+
* @param {string} text - The exact text expected to be present in the page label element (e.g., "Page1 / 1").
|
1458
|
+
*/
|
1459
|
+
|
1460
|
+
verifyInnerTextOfPageLabel: (text) => {
|
1461
|
+
thinkSpherePage.whiteBoardPage()
|
1462
|
+
.should('have.text', text);
|
1463
|
+
},
|
1464
|
+
|
1465
|
+
clickOnWhiteBoardNewPageButton: () => {
|
1466
|
+
thinkSpherePage.whiteBoardNewPage()
|
1467
|
+
.click();
|
1468
|
+
},
|
1469
|
+
|
1470
|
+
clickOnPreviousButton: () => {
|
1471
|
+
thinkSpherePage.whiteBoardPreviousPage()
|
1472
|
+
.click();
|
1473
|
+
},
|
1474
|
+
|
1475
|
+
clickOnNextButton: () => {
|
1476
|
+
thinkSpherePage.whiteBoardNextPage()
|
1477
|
+
.click();
|
1478
|
+
},
|
1479
|
+
|
1480
|
+
verifyPreviousButtonDisabled: () => {
|
1481
|
+
thinkSpherePage.whiteBoardPreviousPage()
|
1482
|
+
.should('have.attr', 'disabled');
|
1483
|
+
},
|
1484
|
+
|
1485
|
+
verifyNextButtonDisabled: () => {
|
1486
|
+
thinkSpherePage.whiteBoardNextPage()
|
1487
|
+
.should('have.attr', 'disabled');
|
1488
|
+
},
|
1489
|
+
|
1490
|
+
/**
|
1491
|
+
* Verifies that the inner text of the whiteboard's recording status matches the expected text.
|
1492
|
+
*
|
1493
|
+
* @param {string} text - The exact text expected to be present in the recording status element (e.g., "Ready").
|
1494
|
+
*/
|
1495
|
+
|
1496
|
+
verifyRecordingStatus: (text) => {
|
1497
|
+
thinkSpherePage.whiteboardRecordingStatus()
|
1498
|
+
.should('have.text', text);
|
1499
|
+
},
|
1500
|
+
|
1501
|
+
verifyRecordingTimeStatusNotPresent: () => {
|
1502
|
+
thinkSpherePage.whiteboardRecordingTimeStatus()
|
1503
|
+
.should('have.text', '');
|
1504
|
+
},
|
1505
|
+
|
1506
|
+
verifyRecordingTimeStatusPresent: () => {
|
1507
|
+
thinkSpherePage.whiteboardRecordingTimeStatus()
|
1508
|
+
.invoke('text')
|
1509
|
+
.should('not.be.empty');
|
1510
|
+
},
|
1511
|
+
|
1512
|
+
clickOnRecordingOrPauseButton: () => {
|
1513
|
+
thinkSpherePage.whiteBoardRecordOrPauseButton()
|
1514
|
+
.click();
|
1515
|
+
},
|
1516
|
+
|
1517
|
+
clickOnStopButton: () => {
|
1518
|
+
thinkSpherePage.whiteBoardStopButton()
|
1519
|
+
.click();
|
1520
|
+
},
|
1521
|
+
|
1522
|
+
/**
|
1523
|
+
* Verifies that the inner text of the whiteboard's playback element matches the expected text.
|
1524
|
+
*
|
1525
|
+
* @param {string} text - The exact text expected to be present in the playback element (e.g., "Watch your recordingNo recording available.").
|
1526
|
+
*/
|
1527
|
+
|
1528
|
+
verifyPlayBackNotAvailable: (text) => {
|
1529
|
+
thinkSpherePage.whiteboardPlayBackStatus().should('have.text', text);
|
1530
|
+
},
|
1531
|
+
|
1532
|
+
verifyWhiteBoardPlayer: () => {
|
1533
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteboardPlayer(), 'visible');
|
1534
|
+
},
|
1535
|
+
|
1536
|
+
verifyWhiteBoardRecordingInprogressWarning: () => {
|
1537
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteboardRecordingInProgressWarning(), 'visible');
|
1538
|
+
},
|
1539
|
+
|
1540
|
+
verifyWhiteBoardRecordingInprogressWarningNotVisible: () => {
|
1541
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteboardRecordingInProgressWarning(), 'not.be.visible');
|
1542
|
+
},
|
1543
|
+
|
1544
|
+
clickOnWhiteBoardRecordingInProgressWarningOkButton: () => {
|
1545
|
+
thinkSpherePage.whiteboardRecordingInProgressWarningOkButton()
|
1546
|
+
.click();
|
1547
|
+
},
|
1548
|
+
|
1549
|
+
/**
|
1550
|
+
* Verifies that the inner text of the whiteboard's warning text header matches the expected text.
|
1551
|
+
*
|
1552
|
+
* @param {string} text - The exact text expected to be present in the warning text header element (e.g., "Recording in Progress").
|
1553
|
+
*/
|
1554
|
+
|
1555
|
+
verifyWhiteboardWarningHeaderText: (text) => {
|
1556
|
+
thinkSpherePage.whiteboardRecordingInProgressWarningHeader()
|
1557
|
+
.should('have.text', text);
|
1558
|
+
},
|
1559
|
+
|
1560
|
+
/**
|
1561
|
+
* Verifies that the inner text of the whiteboard's whiteboard warning description matches the expected text.
|
1562
|
+
*
|
1563
|
+
* @param {string} expected - The exact text expected to be present in the whiteboard warning description element (e.g., "You're currently recording your work. To avoid losing progress, please return and click Stop to save the recording.").
|
1564
|
+
*/
|
1565
|
+
|
1566
|
+
verifyWhiteboardWarningDescriptionText: (expected) => {
|
1567
|
+
thinkSpherePage.whiteboardRecordingInProgressWarningDescription()
|
1568
|
+
.invoke('text')
|
1569
|
+
.then((text) => {
|
1570
|
+
const cleanText = text.replace(/\s+/g, ' ').trim();
|
1571
|
+
expect(cleanText).to.eq(expected);
|
1572
|
+
});
|
1573
|
+
},
|
1574
|
+
|
1575
|
+
clickOnWhiteBoardPlaybackPlayButton: () => {
|
1576
|
+
thinkSpherePage.whiteboardPlaybackPlayButton()
|
1577
|
+
.click();
|
1578
|
+
},
|
1579
|
+
|
1580
|
+
clickOnWhiteBoardPlaybackPauseButton: () => {
|
1581
|
+
thinkSpherePage.whiteboardPlaybackPauseButton()
|
1582
|
+
.click();
|
1583
|
+
},
|
1584
|
+
|
1585
|
+
verifyWhiteBoardPlayerPauseButtonVisible: () => {
|
1586
|
+
thinkSpherePage.whiteboardPlaybackPauseButton()
|
1587
|
+
.should('be.visible')
|
1588
|
+
cy.wait(1000);
|
1589
|
+
},
|
1590
|
+
|
1591
|
+
verifyWhiteBoardPlayerPlayButtonVisible: () => {
|
1592
|
+
thinkSpherePage.whiteboardPlaybackPlayButton()
|
1593
|
+
.should('be.visible');
|
1594
|
+
},
|
1595
|
+
|
1596
|
+
/**
|
1597
|
+
* Verifies that the inner text of the whiteboard's player time status matches the expected text.
|
1598
|
+
*
|
1599
|
+
* @param {string} time - The exact text expected to be present in the player time status element (e.g., "00:00").
|
1600
|
+
*/
|
1601
|
+
|
1602
|
+
verifyWhiteBoardPlayerTimeStatus: (time) => {
|
1603
|
+
thinkSpherePage.whiteboardPlaybackTime()
|
1604
|
+
.invoke('text')
|
1605
|
+
.then((text) => {
|
1606
|
+
const currentTime = text.split('/')[0].trim(); // get part before "/"
|
1607
|
+
expect(currentTime).to.eq(time);
|
1608
|
+
});
|
1609
|
+
},
|
1610
|
+
|
1611
|
+
clickOnWhiteBoardPlaybackSpeakerButton: () => {
|
1612
|
+
thinkSpherePage.whiteboardPlaybackSpeakerButton()
|
1613
|
+
.click();
|
1614
|
+
},
|
1615
|
+
|
1616
|
+
verifyWhiteBoardPlayerVolumeMuted: () => {
|
1617
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteboardMutedIcon(), 'visible');
|
1618
|
+
},
|
1619
|
+
|
1620
|
+
verifyWhiteBoardPlayerVolumeUnmuted: () => {
|
1621
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.whiteboardVolumeIcon(), 'visible');
|
1622
|
+
},
|
1623
|
+
|
1624
|
+
hoverOverWhiteBoardPlaybackSpeakerButton: () => {
|
1625
|
+
thinkSpherePage.whiteboardPlaybackSpeakerButton()
|
1626
|
+
.realHover({ position: 'top' });
|
1627
|
+
},
|
1628
|
+
|
1629
|
+
verifyWhiteBoardPlayerVolumeSliderVisible: () => {
|
1630
|
+
thinkSpherePage.whiteboardVolumeSlider()
|
1631
|
+
.should('be.visible');
|
1632
|
+
}
|
1086
1633
|
};
|
1087
1634
|
|
1088
1635
|
const tests = {
|
@@ -1197,7 +1744,7 @@ const tests = {
|
|
1197
1744
|
utilities.verifyElementVisibilityState(thinkSpherePage.tooltipText(), 'notExist');
|
1198
1745
|
});
|
1199
1746
|
},
|
1200
|
-
|
1747
|
+
|
1201
1748
|
/**
|
1202
1749
|
* Verifies the add option functionality.
|
1203
1750
|
* @param {string} list - The list to add the option to ('strategy' or other).
|
@@ -1213,13 +1760,13 @@ const tests = {
|
|
1213
1760
|
initialOptionCount = count;
|
1214
1761
|
});
|
1215
1762
|
});
|
1216
|
-
|
1763
|
+
|
1217
1764
|
thinkSpherePage.steps.addOption(list);
|
1218
1765
|
thinkSpherePage.planStrategySection()
|
1219
1766
|
.within(() => {
|
1220
1767
|
thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
|
1221
1768
|
thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter strategy name');
|
1222
|
-
});
|
1769
|
+
});
|
1223
1770
|
thinkSpherePage.steps.deleteOption(5);
|
1224
1771
|
} else {
|
1225
1772
|
thinkSpherePage.planSentenceStarterSection()
|
@@ -1228,13 +1775,13 @@ const tests = {
|
|
1228
1775
|
initialOptionCount = count;
|
1229
1776
|
});
|
1230
1777
|
});
|
1231
|
-
|
1778
|
+
|
1232
1779
|
thinkSpherePage.steps.addOption(list);
|
1233
1780
|
thinkSpherePage.planSentenceStarterSection()
|
1234
1781
|
.within(() => {
|
1235
1782
|
thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
|
1236
1783
|
thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter sentence starter name');
|
1237
|
-
});
|
1784
|
+
});
|
1238
1785
|
thinkSpherePage.steps.deleteOption(10);
|
1239
1786
|
}
|
1240
1787
|
});
|
@@ -1313,7 +1860,7 @@ const tests = {
|
|
1313
1860
|
}
|
1314
1861
|
});
|
1315
1862
|
},
|
1316
|
-
|
1863
|
+
|
1317
1864
|
/**
|
1318
1865
|
* Verifies the drag handle tooltip.
|
1319
1866
|
* @param {number} NthElement - The index of the drag handle.
|
@@ -1463,17 +2010,17 @@ const tests = {
|
|
1463
2010
|
thinkSpherePage.steps.selectOption(list, 1);
|
1464
2011
|
utilities.verifyCSS(
|
1465
2012
|
utilities.getNthElement(thinkSpherePage.planStrategyCheckbox().find('svg'), 1), {
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
2013
|
+
'fill': css.color.uncheckedCheckbox,
|
2014
|
+
'width': '12px',
|
2015
|
+
'height': '12px',
|
1469
2016
|
});
|
1470
2017
|
} else {
|
1471
2018
|
thinkSpherePage.steps.selectOption(list, 1);
|
1472
2019
|
utilities.verifyCSS(
|
1473
2020
|
utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox().find('svg'), 1), {
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
2021
|
+
'fill': css.color.uncheckedCheckbox,
|
2022
|
+
'width': '12px',
|
2023
|
+
'height': '12px',
|
1477
2024
|
});
|
1478
2025
|
}
|
1479
2026
|
});
|
@@ -1528,7 +2075,7 @@ const tests = {
|
|
1528
2075
|
thinkSpherePage.steps.addOptionText(list, optionIndex, inputFieldText);
|
1529
2076
|
});
|
1530
2077
|
});
|
1531
|
-
|
2078
|
+
|
1532
2079
|
it('When the user hovers over the disabled delete buttons of the options then \'Minimum one option is required\' message should be displayed on a tooltip and the tooltip should disappear if focus is removed from the delete button', () => {
|
1533
2080
|
utilities.getNthElement(thinkSpherePage.deleteButton(), list === 'strategy' ? 0 : 5)
|
1534
2081
|
.trigger('mouseover', { force: true });
|
@@ -1593,11 +2140,11 @@ const tests = {
|
|
1593
2140
|
thinkSpherePage.planSentenceStarterListResetToDefault()
|
1594
2141
|
.click();
|
1595
2142
|
thinkSpherePage.planSentenceStarterSection()
|
1596
|
-
|
1597
|
-
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
2143
|
+
.within(() => {
|
2144
|
+
optionList.forEach((option, index) => {
|
2145
|
+
thinkSpherePage.steps.verifyOptionsContents(index, option, 'Enter sentence starter name');
|
2146
|
+
});
|
2147
|
+
})
|
1601
2148
|
});
|
1602
2149
|
}
|
1603
2150
|
},
|
@@ -1734,7 +2281,7 @@ const tests = {
|
|
1734
2281
|
utilities.verifyElementVisibilityState(thinkSpherePage.deleteVideoButton(), 'visible');
|
1735
2282
|
});
|
1736
2283
|
});
|
1737
|
-
|
2284
|
+
|
1738
2285
|
it('CSS of edit video button and delete video button', { tags: 'css' }, () => {
|
1739
2286
|
thinkSpherePage.videoLinkComponent().within(() => {
|
1740
2287
|
utilities.verifyCSS(thinkSpherePage.editVideoButton(), {
|
@@ -1827,7 +2374,7 @@ const tests = {
|
|
1827
2374
|
});
|
1828
2375
|
});
|
1829
2376
|
|
1830
|
-
it('Edit text box and edit icon pencil should exist, and on clicking the edit input field with placeholder \'Enter title\ should allow the user to add title'
|
2377
|
+
it('Edit text box and edit icon pencil should exist, and on clicking the edit input field with placeholder \'Enter title\ should allow the user to add title', () => {
|
1831
2378
|
utilities.verifyElementVisibilityState(thinkSpherePage.editBoxTextInput(), 'visible');
|
1832
2379
|
thinkSpherePage.editBoxTextInput().blur();
|
1833
2380
|
utilities.verifyElementVisibilityState(thinkSpherePage.editIconPencil(), 'visible');
|
@@ -1835,7 +2382,7 @@ const tests = {
|
|
1835
2382
|
thinkSpherePage.editBoxTextInput().should('have.attr', 'placeholder', 'Enter title');
|
1836
2383
|
thinkSpherePage.editBoxTextInput().type('Test Title');
|
1837
2384
|
thinkSpherePage.editBoxTextInput().blur();
|
1838
|
-
utilities.verifyInnerText(thinkSpherePage.editBoxText(),'Test Title');
|
2385
|
+
utilities.verifyInnerText(thinkSpherePage.editBoxText(), 'Test Title');
|
1839
2386
|
});
|
1840
2387
|
},
|
1841
2388
|
|
@@ -1844,6 +2391,321 @@ const tests = {
|
|
1844
2391
|
thinkSpherePage.editTab().should('have.class', 'Mui-selected');
|
1845
2392
|
});
|
1846
2393
|
},
|
2394
|
+
|
2395
|
+
/**
|
2396
|
+
* Verifies the functionality of editing, selecting, and unselecting strategies and sentence starters.
|
2397
|
+
* Ensures that changes are saved successfully and reflected in the preview section.
|
2398
|
+
*
|
2399
|
+
* @param {Object} sentenceStartersObject - The object containing strategies and sentence starters data.
|
2400
|
+
* @param {Array<string>} sentenceStartersObject.editedStrategies - The list of edited strategies to verify.
|
2401
|
+
* @param {Array<string>} sentenceStartersObject.editedSentenceStarters - The list of edited sentence starters to verify.
|
2402
|
+
* @param {Array<string>} sentenceStartersObject.selectStrategies - The list of strategies to select and verify.
|
2403
|
+
* @param {Array<string>} sentenceStartersObject.selectSentenceStarters - The list of sentence starters to select and verify.
|
2404
|
+
*/
|
2405
|
+
verifyStrategiesAndSentenceStartersSection: (sentenceStartersObject) => {
|
2406
|
+
const {
|
2407
|
+
editedStrategies, editedSentenceStarters, selectStrategies, selectSentenceStarters
|
2408
|
+
} = sentenceStartersObject || {};
|
2409
|
+
it('When user edits the strategies and sentence starers, then the changes should be saved successfully and edited strategies and sentence starers should get displayed in preview side', () => {
|
2410
|
+
thinkSpherePage.steps.switchToEditTab();
|
2411
|
+
thinkSpherePage.steps.clickOnEditQuestionIcon();
|
2412
|
+
editedStrategies.forEach((strategy, index) => {
|
2413
|
+
thinkSpherePage.steps.addOptionText('strategy', index, strategy);
|
2414
|
+
});
|
2415
|
+
editedSentenceStarters.forEach((sentenceStarter, index) => {
|
2416
|
+
thinkSpherePage.steps.addOptionText('sentenceStarter', index, sentenceStarter);
|
2417
|
+
});
|
2418
|
+
thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
|
2419
|
+
thinkSpherePage.steps.switchToPreviewTab();
|
2420
|
+
editedStrategies.forEach((label, index) => {
|
2421
|
+
utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.strategyTextWrapper(), index), label);
|
2422
|
+
});
|
2423
|
+
thinkSpherePage.steps.expandChooseStarterDropdown();
|
2424
|
+
editedSentenceStarters.forEach((label, index) => {
|
2425
|
+
utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
|
2426
|
+
});
|
2427
|
+
utilities.clickOnBody();
|
2428
|
+
});
|
2429
|
+
|
2430
|
+
it('When user select unselect the strategies and sentence starers, then the changes should be saved successfully and selected strategies and sentence starers should get displayed in preview side', () => {
|
2431
|
+
thinkSpherePage.steps.switchToEditTab();
|
2432
|
+
thinkSpherePage.steps.clickOnEditQuestionIcon();
|
2433
|
+
editedStrategies.forEach((strategy, index) => {
|
2434
|
+
if (!selectStrategies.includes(strategy)) {
|
2435
|
+
thinkSpherePage.steps.selectOption('strategy', index);
|
2436
|
+
}
|
2437
|
+
});
|
2438
|
+
cy.wait(2000);
|
2439
|
+
editedSentenceStarters.forEach((sentenceStarter, index) => {
|
2440
|
+
if (!selectSentenceStarters.includes(sentenceStarter)) {
|
2441
|
+
thinkSpherePage.steps.selectOption('sentenceStarter', index);
|
2442
|
+
}
|
2443
|
+
});
|
2444
|
+
cy.wait(2000);
|
2445
|
+
thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
|
2446
|
+
thinkSpherePage.steps.switchToPreviewTab();
|
2447
|
+
selectStrategies.forEach((label, index) => {
|
2448
|
+
utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.strategyTextWrapper(), index), label);
|
2449
|
+
});
|
2450
|
+
thinkSpherePage.steps.expandChooseStarterDropdown();
|
2451
|
+
selectSentenceStarters.forEach((label, index) => {
|
2452
|
+
utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
|
2453
|
+
});
|
2454
|
+
utilities.clickOnBody();
|
2455
|
+
});
|
2456
|
+
},
|
2457
|
+
|
2458
|
+
verifyWhiteBoardAndSections: () => {
|
2459
|
+
it('Whiteboard should be present in the solve tab', () => {
|
2460
|
+
thinkSpherePage.steps.verifyWhiteBoardVisibility();
|
2461
|
+
});
|
2462
|
+
|
2463
|
+
it('Whiteboard should contain toolbar, subtools, whiteboard canvas and footer sections', () => {
|
2464
|
+
thinkSpherePage.steps.verifyWhiteBoardSectionsVisibility();
|
2465
|
+
});
|
2466
|
+
|
2467
|
+
it('CSS of whiteboard sections', { tags: 'css' }, () => {
|
2468
|
+
utilities.verifyCSS(thinkSpherePage.whiteBoardTools(), {
|
2469
|
+
'padding': '5px 8px',
|
2470
|
+
'position': 'static',
|
2471
|
+
'display': 'flex',
|
2472
|
+
'flex-wrap': 'wrap'
|
2473
|
+
});
|
2474
|
+
utilities.verifyCSS(thinkSpherePage.whiteBoardSubTools(), {
|
2475
|
+
'margin': '0px 8px',
|
2476
|
+
'padding': '4px 8px',
|
2477
|
+
'borderTop': `1px solid ${css.color.secondaryBtnBorder}`,
|
2478
|
+
'minHeight': '49px',
|
2479
|
+
});
|
2480
|
+
});
|
2481
|
+
|
2482
|
+
it('Accessibility of Whiteboard', { tags: 'a11y' }, () => {
|
2483
|
+
cy.checkAccessibility(thinkSpherePage.whiteboardComponent());
|
2484
|
+
});
|
2485
|
+
},
|
2486
|
+
|
2487
|
+
/**
|
2488
|
+
* Verifies default visibility, selection, and behavior of whiteboard tools and their subtools.
|
2489
|
+
*
|
2490
|
+
* @param {Array<Object>} whiteBoardTools - An array of tool objects, where each object contains:
|
2491
|
+
* @param {string} whiteBoardTools[].name - Display name of the tool.
|
2492
|
+
* @param {string} whiteBoardTools[].dataTestId - The `data-testid` used to locate the tool in the DOM.
|
2493
|
+
* @param {boolean} [whiteBoardTools[].isDefault] - Whether the tool is visible by default.
|
2494
|
+
* @param {string[]} [whiteBoardTools[].subToolS] - An array of subtool identifiers (data-testid, data-name, or class).
|
2495
|
+
* @param {string} [whiteBoardTools[].popupSelector] - A selector used to locate popup elements that appear after tool interaction.
|
2496
|
+
* @param {string[]} [whiteBoardTools[].popupContent] - Optional array of class names used to verify the popup’s inner content.
|
2497
|
+
*
|
2498
|
+
* @param {string[]} editSectionWhiteBoardToolButtons - A list of tool names that will be enabled during edit phase.
|
2499
|
+
*/
|
2500
|
+
|
2501
|
+
verifyWhiteboardToolsAndSubTools: (whiteBoardTools, editSectionWhiteBoardToolButtons) => {
|
2502
|
+
const allToolIds = whiteBoardTools.map(tool => tool.dataTestId);
|
2503
|
+
|
2504
|
+
const defaultToolIds = whiteBoardTools.filter(tool => tool.isDefault).map(tool => tool.dataTestId);
|
2505
|
+
|
2506
|
+
it(`${defaultToolIds.join(', ')} should be visible in the whiteboard by default`, () => {
|
2507
|
+
defaultToolIds.forEach((toolId) => {
|
2508
|
+
cy.get(`[data-testid="${toolId}"]`).should('exist').and('be.visible');
|
2509
|
+
});
|
2510
|
+
});
|
2511
|
+
|
2512
|
+
it('All tools should be visible in the whiteboard after selected by the author', () => {
|
2513
|
+
thinkSpherePage.steps.switchToEditTab();
|
2514
|
+
thinkSpherePage.steps.clickOnSolvePhaseAccordionIcon();
|
2515
|
+
thinkSpherePage.steps.expandCustomizeToolsAndControls();
|
2516
|
+
editSectionWhiteBoardToolButtons.forEach((toolName) => {
|
2517
|
+
thinkSpherePage.steps.selectOptionFromToolsAndControls(toolName);
|
2518
|
+
})
|
2519
|
+
thinkSpherePage.steps.switchToPreviewTab();
|
2520
|
+
thinkSpherePage.steps.clickOnSolveTab();
|
2521
|
+
allToolIds.forEach((toolId) => {
|
2522
|
+
cy.get(`[data-testid="${toolId}"]`).should('exist').and('be.visible');
|
2523
|
+
});
|
2524
|
+
})
|
2525
|
+
|
2526
|
+
whiteBoardTools.forEach((tool) => {
|
2527
|
+
it(`When user clicks on "${tool.name}" tool it should display its sub tools`, () => {
|
2528
|
+
// Click the main tool by data-testid
|
2529
|
+
cy.get(`[data-testid="${tool.dataTestId}"]`)
|
2530
|
+
.and('be.visible')
|
2531
|
+
.first()
|
2532
|
+
.click({ force: true }) // force in case some are behind overlays
|
2533
|
+
cy.wait(1000); // Wait for any animations or transitions to complete
|
2534
|
+
|
2535
|
+
// If the tool has subtools, verify each
|
2536
|
+
if (tool.subToolS && tool.subToolS.length > 0) {
|
2537
|
+
tool.subToolS.forEach((subTool) => {
|
2538
|
+
// Try data-testid first, fall back to data-name if needed
|
2539
|
+
cy.get(`[data-testid="${subTool}"], [data-name="${subTool}"], [class*="${subTool}"]`)
|
2540
|
+
.should('exist')
|
2541
|
+
.and('be.visible');
|
2542
|
+
});
|
2543
|
+
}
|
2544
|
+
|
2545
|
+
if(tool.popupSelector) {
|
2546
|
+
// Verify the popup selector if it exists
|
2547
|
+
if(tool.popupSelector === 'eraser-width-picker') {
|
2548
|
+
cy.get(`[data-name="ERASER_THICKNESS"]`)
|
2549
|
+
.should('exist')
|
2550
|
+
.and('be.visible')
|
2551
|
+
.first()
|
2552
|
+
.click({ force: true });
|
2553
|
+
cy.get(`[class*="${tool.popupSelector}"]`).should('exist').and('be.visible');
|
2554
|
+
} else {
|
2555
|
+
cy.get(`[data-testid="${tool.popupSelector}"]`).should('exist').and('be.visible');
|
2556
|
+
}
|
2557
|
+
if(tool.popupContent) {
|
2558
|
+
// Verify the content inside the popup
|
2559
|
+
tool.popupContent.forEach((content) => {
|
2560
|
+
cy.get(`[class="${content}"]`).should('exist').and('be.visible');
|
2561
|
+
});
|
2562
|
+
}
|
2563
|
+
}
|
2564
|
+
|
2565
|
+
if(tool.name === 'simple calculator' || tool.name ==='scientific calculator') {
|
2566
|
+
cy.get(`[data-testid="${tool.dataTestId}"]`)
|
2567
|
+
.and('be.visible')
|
2568
|
+
.first()
|
2569
|
+
.click({ force: true }) // force in case some are behind overlays
|
2570
|
+
cy.wait(1000);
|
2571
|
+
}
|
2572
|
+
});
|
2573
|
+
});
|
2574
|
+
},
|
2575
|
+
|
2576
|
+
verifyWhiteboardPageNavigation: () => {
|
2577
|
+
it('By default "Previous" and "Next" page buttons should be disabled', () => {
|
2578
|
+
thinkSpherePage.steps.verifyPreviousButtonDisabled();
|
2579
|
+
thinkSpherePage.steps.verifyNextButtonDisabled();
|
2580
|
+
});
|
2581
|
+
it('When user clicks on "New Page" button it should create new page', () => {
|
2582
|
+
thinkSpherePage.steps.verifyInnerTextOfPageLabel('Page1 / 1');
|
2583
|
+
thinkSpherePage.steps.clickOnWhiteBoardNewPageButton();
|
2584
|
+
thinkSpherePage.steps.verifyInnerTextOfPageLabel('Page2 / 2');
|
2585
|
+
thinkSpherePage.steps.verifyNextButtonDisabled();
|
2586
|
+
});
|
2587
|
+
it('When user clicks on "Previous" button then it should navigate to the previous page', () => {
|
2588
|
+
thinkSpherePage.steps.clickOnPreviousButton();
|
2589
|
+
thinkSpherePage.steps.verifyInnerTextOfPageLabel('Page1 / 2');
|
2590
|
+
thinkSpherePage.steps.verifyPreviousButtonDisabled();
|
2591
|
+
});
|
2592
|
+
it('When user clicks on "Next" button then it should navigate to the next page', () => {
|
2593
|
+
thinkSpherePage.steps.clickOnNextButton();
|
2594
|
+
thinkSpherePage.steps.verifyInnerTextOfPageLabel('Page2 / 2');
|
2595
|
+
thinkSpherePage.steps.verifyNextButtonDisabled();
|
2596
|
+
});
|
2597
|
+
},
|
2598
|
+
|
2599
|
+
/**
|
2600
|
+
* Verifies the full recording and playback functionality of the whiteboard, including status changes,
|
2601
|
+
* UI updates, warnings, and accessibility features.
|
2602
|
+
*
|
2603
|
+
* @param {Array<Object>} whiteBoardTools - An array of whiteboard tool objects used to simulate interactions during recording.
|
2604
|
+
* @param {string} whiteBoardTools[].dataTestId - The `data-testid` used to identify the tool.
|
2605
|
+
*/
|
2606
|
+
|
2607
|
+
verifyWhiteboardRecordingAndPlayback: (whiteBoardTools) => {
|
2608
|
+
it('By default the recording status should be "Ready" and there should be no time status of recording', () => {
|
2609
|
+
thinkSpherePage.steps.verifyRecordingStatus('Ready');
|
2610
|
+
thinkSpherePage.steps.verifyRecordingTimeStatusNotPresent();
|
2611
|
+
});
|
2612
|
+
|
2613
|
+
it('By default "Review" tab should contain "Watch your recording No recording available." before recording', () => {
|
2614
|
+
thinkSpherePage.steps.clickOnReviewTab();
|
2615
|
+
thinkSpherePage.steps.verifyPlayBackNotAvailable('Watch your recordingNo recording available.');
|
2616
|
+
thinkSpherePage.steps.clickOnSolveTab();
|
2617
|
+
});
|
2618
|
+
|
2619
|
+
it('When the user clicks on the recording button, the recording status should be "Recording"', () => {
|
2620
|
+
thinkSpherePage.steps.clickOnRecordingOrPauseButton();
|
2621
|
+
thinkSpherePage.steps.verifyRecordingStatus('Recording');
|
2622
|
+
thinkSpherePage.steps.verifyRecordingTimeStatusPresent();
|
2623
|
+
});
|
2624
|
+
|
2625
|
+
it('When the user clicks on the pause button, the recording status should be "Paused"', () => {
|
2626
|
+
thinkSpherePage.steps.clickOnRecordingOrPauseButton();
|
2627
|
+
thinkSpherePage.steps.verifyRecordingStatus('Paused');
|
2628
|
+
});
|
2629
|
+
|
2630
|
+
it('When the user click on Plan, or Review tab while recording, it should show a warning popup to the user', () => {
|
2631
|
+
thinkSpherePage.steps.clickOnRecordingOrPauseButton();
|
2632
|
+
thinkSpherePage.steps.clickOnReviewTab();
|
2633
|
+
thinkSpherePage.steps.verifyWhiteBoardRecordingInprogressWarning();
|
2634
|
+
thinkSpherePage.steps.clickOnWhiteBoardRecordingInProgressWarningOkButton();
|
2635
|
+
thinkSpherePage.steps.clickOnPlanTab();
|
2636
|
+
thinkSpherePage.steps.verifyWhiteboardWarningHeaderText('Recording in Progress');
|
2637
|
+
thinkSpherePage.steps.verifyWhiteboardWarningDescriptionText("You're currently recording your work. To avoid losing progress, please return and click Stop to save the recording.");
|
2638
|
+
});
|
2639
|
+
|
2640
|
+
it('CSS of Recording in Progress warning', { tags: 'css' }, () => {
|
2641
|
+
utilities.verifyCSS(thinkSpherePage.whiteboardRecordingInProgressWarningHeader(), {
|
2642
|
+
'border-bottom': `1px solid ${css.color.secondaryBtnBorder}`,
|
2643
|
+
'padding': '20px 0px',
|
2644
|
+
'margin': '0px 16px',
|
2645
|
+
'text-align': 'left',
|
2646
|
+
});
|
2647
|
+
utilities.verifyCSS(thinkSpherePage.whiteboardRecordingInProgressWarningDescription(), {
|
2648
|
+
'padding': '0px 16px',
|
2649
|
+
'font-size': '16px',
|
2650
|
+
'color': css.color.sectionHeading,
|
2651
|
+
'line-height': '22px',
|
2652
|
+
'font-weight': '400',
|
2653
|
+
});
|
2654
|
+
utilities.verifyCSS(thinkSpherePage.whiteboardRecordingInProgressWarningOkButton(), {
|
2655
|
+
'color': css.color.primaryBtn,
|
2656
|
+
'font-size': css.fontSize.default,
|
2657
|
+
'font-weight': css.fontWeight.semibold,
|
2658
|
+
'background-color': css.color.primaryBtnBg
|
2659
|
+
});
|
2660
|
+
});
|
2661
|
+
|
2662
|
+
it('Accessibility of whiteboard warning popup', { tags: 'a11y' }, () => {
|
2663
|
+
cy.checkAccessibility(thinkSpherePage.whiteboardRecordingInProgressWarning());
|
2664
|
+
thinkSpherePage.steps.clickOnWhiteBoardRecordingInProgressWarningOkButton();
|
2665
|
+
});
|
2666
|
+
|
2667
|
+
|
2668
|
+
it('The user should be able to switch to Review tab without warning after stopping the recording and the Review tab should contain the Playback option', () => {
|
2669
|
+
cy.get(`[data-testid="${whiteBoardTools[0].dataTestId}"]`)
|
2670
|
+
.should('exist')
|
2671
|
+
.and('be.visible')
|
2672
|
+
.first()
|
2673
|
+
.click({ force: true });
|
2674
|
+
cy.get('.upper-canvas').click({ force: true });
|
2675
|
+
cy.focused().type('Test text for recording');
|
2676
|
+
thinkSpherePage.steps.clickOnStopButton();
|
2677
|
+
thinkSpherePage.steps.clickOnReviewTab();
|
2678
|
+
thinkSpherePage.steps.verifyWhiteBoardRecordingInprogressWarningNotVisible();
|
2679
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayer();
|
2680
|
+
});
|
2681
|
+
|
2682
|
+
it('By default the user should see the playback time as 00:00 / total duration', () => {
|
2683
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayerTimeStatus('00:00');
|
2684
|
+
});
|
2685
|
+
|
2686
|
+
it('When the user clicks on the Play button, it should play the recording', () => {
|
2687
|
+
thinkSpherePage.steps.clickOnWhiteBoardPlaybackPlayButton();
|
2688
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayerPauseButtonVisible();
|
2689
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayerTimeStatus('00:01');
|
2690
|
+
});
|
2691
|
+
|
2692
|
+
it('When the user clicks on the Pause button, it should pause the recording', () => {
|
2693
|
+
thinkSpherePage.steps.clickOnWhiteBoardPlaybackPauseButton();
|
2694
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayerPlayButtonVisible();
|
2695
|
+
});
|
2696
|
+
|
2697
|
+
it('When the user hovers over the speaker button, it should display the volume slider', () => {
|
2698
|
+
thinkSpherePage.steps.hoverOverWhiteBoardPlaybackSpeakerButton();
|
2699
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayerVolumeSliderVisible();
|
2700
|
+
});
|
2701
|
+
|
2702
|
+
it('When the user clicks on the speaker button, it should mute the volume, and when the user clicks on it again, it should unmute the volume', () => {
|
2703
|
+
thinkSpherePage.steps.clickOnWhiteBoardPlaybackSpeakerButton();
|
2704
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayerVolumeMuted();
|
2705
|
+
thinkSpherePage.steps.clickOnWhiteBoardPlaybackSpeakerButton();
|
2706
|
+
thinkSpherePage.steps.verifyWhiteBoardPlayerVolumeUnmuted();
|
2707
|
+
});
|
2708
|
+
}
|
1847
2709
|
};
|
1848
2710
|
|
1849
2711
|
export const thinkSpherePage = {
|