itemengine-cypress-automation 1.0.377 → 1.0.378-fullExecutionFixes-5fff71f.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/BrowseItems/browseReviewItems.js +39 -7
- 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/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
- package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -4
- 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/editCategoryFlyout.js +0 -1
- 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/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
- package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
- 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/NumberLine/toolsAndControls.js +1 -1
- 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 +54 -1
- package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +53 -2
- package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
- package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
- package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
- package/cypress/e2e/ILC/ThinkSphere/planPhase.js +91 -9
- 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 +35 -2
- 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/browseItemsPage.js +109 -2
- package/cypress/pages/components/chartsCommonComponent.js +6 -2
- package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
- package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
- 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/editCategoryFlyout.js +2 -2
- 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 +1204 -48
- 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 +3 -3
- /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/checkAnswerFunctionalityForAllViews.js +0 -0
- /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/editQuestion.smoke.js +0 -0
@@ -1,15 +1,19 @@
|
|
1
1
|
import utilities from "../support/helpers/utilities";
|
2
2
|
import { browseItemsPage } from "../pages/components/browseItemsPage";
|
3
|
+
import { editCategoryFlyout } from "../pages/components/editCategoryFlyout";
|
3
4
|
import { dialogBoxBase } from "../pages/dialogBoxBase";
|
4
|
-
import { backgroundImageUploadComponent, createQuestionBasePage, scoringSectionBaseEditTab, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, toolSettingsComponent, questionInstructionsComponent, studentViewSettingsLabelComponent, defaultToolDropdown, essayResponseCommonComponents, equationEditorSectionCommonComponent, equationEditorFlyout } from "./components"
|
5
|
+
import { backgroundImageUploadComponent, createQuestionBasePage, scoringSectionBaseEditTab, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, toolSettingsComponent, questionInstructionsComponent, studentViewSettingsLabelComponent, defaultToolDropdown, essayResponseCommonComponents, equationEditorSectionCommonComponent, equationEditorFlyout, createCustomCategoryFlyout } from "./components"
|
5
6
|
import { drawingResponsePage } from "./drawingResponsePage";
|
6
7
|
import { optionsWrapperComponent } from "../pages/components/optionsWrapperComponent";
|
7
8
|
import { selectQuestionResourceToolPage } from "./selectQuestionResourceToolPage";
|
8
9
|
import { videoResponsePage } from "./videoResponsePage";
|
9
10
|
import { singleSelectionPage } from "./singleSelectionPage";
|
11
|
+
import { essayResponsePage } from "./essayResponsePage";
|
12
|
+
import { equationEditorCategoriesAndSymbols } from "../fixtures/equationEditorCategoriesAndSymbols ";
|
10
13
|
const css = Cypress.env('css');
|
11
14
|
|
12
15
|
const selectors = {
|
16
|
+
...essayResponsePage,
|
13
17
|
...backgroundImageUploadComponent,
|
14
18
|
...questionInstructionsComponent,
|
15
19
|
...commonComponents,
|
@@ -24,6 +28,10 @@ const selectors = {
|
|
24
28
|
...browseItemsPage,
|
25
29
|
...videoResponsePage,
|
26
30
|
...dialogBoxBase,
|
31
|
+
...editCategoryFlyout,
|
32
|
+
...createCustomCategoryFlyout,
|
33
|
+
...createQuestionBasePage,
|
34
|
+
|
27
35
|
editQuestionPencil: () => cy.get('[class*="Widgetstyles__HeaderContainer"] button.icon-pencil'),
|
28
36
|
widgetHeaderQuestionTitle: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="Widgetstyles__QuestionTypeText"]'),
|
29
37
|
imageUploadSection: () => cy.get('[class*="TabsComponentstyles__ImageUploadComponentWrapper"]'),
|
@@ -72,13 +80,13 @@ const selectors = {
|
|
72
80
|
planStrategyListResetToDefault: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
|
73
81
|
planStrategyAddItemButton: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
|
74
82
|
planStrategyCheckbox: () => cy.get('[class*="Planstyles__StrategiesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
|
75
|
-
videoLinkComponent: () => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'),
|
83
|
+
videoLinkComponent: (nthElement = 0) => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'), nthElement),
|
76
84
|
uploadVideoLinkButton: () => cy.get('[class*="ListOptionsComponentstyles__UploadVideoTextWrapper"]'),
|
77
85
|
planSentenceStarterSection: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"]'),
|
78
86
|
planSentenceStarterListHeader: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__HeadingTextWrapper"]'),
|
79
87
|
planSentenceStarterListResetToDefault: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
|
80
88
|
planSentenceStarterAddItemButton: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
|
81
|
-
planSentenceStarterCheckbox
|
89
|
+
planSentenceStarterCheckbox: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
|
82
90
|
solvePhaseAccordian: () => cy.get('[class*="Planstyles__SolveAccordianWrapper"] [class~="MuiAccordionSummary-root"] [role="button"]'),
|
83
91
|
solvePhaseAccordianLabel: () => cy.get('[class*="Solvestyles__AccordionLabel"]'),
|
84
92
|
inputTypeVideoFile: () => cy.get('[class*="Planstyles__StrategiesWrapper"] input[type="file"]'),
|
@@ -90,7 +98,7 @@ const selectors = {
|
|
90
98
|
editVideoButton: () => cy.get('[aria-label*="Change video"]'),
|
91
99
|
deleteVideoButton: () => cy.get('[aria-label*="Delete video"]'),
|
92
100
|
listInputField: () => cy.get('.option-component textarea[placeholder]'),
|
93
|
-
deleteButton: () => cy.get('button[aria-label*="Delete"]'),
|
101
|
+
deleteButton: () => cy.get('button[aria-label*="Delete"].ngie-icon-btn-cls'),
|
94
102
|
optionNumeration: () => cy.get('[class*="MuiInputAdornment-positionStart"]'),
|
95
103
|
iconPencil: () => cy.get('div[class*="icon-pencil"]'),
|
96
104
|
iconXCircle: () => cy.get('div[class*="icon-x-circle"]'),
|
@@ -102,7 +110,8 @@ const selectors = {
|
|
102
110
|
thinkSphereMathQuestionHeaderDeleteIcon: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="icon-Delete"]'),
|
103
111
|
addCheckMathQuestionButton: () => cy.get('.ngie-btn-typography').contains(`Add 'Check your math' question`),
|
104
112
|
firstAvailableItemLink: () => utilities.getNthElement(cy.get('.browse-item-styled-link'), 0),
|
105
|
-
saveButton: () => cy.get('.ngie-btn-typography').contains('save',{matchCase: false}),
|
113
|
+
saveButton: () => cy.get('.ngie-btn-typography').contains('save', { matchCase: false }),
|
114
|
+
cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel', { matchCase: false }),
|
106
115
|
AddCheckMathQuestionHeader: () => cy.get('.browse-title-wrapper').contains(`Add 'Check your math' question`),
|
107
116
|
singleOptionTextFieldWrapper: () => cy.get('[class*="SingleOptionstyle__TextFieldWrapper"]'),
|
108
117
|
customizeStampComponent: () => cy.get('[class*="CustomizeStampstyles__CustomizeStampWrapper"]'),
|
@@ -127,7 +136,7 @@ const selectors = {
|
|
127
136
|
imageUploadSectionQuestionImageCrossIcon: () => thinkSpherePage.imageUploadSection().find('div[class*="QuestionImageComponentstyle__CrossIcon"]'),
|
128
137
|
imageRadioButtonParentSvg: () => thinkSpherePage.imageRadioButton().parent().find('svg'),
|
129
138
|
solvePhaseAccordionSvg: () => thinkSpherePage.solvePhaseAccordion().find('svg'),
|
130
|
-
|
139
|
+
customizeToolsAndControlsPath: () => thinkSpherePage.customizeToolsAndControls().find('path'),
|
131
140
|
solvePhaseToolsAndControlsOptionsTilesFeatherCheckIcon: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name="Icon feather-check"]'),
|
132
141
|
solvePhaseToolsAndControlsOptionsTilesRectangle: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name*="Rectangle"]'),
|
133
142
|
solvePhaseToolsAndControlsOptionsTilesDragItemFlexWrapperSvg: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('.drag-item-flex-wrapper svg'),
|
@@ -141,9 +150,9 @@ const selectors = {
|
|
141
150
|
popupTitle: () => cy.get('[class*="dialog-title-wrapper"]'),
|
142
151
|
strategyNameLabel: () => cy.get('[class*="ThinkSpherePreviewstyles__StrategyNameTextWrapper"]'),
|
143
152
|
strategyNameInputField: () => cy.get('[class*="new-strategy-name-field"]'),
|
144
|
-
addStrategyPopupCancelButton: () =>
|
153
|
+
addStrategyPopupCancelButton: () =>
|
145
154
|
cy.get('.dialog-content').contains('Cancel'),
|
146
|
-
addStrategyPopupSaveButton: () =>
|
155
|
+
addStrategyPopupSaveButton: () =>
|
147
156
|
cy.get('.dialog-content').contains('Save'),
|
148
157
|
// preview tab plan section selection
|
149
158
|
questionInstructionPreviewTexWrapper: () => cy.get('.question-instruction.question-text-wrapper'),
|
@@ -151,9 +160,9 @@ const selectors = {
|
|
151
160
|
questionInstructionPreviewImageExpandButton: () => cy.get('[class*="ThinkSpherePreviewstyles__ExpandImageIconWrapper"]'),
|
152
161
|
questionInstructionImagePopup: () => cy.get('[class*="QuestionTextstyle__ImagePopupDiv"]'),
|
153
162
|
closeExpandImagePopupButton: () => cy.get('.close-popup-btn'),
|
154
|
-
PlanningPreviewWrapper
|
163
|
+
PlanningPreviewWrapper: () => cy.get('[class*="PlanningPreviewstyles__PlanningPreviewWrapper"]'),
|
155
164
|
planningPreviewHeading: () => cy.get('[class*="PlanningPreviewstyles__HeadingWrapper"]'),
|
156
|
-
planningWriteWrapper
|
165
|
+
planningWriteWrapper: () => cy.get('[class*="PlanningPreviewstyles__WriteWrapper"]'),
|
157
166
|
problemAskingWrapper: () => cy.get('[class*="PlanningPreviewstyles__ProblemAskingWrapper"]'),
|
158
167
|
contentEditableDiv: () => cy.get('[class*="PlanningPreviewstyles__ContentEditableDiv"]'),
|
159
168
|
micIconWrapper: () => cy.get('[class*="PlanningPreviewstyles__MicIconWrapper"]'),
|
@@ -181,9 +190,71 @@ const selectors = {
|
|
181
190
|
gridItemsWrapper: (number) => cy.get('[class*="DragAndDropGridstyles__GridItemsWrapper"]').eq(number),
|
182
191
|
dragButton: (number) => cy.get('[type="button"]').eq(number),
|
183
192
|
customizeStampsButton: (customizeStampPosition) => cy.get(`button[aria-label="Stamp ${customizeStampPosition}"]`),
|
193
|
+
buttonSave: () => cy.get('.action-btn-wrapper button').eq(1),
|
194
|
+
buttonCancel: () => cy.get('.action-btn-wrapper button').eq(0),
|
195
|
+
nextGenThinkSphereCreateItemWrapper: () => cy.get('#nextgen-thinkshpere-create-item'),
|
196
|
+
equationEditorSectionTitle: () => cy.get('.equation-editor-text-title'),
|
197
|
+
referenceIdWrapper: () => cy.get('.edit-item-reference-id-wrapper'),
|
198
|
+
editBoxWrapper: () => cy.get('.edit-box-wrapper'),
|
199
|
+
editBoxText: () => cy.get('.edit-box-text'),
|
200
|
+
editBoxTextInput: () => thinkSpherePage.editBoxWrapper().find('input'),
|
201
|
+
editIconPencil: () => cy.get('.icon-pencil'),
|
202
|
+
thinkSphereQuestionHeader: () => cy.get('.edit-question-header-title'),
|
203
|
+
filterSectionQuestionTypesAccordion: () => cy.get('.filter-section-expansion-panel-summary-root'),
|
204
|
+
filterSectionQuestionAccordion: () => cy.get('.expansion-item-expansion-panel-summary-content'),
|
205
|
+
checkBox: () => cy.get('.MuiCheckbox-root'),
|
206
|
+
browseItemQuestionItem: () => cy.get('.browse-item-question-item'),
|
207
|
+
ErrorMessageContainer: () => cy.get('.ErrorMessageContainer'),
|
208
|
+
categoriesDropDown: () => cy.get('.dropdown-form-control[label="Categories"]'),
|
209
|
+
categoriesDropDownLabelText: () => cy.get('.dropdown-label-text'),
|
210
|
+
categoriesDropDownMenuItem: () => cy.get('.dropdown-menu-item .dropdown-label-text'),
|
211
|
+
categoriesDropDownParent: () => cy.get('.drop-down-parent'),
|
212
|
+
cardWrapper: () => cy.get('.card-wrapper'),
|
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'),
|
184
254
|
};
|
185
255
|
|
186
256
|
const steps = {
|
257
|
+
...essayResponsePage.steps,
|
187
258
|
...backgroundImageUploadComponent.steps,
|
188
259
|
...questionInstructionsComponent.steps,
|
189
260
|
...scoringSectionBaseEditTab.steps,
|
@@ -200,6 +271,7 @@ const steps = {
|
|
200
271
|
...browseItemsPage.steps,
|
201
272
|
...videoResponsePage.steps,
|
202
273
|
...createQuestionBasePage.steps,
|
274
|
+
...createCustomCategoryFlyout.steps,
|
203
275
|
|
204
276
|
/**
|
205
277
|
* Navigates to the ThinkSphere create question page.
|
@@ -271,12 +343,24 @@ const steps = {
|
|
271
343
|
cy.wait('@setItem');
|
272
344
|
},
|
273
345
|
|
346
|
+
clickOnCancelButton: () => {
|
347
|
+
cy.interceptGraphql('setItem');
|
348
|
+
thinkSpherePage.cancelButton()
|
349
|
+
.click();
|
350
|
+
},
|
351
|
+
|
274
352
|
clickOnSwapButton: () => {
|
275
353
|
thinkSpherePage.ThinkSphereMathQuestionHeaderSwapIcon()
|
276
354
|
.click();
|
277
355
|
cy.wait(2000);
|
278
356
|
},
|
279
357
|
|
358
|
+
clickOnEditButton: () => {
|
359
|
+
thinkSpherePage.ThinkSphereMathQuestionHeaderPencilIcon()
|
360
|
+
.click();
|
361
|
+
cy.wait(2000);
|
362
|
+
},
|
363
|
+
|
280
364
|
clickOnDeleteButton: () => {
|
281
365
|
thinkSpherePage.thinkSphereMathQuestionHeaderDeleteIcon()
|
282
366
|
.click();
|
@@ -320,20 +404,20 @@ const steps = {
|
|
320
404
|
*/
|
321
405
|
uploadVideoFile: (file) => {
|
322
406
|
const fileName = file.split('/').pop(); // Extracts only 'sample.mp4'
|
323
|
-
|
407
|
+
|
324
408
|
cy.fixture(file, 'binary') // Read the file as binary
|
325
409
|
.then(Cypress.Blob.binaryStringToBlob)
|
326
410
|
.then((blob) => {
|
327
411
|
const fileObj = new File([blob], fileName, { type: 'video/mp4' });
|
328
412
|
const dataTransfer = new DataTransfer();
|
329
413
|
dataTransfer.items.add(fileObj);
|
330
|
-
|
414
|
+
|
331
415
|
thinkSpherePage.inputTypeVideoFile().then(($input) => {
|
332
416
|
$input[0].files = dataTransfer.files;
|
333
417
|
cy.wrap($input).trigger('change', { force: true });
|
334
418
|
});
|
335
419
|
});
|
336
|
-
|
420
|
+
|
337
421
|
cy.wait(4000);
|
338
422
|
},
|
339
423
|
|
@@ -409,13 +493,13 @@ const steps = {
|
|
409
493
|
},
|
410
494
|
expandSolvePhaseAccordion: () => {
|
411
495
|
thinkSpherePage.solvePhaseAccordion()
|
412
|
-
|
413
|
-
|
496
|
+
.click()
|
497
|
+
.should('have.attr', 'aria-expanded', 'true');
|
414
498
|
},
|
415
499
|
expandCustomizeToolsAndControls: () => {
|
416
500
|
thinkSpherePage.customizeToolsAndControls()
|
417
|
-
|
418
|
-
|
501
|
+
.click()
|
502
|
+
.should('have.attr', 'aria-expanded', 'true');
|
419
503
|
},
|
420
504
|
/**
|
421
505
|
* Verifies the tools and controls options.
|
@@ -432,9 +516,9 @@ const steps = {
|
|
432
516
|
*/
|
433
517
|
selectOptionFromToolsAndControls: (option) => {
|
434
518
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
435
|
-
|
519
|
+
.click();
|
436
520
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
437
|
-
|
521
|
+
.should('have.attr', 'data-aria-pressed', 'true');
|
438
522
|
},
|
439
523
|
/**
|
440
524
|
* Deselects an option from tools and controls.
|
@@ -442,9 +526,9 @@ const steps = {
|
|
442
526
|
*/
|
443
527
|
deselectOptionFromToolsAndControls: (option) => {
|
444
528
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
445
|
-
|
529
|
+
.click();
|
446
530
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
447
|
-
|
531
|
+
.should('have.attr', 'data-aria-pressed', 'false');
|
448
532
|
},
|
449
533
|
/**
|
450
534
|
* Verifies if an option is selected.
|
@@ -452,7 +536,7 @@ const steps = {
|
|
452
536
|
*/
|
453
537
|
verifyOptionIsSelected: (option) => {
|
454
538
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
455
|
-
|
539
|
+
.should('have.attr', 'data-aria-pressed', 'true');
|
456
540
|
},
|
457
541
|
/**
|
458
542
|
* Verifies if an option is not selected.
|
@@ -460,7 +544,7 @@ const steps = {
|
|
460
544
|
*/
|
461
545
|
verifyOptionIsNotSelected: (option) => {
|
462
546
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
463
|
-
|
547
|
+
.should('have.attr', 'data-aria-pressed', 'false');
|
464
548
|
},
|
465
549
|
|
466
550
|
/**
|
@@ -493,7 +577,7 @@ const steps = {
|
|
493
577
|
utilities.getNthElement(thinkSpherePage.deleteButton(), index)
|
494
578
|
.click();
|
495
579
|
},
|
496
|
-
|
580
|
+
|
497
581
|
/**
|
498
582
|
* Verifies the delete option button disabled state.
|
499
583
|
* @param {string} list - The list to verify ('strategy' or other).
|
@@ -543,7 +627,8 @@ const steps = {
|
|
543
627
|
.click();
|
544
628
|
} else {
|
545
629
|
thinkSpherePage.planSentenceStarterAddItemButton()
|
546
|
-
.click()
|
630
|
+
.click()
|
631
|
+
.trigger('mouseout', { force: true });
|
547
632
|
}
|
548
633
|
},
|
549
634
|
|
@@ -574,14 +659,14 @@ const steps = {
|
|
574
659
|
.within(() => {
|
575
660
|
utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
|
576
661
|
.clear()
|
577
|
-
.type(text);
|
662
|
+
.type(text, { delay: 500 });
|
578
663
|
});
|
579
664
|
} else {
|
580
665
|
thinkSpherePage.planSentenceStarterSection()
|
581
666
|
.within(() => {
|
582
667
|
utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
|
583
668
|
.clear()
|
584
|
-
.type(text);
|
669
|
+
.type(text, { delay: 500 });
|
585
670
|
});
|
586
671
|
}
|
587
672
|
},
|
@@ -708,9 +793,9 @@ const steps = {
|
|
708
793
|
},
|
709
794
|
|
710
795
|
verifyOptionAlignmentIsSelected: (direction) => {
|
711
|
-
if(direction === 'topLeft') {
|
796
|
+
if (direction === 'topLeft') {
|
712
797
|
thinkSpherePage.whiteBoardCanvas()
|
713
|
-
|
798
|
+
.should('not.have.css', 'justify-content', 'start');
|
714
799
|
} else {
|
715
800
|
thinkSpherePage.whiteBoardCanvas()
|
716
801
|
.should('have.css', 'justify-content', (direction === 'center' || direction === 'flex-end') ? 'normal' : direction);
|
@@ -720,7 +805,7 @@ const steps = {
|
|
720
805
|
}
|
721
806
|
}
|
722
807
|
},
|
723
|
-
|
808
|
+
|
724
809
|
clickOnImageRadioButton: () => {
|
725
810
|
thinkSpherePage.imageRadioButton()
|
726
811
|
.click();
|
@@ -729,10 +814,11 @@ const steps = {
|
|
729
814
|
clickOnEditQuestionIcon: () => {
|
730
815
|
utilities.getNthElement(thinkSpherePage.editQuestionPencil(), 0)
|
731
816
|
.click();
|
817
|
+
cy.wait(1000);
|
732
818
|
},
|
733
819
|
|
734
820
|
clickOnQuestionInstructionExpandImageButton: () => {
|
735
|
-
thinkSpherePage.questionInstructionPreviewImageExpandButton()
|
821
|
+
utilities.getNthElement(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 0)
|
736
822
|
.click();
|
737
823
|
},
|
738
824
|
|
@@ -855,9 +941,699 @@ const steps = {
|
|
855
941
|
verifyCustomizeStampSelectedUnselected: (selected, customizeStampPosition) => {
|
856
942
|
utilities.verifyElementAttribute(thinkSpherePage.customizeStampsButton(customizeStampPosition), 'aria-checked', selected ? 'true' : 'false');
|
857
943
|
},
|
944
|
+
|
945
|
+
saveCustomCategory: () => {
|
946
|
+
thinkSpherePage.buttonSave()
|
947
|
+
.click();
|
948
|
+
},
|
949
|
+
|
950
|
+
cancelCustomCategory: () => {
|
951
|
+
thinkSpherePage.buttonCancel()
|
952
|
+
.click();
|
953
|
+
},
|
954
|
+
|
955
|
+
createCustomCategoryWithMultipleCategoryCharacters: () => {
|
956
|
+
cy.log('Creating a custom category by selecting \'Keypad\' category, partially selecting \'Basic\' and \'Greek\' categories')
|
957
|
+
createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
|
958
|
+
createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['primary'].displayName}`);
|
959
|
+
cy.wait(2000);
|
960
|
+
createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['matrices'].displayName}`);
|
961
|
+
createCustomCategoryFlyout.steps.expandCategoryAccordion(`Greek Symbols`);
|
962
|
+
createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.gamma.ariaLabel}`);
|
963
|
+
createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.delta.ariaLabel}`);
|
964
|
+
createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Custom category with name.');
|
965
|
+
thinkSpherePage.steps.saveCustomCategory();
|
966
|
+
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
967
|
+
},
|
968
|
+
|
969
|
+
createCustomCategoryWithNameAndIcon: () => {
|
970
|
+
cy.log('Creating a category by selecting \'Arrows\' category')
|
971
|
+
createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
|
972
|
+
createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['geo'].displayName}`);
|
973
|
+
createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Custom category with name and icon.');
|
974
|
+
createCustomCategoryFlyout.steps.addInputToCategoryIconInputField('#');
|
975
|
+
thinkSpherePage.steps.saveCustomCategory();
|
976
|
+
},
|
977
|
+
|
978
|
+
verifyCategoryCharactersAndUnSelectedState: (arrayOfSymbolsAriaLabel) => {
|
979
|
+
thinkSpherePage.categoryCharacters()
|
980
|
+
.then(($symbols) => {
|
981
|
+
for (let index = 10; index < $symbols.length - 1; index++) {
|
982
|
+
editCategoryFlyout.categoryCharacters()
|
983
|
+
.eq(index)
|
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
|
+
});
|
994
|
+
},
|
995
|
+
|
996
|
+
verifyCategoryCharactersAndSelectedState: (arrayOfSymbolsAriaLabel) => {
|
997
|
+
editCategoryFlyout.categoryCharacters()
|
998
|
+
.then(($symbols) => {
|
999
|
+
for (let index = 0; index < arrayOfSymbolsAriaLabel.length - 1; index++) {
|
1000
|
+
editCategoryFlyout.categoryCharacters()
|
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
|
+
});
|
1010
|
+
}
|
1011
|
+
});
|
1012
|
+
},
|
1013
|
+
|
1014
|
+
expandDropdown: () => {
|
1015
|
+
thinkSpherePage.categoriesDropDownParent()
|
1016
|
+
.click();
|
1017
|
+
},
|
1018
|
+
|
1019
|
+
verifyDropdownOptions: (dropDownListArray) => {
|
1020
|
+
thinkSpherePage.categoriesDropDownMenuItem().should('have.length', dropDownListArray.length).each(($item) => {
|
1021
|
+
cy.wrap($item)
|
1022
|
+
.invoke('text')
|
1023
|
+
.then((text) => {
|
1024
|
+
const trimmedText = text.trim();
|
1025
|
+
expect(dropDownListArray).to.include(trimmedText);
|
1026
|
+
});
|
1027
|
+
});
|
1028
|
+
},
|
1029
|
+
|
1030
|
+
clickOnDropDownCategory: (index) => {
|
1031
|
+
thinkSpherePage.categoriesDropDownMenuItem().eq(index).click();
|
1032
|
+
},
|
1033
|
+
|
1034
|
+
clickOnQuestionTypesAccordion: () => {
|
1035
|
+
thinkSpherePage.filterSectionQuestionTypesAccordion()
|
1036
|
+
.click()
|
1037
|
+
},
|
1038
|
+
|
1039
|
+
typeInSearchBar: (input) => {
|
1040
|
+
thinkSpherePage.searchBar()
|
1041
|
+
.clear()
|
1042
|
+
.type(input)
|
1043
|
+
.should('have.value', input);
|
1044
|
+
},
|
1045
|
+
|
1046
|
+
searchInSearchBar: (input) => {
|
1047
|
+
thinkSpherePage.searchBar()
|
1048
|
+
.clear()
|
1049
|
+
.type(input)
|
1050
|
+
.should('have.value', input)
|
1051
|
+
.type('{enter}');
|
1052
|
+
},
|
1053
|
+
|
1054
|
+
clickOnSolvePhaseAccordionIcon: (element) => {
|
1055
|
+
thinkSpherePage.solvePhaseAccordionExpandIcon()
|
1056
|
+
.click();
|
1057
|
+
},
|
1058
|
+
|
1059
|
+
verifyElementDoesNotHaveExpandedClass: (element) => {
|
1060
|
+
element.should('not.have.class', 'Mui-expanded');
|
1061
|
+
},
|
1062
|
+
|
1063
|
+
verifyElementDoesNotHaveCheckedClass: (element) => {
|
1064
|
+
element.should('not.have.class', 'Mui-checked');
|
1065
|
+
},
|
1066
|
+
|
1067
|
+
verifyThinkSphereSearchBarPlaceholder: () => {
|
1068
|
+
thinkSpherePage.searchBar().should('have.attr', 'placeholder', 'Search by title, tags and content');
|
1069
|
+
},
|
1070
|
+
|
1071
|
+
verifyReviewItemSearchBarPlaceholder: () => {
|
1072
|
+
thinkSpherePage.searchBar().should('have.attr', 'placeholder', 'Search by question type');
|
1073
|
+
},
|
1074
|
+
|
1075
|
+
verifyEquationEditorSectionCategoryNotPressed: () => {
|
1076
|
+
thinkSpherePage.equationEditorSectionCategories().eq(1).should('have.attr', 'data-aria-pressed', 'false');
|
1077
|
+
},
|
1078
|
+
|
1079
|
+
verifyEquationEditorSectionCategoryIsPressed: () => {
|
1080
|
+
thinkSpherePage.equationEditorSectionCategories().eq(10).should('have.attr', 'data-aria-pressed', 'true');
|
1081
|
+
},
|
1082
|
+
|
1083
|
+
verifyTypeCheckBoxStrategy: () => {
|
1084
|
+
utilities.getNthElement(thinkSpherePage.planStrategyCheckbox(), 5)
|
1085
|
+
.find('input').should('have.attr', 'type', 'checkbox');
|
1086
|
+
},
|
1087
|
+
|
1088
|
+
verifyTypeCheckBoxSentenceStarter: () => {
|
1089
|
+
utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox(), 5)
|
1090
|
+
.find('input').should('have.attr', 'type', 'checkbox');
|
1091
|
+
},
|
1092
|
+
|
1093
|
+
verifyStrategyCheckBoxNotChecked: () => {
|
1094
|
+
utilities.getNthElement(thinkSpherePage.planStrategyCheckbox(), 5)
|
1095
|
+
.find('input').should('not.have.attr', 'checked');
|
1096
|
+
},
|
1097
|
+
|
1098
|
+
verifySentenceStrategyCheckBoxNotChecked: () => {
|
1099
|
+
utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox(), 5)
|
1100
|
+
.find('input').should('not.have.attr', 'checked');
|
1101
|
+
},
|
1102
|
+
|
1103
|
+
verifyTextIsNotEmpty: (element) => {
|
1104
|
+
element.invoke('text')
|
1105
|
+
.should('not.be.empty');
|
1106
|
+
},
|
1107
|
+
|
1108
|
+
verifyLength: (element, length) => {
|
1109
|
+
element.should('have.length', length);
|
1110
|
+
},
|
1111
|
+
|
1112
|
+
verifyFilterSectionExpanded: () => {
|
1113
|
+
thinkSpherePage.filterSectionQuestionTypesAccordion().should('have.class', 'Mui-expanded');
|
1114
|
+
},
|
1115
|
+
|
1116
|
+
verifyFilterSectionCollapsed: () => {
|
1117
|
+
thinkSpherePage.filterSectionQuestionTypesAccordion().should('not.have.class', 'Mui-expanded');
|
1118
|
+
},
|
1119
|
+
|
1120
|
+
verifySolvePhaseAccordionExpanded: () => {
|
1121
|
+
thinkSpherePage.solvePhaseAccordionExpandIcon().should('have.class', 'Mui-expanded');
|
1122
|
+
},
|
1123
|
+
|
1124
|
+
verifySolvePhaseAccordionCollapsed: () => {
|
1125
|
+
thinkSpherePage.solvePhaseAccordionExpandIcon().should('not.have.class', 'Mui-expanded');
|
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
|
+
}
|
858
1633
|
};
|
859
1634
|
|
860
1635
|
const tests = {
|
1636
|
+
...essayResponsePage.tests,
|
861
1637
|
...createQuestionBasePage.tests,
|
862
1638
|
...backgroundImageUploadComponent.tests,
|
863
1639
|
...questionInstructionsComponent.tests,
|
@@ -869,6 +1645,7 @@ const tests = {
|
|
869
1645
|
...studentViewSettingsLabelComponent.tests,
|
870
1646
|
...defaultToolDropdown.tests,
|
871
1647
|
...optionsWrapperComponent.tests,
|
1648
|
+
...equationEditorFlyout.tests,
|
872
1649
|
|
873
1650
|
/**
|
874
1651
|
* Verifies the ThinkSphere cancel button functionality.
|
@@ -967,7 +1744,7 @@ const tests = {
|
|
967
1744
|
utilities.verifyElementVisibilityState(thinkSpherePage.tooltipText(), 'notExist');
|
968
1745
|
});
|
969
1746
|
},
|
970
|
-
|
1747
|
+
|
971
1748
|
/**
|
972
1749
|
* Verifies the add option functionality.
|
973
1750
|
* @param {string} list - The list to add the option to ('strategy' or other).
|
@@ -983,13 +1760,13 @@ const tests = {
|
|
983
1760
|
initialOptionCount = count;
|
984
1761
|
});
|
985
1762
|
});
|
986
|
-
|
1763
|
+
|
987
1764
|
thinkSpherePage.steps.addOption(list);
|
988
1765
|
thinkSpherePage.planStrategySection()
|
989
1766
|
.within(() => {
|
990
1767
|
thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
|
991
1768
|
thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter strategy name');
|
992
|
-
});
|
1769
|
+
});
|
993
1770
|
thinkSpherePage.steps.deleteOption(5);
|
994
1771
|
} else {
|
995
1772
|
thinkSpherePage.planSentenceStarterSection()
|
@@ -998,13 +1775,13 @@ const tests = {
|
|
998
1775
|
initialOptionCount = count;
|
999
1776
|
});
|
1000
1777
|
});
|
1001
|
-
|
1778
|
+
|
1002
1779
|
thinkSpherePage.steps.addOption(list);
|
1003
1780
|
thinkSpherePage.planSentenceStarterSection()
|
1004
1781
|
.within(() => {
|
1005
1782
|
thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
|
1006
1783
|
thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter sentence starter name');
|
1007
|
-
});
|
1784
|
+
});
|
1008
1785
|
thinkSpherePage.steps.deleteOption(10);
|
1009
1786
|
}
|
1010
1787
|
});
|
@@ -1083,7 +1860,7 @@ const tests = {
|
|
1083
1860
|
}
|
1084
1861
|
});
|
1085
1862
|
},
|
1086
|
-
|
1863
|
+
|
1087
1864
|
/**
|
1088
1865
|
* Verifies the drag handle tooltip.
|
1089
1866
|
* @param {number} NthElement - The index of the drag handle.
|
@@ -1233,17 +2010,17 @@ const tests = {
|
|
1233
2010
|
thinkSpherePage.steps.selectOption(list, 1);
|
1234
2011
|
utilities.verifyCSS(
|
1235
2012
|
utilities.getNthElement(thinkSpherePage.planStrategyCheckbox().find('svg'), 1), {
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
2013
|
+
'fill': css.color.uncheckedCheckbox,
|
2014
|
+
'width': '12px',
|
2015
|
+
'height': '12px',
|
1239
2016
|
});
|
1240
2017
|
} else {
|
1241
2018
|
thinkSpherePage.steps.selectOption(list, 1);
|
1242
2019
|
utilities.verifyCSS(
|
1243
2020
|
utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox().find('svg'), 1), {
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
2021
|
+
'fill': css.color.uncheckedCheckbox,
|
2022
|
+
'width': '12px',
|
2023
|
+
'height': '12px',
|
1247
2024
|
});
|
1248
2025
|
}
|
1249
2026
|
});
|
@@ -1298,7 +2075,7 @@ const tests = {
|
|
1298
2075
|
thinkSpherePage.steps.addOptionText(list, optionIndex, inputFieldText);
|
1299
2076
|
});
|
1300
2077
|
});
|
1301
|
-
|
2078
|
+
|
1302
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', () => {
|
1303
2080
|
utilities.getNthElement(thinkSpherePage.deleteButton(), list === 'strategy' ? 0 : 5)
|
1304
2081
|
.trigger('mouseover', { force: true });
|
@@ -1362,9 +2139,12 @@ const tests = {
|
|
1362
2139
|
it('When user clicks on \'Reset to default\' button then the sentence starter list should be reset to default', () => {
|
1363
2140
|
thinkSpherePage.planSentenceStarterListResetToDefault()
|
1364
2141
|
.click();
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
2142
|
+
thinkSpherePage.planSentenceStarterSection()
|
2143
|
+
.within(() => {
|
2144
|
+
optionList.forEach((option, index) => {
|
2145
|
+
thinkSpherePage.steps.verifyOptionsContents(index, option, 'Enter sentence starter name');
|
2146
|
+
});
|
2147
|
+
})
|
1368
2148
|
});
|
1369
2149
|
}
|
1370
2150
|
},
|
@@ -1501,7 +2281,7 @@ const tests = {
|
|
1501
2281
|
utilities.verifyElementVisibilityState(thinkSpherePage.deleteVideoButton(), 'visible');
|
1502
2282
|
});
|
1503
2283
|
});
|
1504
|
-
|
2284
|
+
|
1505
2285
|
it('CSS of edit video button and delete video button', { tags: 'css' }, () => {
|
1506
2286
|
thinkSpherePage.videoLinkComponent().within(() => {
|
1507
2287
|
utilities.verifyCSS(thinkSpherePage.editVideoButton(), {
|
@@ -1550,6 +2330,382 @@ const tests = {
|
|
1550
2330
|
cy.checkAccessibility(thinkSpherePage.singleOptionTextFieldWrapper());
|
1551
2331
|
});
|
1552
2332
|
},
|
2333
|
+
|
2334
|
+
verifyErrorMessageCSSAndA11y: () => {
|
2335
|
+
it('CSS of error message', { tags: 'css' }, () => {
|
2336
|
+
utilities.verifyCSS(commonComponents.errorMessage(), {
|
2337
|
+
'color': css.color.errorText,
|
2338
|
+
'font-size': css.fontSize.small,
|
2339
|
+
'font-weight': css.fontWeight.regular
|
2340
|
+
});
|
2341
|
+
});
|
2342
|
+
|
2343
|
+
it('Accessibility of error message', { tags: 'a11y' }, () => {
|
2344
|
+
cy.checkAccessibility(thinkSpherePage.nextGenThinkSphereCreateItemWrapper());
|
2345
|
+
});
|
2346
|
+
},
|
2347
|
+
|
2348
|
+
verifyQuestionAccordion: () => {
|
2349
|
+
it('Author should be able to expand and collapse the question accordion by clicking on the expand icon', () => {
|
2350
|
+
thinkSpherePage.filterSectionQuestionAccordion().each(($accordion) => {
|
2351
|
+
cy.wrap($accordion).find('.expansion-item-icon-wrapper').click();
|
2352
|
+
cy.wrap($accordion).should('have.class', 'Mui-expanded');
|
2353
|
+
});
|
2354
|
+
|
2355
|
+
thinkSpherePage.filterSectionQuestionAccordion().each(($accordion) => {
|
2356
|
+
cy.wrap($accordion).find('.expansion-item-icon-wrapper').click();
|
2357
|
+
cy.wrap($accordion).should('not.have.class', 'Mui-expanded');
|
2358
|
+
});
|
2359
|
+
});
|
2360
|
+
},
|
2361
|
+
|
2362
|
+
verifyCreateItemHeaderSection: () => {
|
2363
|
+
it('The page displays a unique Reference ID at the top left corner in the format "Ref ID:"', () => {
|
2364
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.referenceIdWrapper(), 'visible');
|
2365
|
+
utilities.verifyInnerText(thinkSpherePage.referenceIdWrapper().children('div').first(), 'Ref ID:\u00A0');
|
2366
|
+
const initialRefId = thinkSpherePage.referenceIdWrapper().children('div').eq(1).invoke('text');
|
2367
|
+
initialRefId.then((refId) => {
|
2368
|
+
expect(refId).to.be.a('string').and.not.be.empty;
|
2369
|
+
cy.reload();
|
2370
|
+
thinkSpherePage.referenceIdWrapper().children('div').eq(1).invoke('text').should((newRefId) => {
|
2371
|
+
expect(newRefId).to.be.a('string').and.not.be.empty;
|
2372
|
+
expect(newRefId).to.not.equal(refId);
|
2373
|
+
});
|
2374
|
+
});
|
2375
|
+
});
|
2376
|
+
|
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', () => {
|
2378
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.editBoxTextInput(), 'visible');
|
2379
|
+
thinkSpherePage.editBoxTextInput().blur();
|
2380
|
+
utilities.verifyElementVisibilityState(thinkSpherePage.editIconPencil(), 'visible');
|
2381
|
+
thinkSpherePage.editIconPencil().click();
|
2382
|
+
thinkSpherePage.editBoxTextInput().should('have.attr', 'placeholder', 'Enter title');
|
2383
|
+
thinkSpherePage.editBoxTextInput().type('Test Title');
|
2384
|
+
thinkSpherePage.editBoxTextInput().blur();
|
2385
|
+
utilities.verifyInnerText(thinkSpherePage.editBoxText(), 'Test Title');
|
2386
|
+
});
|
2387
|
+
},
|
2388
|
+
|
2389
|
+
verifyDefaultTab: () => {
|
2390
|
+
it('By default edit tab should be selected', () => {
|
2391
|
+
thinkSpherePage.editTab().should('have.class', 'Mui-selected');
|
2392
|
+
});
|
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
|
+
}
|
1553
2709
|
};
|
1554
2710
|
|
1555
2711
|
export const thinkSpherePage = {
|