itemengine-cypress-automation 1.0.381-PR-fixes-1c28a3d.0 → 1.0.381-regressionFixes10June-8dc1710.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +1 -0
- package/cypress/e2e/GradingGridView/gradingGridView.js +156 -0
- package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +2 -0
- package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +4 -0
- package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
- package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +25 -25
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +37 -36
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +37 -36
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +37 -36
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightBasic.js +26 -25
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +39 -38
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +31 -30
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +35 -34
- package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +247 -0
- package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
- package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
- package/cypress/e2e/ILC/ChartsBar/specifyCorrectAnswerSection.js +92 -0
- package/cypress/e2e/ILC/ChartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePointsLocked.js +220 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +25 -25
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +47 -46
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +25 -24
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +25 -24
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightBasic.js +25 -25
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +24 -23
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +21 -20
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +48 -46
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +249 -0
- package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
- package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
- package/cypress/e2e/ILC/ChartsLine/specifyCorrectAnswerSection.js +94 -0
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
- package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
- package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +3 -3
- package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
- package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
- package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
- package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +63 -4
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +116 -7
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +3 -3
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettingsForGroupedLayout.js +3 -0
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
- package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +1 -3
- package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +2 -2
- package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +3 -3
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +7 -7
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +11 -11
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +3 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +3 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +4 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +4 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +4 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
- package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +3 -3
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
- package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
- package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
- package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
- package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
- package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
- package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
- package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
- package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
- package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +210 -0
- package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +2 -2
- package/cypress/e2e/ILC/GridFill/headerSection.js +4 -4
- 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/additionalSettingsBasic.js +1 -0
- package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +212 -0
- package/cypress/e2e/ILC/ImageHighlight/customiseHighlightStyle.js +29 -0
- package/cypress/e2e/ILC/ImageHighlight/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/ImageHighlight/headerSection.js +3 -3
- 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 +38 -3
- 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/MultipleSelection/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/MultipleSelection/headerSection.js +3 -3
- package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabBasicSection.js +2 -2
- package/cypress/e2e/ILC/MultipleSelectionGridNew/headerSection.js +3 -3
- package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +100 -69
- package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +1 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
- package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
- package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
- package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
- package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
- package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
- package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
- package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
- package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
- package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +186 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +35 -51
- package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
- package/cypress/e2e/ILC/SingleSelection/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/SingleSelection/headerSection.js +2 -2
- package/cypress/e2e/ILC/SingleSelectionGridNew/editTabBasicSection.js +2 -2
- package/cypress/e2e/ILC/SingleSelectionGridNew/headerSection.js +3 -3
- 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/editTabBasicSection.js +2 -2
- package/cypress/e2e/ILC/TextSelection/headerSection.js +3 -3
- package/cypress/e2e/ILC/TextSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -0
- package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +1 -1
- package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +1 -1
- package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
- package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +2 -0
- package/cypress/e2e/ILC/ThinkSphere/planPhase.js +45 -5
- package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +8 -8
- 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 +3 -3
- package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
- package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
- package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
- package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
- package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
- package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
- package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
- package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +27 -28
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +24 -24
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +39 -37
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsBasic.js +22 -23
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +25 -24
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +31 -31
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/toleranceThresholdScoring.js +18 -19
- package/cypress/e2e/ILC/chartsDotsPlot/specifyCorrectAnswerSection.js +96 -0
- package/cypress/e2e/Sessions/fetchResponses.js +3 -3
- package/cypress/e2e/Sessions/saveResponseScores.js +2 -2
- package/cypress/fixtures/thinkSphereWhiteboardTools.js +66 -0
- package/cypress/pages/audioPlayerPage.js +47 -22
- package/cypress/pages/brainingCampManipulativePage.js +1 -1
- package/cypress/pages/chartsBarPage.js +45 -0
- package/cypress/pages/chartsDotPlotPage.js +25 -0
- package/cypress/pages/chartsLinePage.js +28 -3
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -1
- package/cypress/pages/components/chartsCommonComponent.js +6 -2
- package/cypress/pages/components/ckEditorEquationEditorComponent.js +1 -0
- package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
- package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
- package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
- package/cypress/pages/components/colorPopupComponent.js +6 -0
- package/cypress/pages/components/createQuestionBasePage.js +19 -6
- package/cypress/pages/components/draggableOptionsSectionComponent.js +2 -0
- package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +31 -3
- package/cypress/pages/components/gridQuestionCommonComponent.js +55 -2
- package/cypress/pages/components/imageCanvasComponent.js +11 -5
- package/cypress/pages/components/questionInstructionsComponent.js +2 -0
- package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
- package/cypress/pages/components/specifyRowsAndColumnsComponent.js +16 -0
- 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 +10 -1
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +3 -8
- package/cypress/pages/gradingGridViewPage.js +64 -0
- package/cypress/pages/graphingPage.js +27 -8
- package/cypress/pages/gridFillPage.js +27 -9
- 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 +29 -10
- 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/textSelectionPage.js +2 -2
- package/cypress/pages/thinkSpherePage.js +928 -87
- package/cypress/pages/uploadResponsePage.js +17 -1
- package/cypress/pages/videoResponsePage.js +3 -0
- package/cypress/support/commands.js +9 -0
- package/cypress/support/helpers/createItem.js +22 -3
- package/cypress/support/helpers/utilities.js +14 -1
- package/package.json +2 -2
- /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/checkAnswerFunctionalityForAllViews.js +0 -0
- /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/editQuestion.smoke.js +0 -0
@@ -31,7 +31,7 @@ const selectors = {
|
|
31
31
|
...editCategoryFlyout,
|
32
32
|
...createCustomCategoryFlyout,
|
33
33
|
...createQuestionBasePage,
|
34
|
-
|
34
|
+
|
35
35
|
editQuestionPencil: () => cy.get('[class*="Widgetstyles__HeaderContainer"] button.icon-pencil'),
|
36
36
|
widgetHeaderQuestionTitle: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="Widgetstyles__QuestionTypeText"]'),
|
37
37
|
imageUploadSection: () => cy.get('[class*="TabsComponentstyles__ImageUploadComponentWrapper"]'),
|
@@ -80,13 +80,13 @@ const selectors = {
|
|
80
80
|
planStrategyListResetToDefault: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
|
81
81
|
planStrategyAddItemButton: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
|
82
82
|
planStrategyCheckbox: () => cy.get('[class*="Planstyles__StrategiesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
|
83
|
-
videoLinkComponent: () => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'),
|
83
|
+
videoLinkComponent: (nthElement = 0) => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'), nthElement),
|
84
84
|
uploadVideoLinkButton: () => cy.get('[class*="ListOptionsComponentstyles__UploadVideoTextWrapper"]'),
|
85
85
|
planSentenceStarterSection: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"]'),
|
86
86
|
planSentenceStarterListHeader: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__HeadingTextWrapper"]'),
|
87
87
|
planSentenceStarterListResetToDefault: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
|
88
88
|
planSentenceStarterAddItemButton: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
|
89
|
-
planSentenceStarterCheckbox
|
89
|
+
planSentenceStarterCheckbox: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
|
90
90
|
solvePhaseAccordian: () => cy.get('[class*="Planstyles__SolveAccordianWrapper"] [class~="MuiAccordionSummary-root"] [role="button"]'),
|
91
91
|
solvePhaseAccordianLabel: () => cy.get('[class*="Solvestyles__AccordionLabel"]'),
|
92
92
|
inputTypeVideoFile: () => cy.get('[class*="Planstyles__StrategiesWrapper"] input[type="file"]'),
|
@@ -98,7 +98,7 @@ const selectors = {
|
|
98
98
|
editVideoButton: () => cy.get('[aria-label*="Change video"]'),
|
99
99
|
deleteVideoButton: () => cy.get('[aria-label*="Delete video"]'),
|
100
100
|
listInputField: () => cy.get('.option-component textarea[placeholder]'),
|
101
|
-
deleteButton: () => cy.get('button[aria-label*="Delete"]'),
|
101
|
+
deleteButton: () => cy.get('button[aria-label*="Delete"].ngie-icon-btn-cls'),
|
102
102
|
optionNumeration: () => cy.get('[class*="MuiInputAdornment-positionStart"]'),
|
103
103
|
iconPencil: () => cy.get('div[class*="icon-pencil"]'),
|
104
104
|
iconXCircle: () => cy.get('div[class*="icon-x-circle"]'),
|
@@ -110,8 +110,8 @@ const selectors = {
|
|
110
110
|
thinkSphereMathQuestionHeaderDeleteIcon: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="icon-Delete"]'),
|
111
111
|
addCheckMathQuestionButton: () => cy.get('.ngie-btn-typography').contains(`Add 'Check your math' question`),
|
112
112
|
firstAvailableItemLink: () => utilities.getNthElement(cy.get('.browse-item-styled-link'), 0),
|
113
|
-
saveButton: () => cy.get('.ngie-btn-typography').contains('save',{matchCase: false}),
|
114
|
-
cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel',{matchCase: false}),
|
113
|
+
saveButton: () => cy.get('.ngie-btn-typography').contains('save', { matchCase: false }),
|
114
|
+
cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel', { matchCase: false }),
|
115
115
|
AddCheckMathQuestionHeader: () => cy.get('.browse-title-wrapper').contains(`Add 'Check your math' question`),
|
116
116
|
singleOptionTextFieldWrapper: () => cy.get('[class*="SingleOptionstyle__TextFieldWrapper"]'),
|
117
117
|
customizeStampComponent: () => cy.get('[class*="CustomizeStampstyles__CustomizeStampWrapper"]'),
|
@@ -150,9 +150,9 @@ const selectors = {
|
|
150
150
|
popupTitle: () => cy.get('[class*="dialog-title-wrapper"]'),
|
151
151
|
strategyNameLabel: () => cy.get('[class*="ThinkSpherePreviewstyles__StrategyNameTextWrapper"]'),
|
152
152
|
strategyNameInputField: () => cy.get('[class*="new-strategy-name-field"]'),
|
153
|
-
addStrategyPopupCancelButton: () =>
|
153
|
+
addStrategyPopupCancelButton: () =>
|
154
154
|
cy.get('.dialog-content').contains('Cancel'),
|
155
|
-
addStrategyPopupSaveButton: () =>
|
155
|
+
addStrategyPopupSaveButton: () =>
|
156
156
|
cy.get('.dialog-content').contains('Save'),
|
157
157
|
// preview tab plan section selection
|
158
158
|
questionInstructionPreviewTexWrapper: () => cy.get('.question-instruction.question-text-wrapper'),
|
@@ -160,9 +160,9 @@ const selectors = {
|
|
160
160
|
questionInstructionPreviewImageExpandButton: () => cy.get('[class*="ThinkSpherePreviewstyles__ExpandImageIconWrapper"]'),
|
161
161
|
questionInstructionImagePopup: () => cy.get('[class*="QuestionTextstyle__ImagePopupDiv"]'),
|
162
162
|
closeExpandImagePopupButton: () => cy.get('.close-popup-btn'),
|
163
|
-
PlanningPreviewWrapper
|
163
|
+
PlanningPreviewWrapper: () => cy.get('[class*="PlanningPreviewstyles__PlanningPreviewWrapper"]'),
|
164
164
|
planningPreviewHeading: () => cy.get('[class*="PlanningPreviewstyles__HeadingWrapper"]'),
|
165
|
-
planningWriteWrapper
|
165
|
+
planningWriteWrapper: () => cy.get('[class*="PlanningPreviewstyles__WriteWrapper"]'),
|
166
166
|
problemAskingWrapper: () => cy.get('[class*="PlanningPreviewstyles__ProblemAskingWrapper"]'),
|
167
167
|
contentEditableDiv: () => cy.get('[class*="PlanningPreviewstyles__ContentEditableDiv"]'),
|
168
168
|
micIconWrapper: () => cy.get('[class*="PlanningPreviewstyles__MicIconWrapper"]'),
|
@@ -212,6 +212,45 @@ const selectors = {
|
|
212
212
|
cardWrapper: () => cy.get('.card-wrapper'),
|
213
213
|
cardLabel: () => cy.get('.widget-card-label'),
|
214
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'),
|
215
254
|
};
|
216
255
|
|
217
256
|
const steps = {
|
@@ -365,20 +404,20 @@ const steps = {
|
|
365
404
|
*/
|
366
405
|
uploadVideoFile: (file) => {
|
367
406
|
const fileName = file.split('/').pop(); // Extracts only 'sample.mp4'
|
368
|
-
|
407
|
+
|
369
408
|
cy.fixture(file, 'binary') // Read the file as binary
|
370
409
|
.then(Cypress.Blob.binaryStringToBlob)
|
371
410
|
.then((blob) => {
|
372
411
|
const fileObj = new File([blob], fileName, { type: 'video/mp4' });
|
373
412
|
const dataTransfer = new DataTransfer();
|
374
413
|
dataTransfer.items.add(fileObj);
|
375
|
-
|
414
|
+
|
376
415
|
thinkSpherePage.inputTypeVideoFile().then(($input) => {
|
377
416
|
$input[0].files = dataTransfer.files;
|
378
417
|
cy.wrap($input).trigger('change', { force: true });
|
379
418
|
});
|
380
419
|
});
|
381
|
-
|
420
|
+
|
382
421
|
cy.wait(4000);
|
383
422
|
},
|
384
423
|
|
@@ -454,13 +493,13 @@ const steps = {
|
|
454
493
|
},
|
455
494
|
expandSolvePhaseAccordion: () => {
|
456
495
|
thinkSpherePage.solvePhaseAccordion()
|
457
|
-
|
458
|
-
|
496
|
+
.click()
|
497
|
+
.should('have.attr', 'aria-expanded', 'true');
|
459
498
|
},
|
460
499
|
expandCustomizeToolsAndControls: () => {
|
461
500
|
thinkSpherePage.customizeToolsAndControls()
|
462
|
-
|
463
|
-
|
501
|
+
.click()
|
502
|
+
.should('have.attr', 'aria-expanded', 'true');
|
464
503
|
},
|
465
504
|
/**
|
466
505
|
* Verifies the tools and controls options.
|
@@ -477,9 +516,9 @@ const steps = {
|
|
477
516
|
*/
|
478
517
|
selectOptionFromToolsAndControls: (option) => {
|
479
518
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
480
|
-
|
519
|
+
.click();
|
481
520
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
482
|
-
|
521
|
+
.should('have.attr', 'data-aria-pressed', 'true');
|
483
522
|
},
|
484
523
|
/**
|
485
524
|
* Deselects an option from tools and controls.
|
@@ -487,9 +526,9 @@ const steps = {
|
|
487
526
|
*/
|
488
527
|
deselectOptionFromToolsAndControls: (option) => {
|
489
528
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
490
|
-
|
529
|
+
.click();
|
491
530
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
492
|
-
|
531
|
+
.should('have.attr', 'data-aria-pressed', 'false');
|
493
532
|
},
|
494
533
|
/**
|
495
534
|
* Verifies if an option is selected.
|
@@ -497,7 +536,7 @@ const steps = {
|
|
497
536
|
*/
|
498
537
|
verifyOptionIsSelected: (option) => {
|
499
538
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
500
|
-
|
539
|
+
.should('have.attr', 'data-aria-pressed', 'true');
|
501
540
|
},
|
502
541
|
/**
|
503
542
|
* Verifies if an option is not selected.
|
@@ -505,7 +544,7 @@ const steps = {
|
|
505
544
|
*/
|
506
545
|
verifyOptionIsNotSelected: (option) => {
|
507
546
|
thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
|
508
|
-
|
547
|
+
.should('have.attr', 'data-aria-pressed', 'false');
|
509
548
|
},
|
510
549
|
|
511
550
|
/**
|
@@ -538,7 +577,7 @@ const steps = {
|
|
538
577
|
utilities.getNthElement(thinkSpherePage.deleteButton(), index)
|
539
578
|
.click();
|
540
579
|
},
|
541
|
-
|
580
|
+
|
542
581
|
/**
|
543
582
|
* Verifies the delete option button disabled state.
|
544
583
|
* @param {string} list - The list to verify ('strategy' or other).
|
@@ -620,14 +659,14 @@ const steps = {
|
|
620
659
|
.within(() => {
|
621
660
|
utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
|
622
661
|
.clear()
|
623
|
-
.type(text);
|
662
|
+
.type(text, { delay: 500 });
|
624
663
|
});
|
625
664
|
} else {
|
626
665
|
thinkSpherePage.planSentenceStarterSection()
|
627
666
|
.within(() => {
|
628
667
|
utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
|
629
668
|
.clear()
|
630
|
-
.type(text);
|
669
|
+
.type(text, { delay: 500 });
|
631
670
|
});
|
632
671
|
}
|
633
672
|
},
|
@@ -754,9 +793,9 @@ const steps = {
|
|
754
793
|
},
|
755
794
|
|
756
795
|
verifyOptionAlignmentIsSelected: (direction) => {
|
757
|
-
if(direction === 'topLeft') {
|
796
|
+
if (direction === 'topLeft') {
|
758
797
|
thinkSpherePage.whiteBoardCanvas()
|
759
|
-
|
798
|
+
.should('not.have.css', 'justify-content', 'start');
|
760
799
|
} else {
|
761
800
|
thinkSpherePage.whiteBoardCanvas()
|
762
801
|
.should('have.css', 'justify-content', (direction === 'center' || direction === 'flex-end') ? 'normal' : direction);
|
@@ -766,7 +805,7 @@ const steps = {
|
|
766
805
|
}
|
767
806
|
}
|
768
807
|
},
|
769
|
-
|
808
|
+
|
770
809
|
clickOnImageRadioButton: () => {
|
771
810
|
thinkSpherePage.imageRadioButton()
|
772
811
|
.click();
|
@@ -775,10 +814,11 @@ const steps = {
|
|
775
814
|
clickOnEditQuestionIcon: () => {
|
776
815
|
utilities.getNthElement(thinkSpherePage.editQuestionPencil(), 0)
|
777
816
|
.click();
|
817
|
+
cy.wait(1000);
|
778
818
|
},
|
779
819
|
|
780
820
|
clickOnQuestionInstructionExpandImageButton: () => {
|
781
|
-
thinkSpherePage.questionInstructionPreviewImageExpandButton()
|
821
|
+
utilities.getNthElement(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 0)
|
782
822
|
.click();
|
783
823
|
},
|
784
824
|
|
@@ -937,20 +977,20 @@ const steps = {
|
|
937
977
|
|
938
978
|
verifyCategoryCharactersAndUnSelectedState: (arrayOfSymbolsAriaLabel) => {
|
939
979
|
thinkSpherePage.categoryCharacters()
|
940
|
-
|
941
|
-
|
942
|
-
editCategoryFlyout.categoryCharacters()
|
943
|
-
.eq(index)
|
944
|
-
.should('not.have.class', 'Mui-selected')
|
945
|
-
.invoke('attr', 'aria-label')
|
946
|
-
.then((ariaLabel) => {
|
947
|
-
const tooltipText = ariaLabel.split(' ').slice(0, -1).join(' ');
|
980
|
+
.then(($symbols) => {
|
981
|
+
for (let index = 10; index < $symbols.length - 1; index++) {
|
948
982
|
editCategoryFlyout.categoryCharacters()
|
949
983
|
.eq(index)
|
950
|
-
.
|
951
|
-
|
952
|
-
|
953
|
-
|
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
|
+
});
|
954
994
|
},
|
955
995
|
|
956
996
|
verifyCategoryCharactersAndSelectedState: (arrayOfSymbolsAriaLabel) => {
|
@@ -958,15 +998,15 @@ const steps = {
|
|
958
998
|
.then(($symbols) => {
|
959
999
|
for (let index = 0; index < arrayOfSymbolsAriaLabel.length - 1; index++) {
|
960
1000
|
editCategoryFlyout.categoryCharacters()
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
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
|
+
});
|
970
1010
|
}
|
971
1011
|
});
|
972
1012
|
},
|
@@ -978,12 +1018,12 @@ const steps = {
|
|
978
1018
|
|
979
1019
|
verifyDropdownOptions: (dropDownListArray) => {
|
980
1020
|
thinkSpherePage.categoriesDropDownMenuItem().should('have.length', dropDownListArray.length).each(($item) => {
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
986
|
-
|
1021
|
+
cy.wrap($item)
|
1022
|
+
.invoke('text')
|
1023
|
+
.then((text) => {
|
1024
|
+
const trimmedText = text.trim();
|
1025
|
+
expect(dropDownListArray).to.include(trimmedText);
|
1026
|
+
});
|
987
1027
|
});
|
988
1028
|
},
|
989
1029
|
|
@@ -993,22 +1033,22 @@ const steps = {
|
|
993
1033
|
|
994
1034
|
clickOnQuestionTypesAccordion: () => {
|
995
1035
|
thinkSpherePage.filterSectionQuestionTypesAccordion()
|
996
|
-
|
1036
|
+
.click()
|
997
1037
|
},
|
998
1038
|
|
999
1039
|
typeInSearchBar: (input) => {
|
1000
1040
|
thinkSpherePage.searchBar()
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1041
|
+
.clear()
|
1042
|
+
.type(input)
|
1043
|
+
.should('have.value', input);
|
1004
1044
|
},
|
1005
1045
|
|
1006
1046
|
searchInSearchBar: (input) => {
|
1007
1047
|
thinkSpherePage.searchBar()
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1048
|
+
.clear()
|
1049
|
+
.type(input)
|
1050
|
+
.should('have.value', input)
|
1051
|
+
.type('{enter}');
|
1012
1052
|
},
|
1013
1053
|
|
1014
1054
|
clickOnSolvePhaseAccordionIcon: (element) => {
|
@@ -1062,7 +1102,7 @@ const steps = {
|
|
1062
1102
|
|
1063
1103
|
verifyTextIsNotEmpty: (element) => {
|
1064
1104
|
element.invoke('text')
|
1065
|
-
|
1105
|
+
.should('not.be.empty');
|
1066
1106
|
},
|
1067
1107
|
|
1068
1108
|
verifyLength: (element, length) => {
|
@@ -1104,6 +1144,492 @@ const steps = {
|
|
1104
1144
|
expect(scrollWidth).to.be.greaterThan(clientWidth);
|
1105
1145
|
});
|
1106
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
|
+
}
|
1107
1633
|
};
|
1108
1634
|
|
1109
1635
|
const tests = {
|
@@ -1218,7 +1744,7 @@ const tests = {
|
|
1218
1744
|
utilities.verifyElementVisibilityState(thinkSpherePage.tooltipText(), 'notExist');
|
1219
1745
|
});
|
1220
1746
|
},
|
1221
|
-
|
1747
|
+
|
1222
1748
|
/**
|
1223
1749
|
* Verifies the add option functionality.
|
1224
1750
|
* @param {string} list - The list to add the option to ('strategy' or other).
|
@@ -1234,13 +1760,13 @@ const tests = {
|
|
1234
1760
|
initialOptionCount = count;
|
1235
1761
|
});
|
1236
1762
|
});
|
1237
|
-
|
1763
|
+
|
1238
1764
|
thinkSpherePage.steps.addOption(list);
|
1239
1765
|
thinkSpherePage.planStrategySection()
|
1240
1766
|
.within(() => {
|
1241
1767
|
thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
|
1242
1768
|
thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter strategy name');
|
1243
|
-
});
|
1769
|
+
});
|
1244
1770
|
thinkSpherePage.steps.deleteOption(5);
|
1245
1771
|
} else {
|
1246
1772
|
thinkSpherePage.planSentenceStarterSection()
|
@@ -1249,13 +1775,13 @@ const tests = {
|
|
1249
1775
|
initialOptionCount = count;
|
1250
1776
|
});
|
1251
1777
|
});
|
1252
|
-
|
1778
|
+
|
1253
1779
|
thinkSpherePage.steps.addOption(list);
|
1254
1780
|
thinkSpherePage.planSentenceStarterSection()
|
1255
1781
|
.within(() => {
|
1256
1782
|
thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
|
1257
1783
|
thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter sentence starter name');
|
1258
|
-
});
|
1784
|
+
});
|
1259
1785
|
thinkSpherePage.steps.deleteOption(10);
|
1260
1786
|
}
|
1261
1787
|
});
|
@@ -1334,7 +1860,7 @@ const tests = {
|
|
1334
1860
|
}
|
1335
1861
|
});
|
1336
1862
|
},
|
1337
|
-
|
1863
|
+
|
1338
1864
|
/**
|
1339
1865
|
* Verifies the drag handle tooltip.
|
1340
1866
|
* @param {number} NthElement - The index of the drag handle.
|
@@ -1484,17 +2010,17 @@ const tests = {
|
|
1484
2010
|
thinkSpherePage.steps.selectOption(list, 1);
|
1485
2011
|
utilities.verifyCSS(
|
1486
2012
|
utilities.getNthElement(thinkSpherePage.planStrategyCheckbox().find('svg'), 1), {
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
2013
|
+
'fill': css.color.uncheckedCheckbox,
|
2014
|
+
'width': '12px',
|
2015
|
+
'height': '12px',
|
1490
2016
|
});
|
1491
2017
|
} else {
|
1492
2018
|
thinkSpherePage.steps.selectOption(list, 1);
|
1493
2019
|
utilities.verifyCSS(
|
1494
2020
|
utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox().find('svg'), 1), {
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
2021
|
+
'fill': css.color.uncheckedCheckbox,
|
2022
|
+
'width': '12px',
|
2023
|
+
'height': '12px',
|
1498
2024
|
});
|
1499
2025
|
}
|
1500
2026
|
});
|
@@ -1549,7 +2075,7 @@ const tests = {
|
|
1549
2075
|
thinkSpherePage.steps.addOptionText(list, optionIndex, inputFieldText);
|
1550
2076
|
});
|
1551
2077
|
});
|
1552
|
-
|
2078
|
+
|
1553
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', () => {
|
1554
2080
|
utilities.getNthElement(thinkSpherePage.deleteButton(), list === 'strategy' ? 0 : 5)
|
1555
2081
|
.trigger('mouseover', { force: true });
|
@@ -1614,11 +2140,11 @@ const tests = {
|
|
1614
2140
|
thinkSpherePage.planSentenceStarterListResetToDefault()
|
1615
2141
|
.click();
|
1616
2142
|
thinkSpherePage.planSentenceStarterSection()
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
2143
|
+
.within(() => {
|
2144
|
+
optionList.forEach((option, index) => {
|
2145
|
+
thinkSpherePage.steps.verifyOptionsContents(index, option, 'Enter sentence starter name');
|
2146
|
+
});
|
2147
|
+
})
|
1622
2148
|
});
|
1623
2149
|
}
|
1624
2150
|
},
|
@@ -1755,7 +2281,7 @@ const tests = {
|
|
1755
2281
|
utilities.verifyElementVisibilityState(thinkSpherePage.deleteVideoButton(), 'visible');
|
1756
2282
|
});
|
1757
2283
|
});
|
1758
|
-
|
2284
|
+
|
1759
2285
|
it('CSS of edit video button and delete video button', { tags: 'css' }, () => {
|
1760
2286
|
thinkSpherePage.videoLinkComponent().within(() => {
|
1761
2287
|
utilities.verifyCSS(thinkSpherePage.editVideoButton(), {
|
@@ -1848,7 +2374,7 @@ const tests = {
|
|
1848
2374
|
});
|
1849
2375
|
});
|
1850
2376
|
|
1851
|
-
it('Edit text box and edit icon pencil should exist, and on clicking the edit input field with placeholder \'Enter title\ should allow the user to add title'
|
2377
|
+
it('Edit text box and edit icon pencil should exist, and on clicking the edit input field with placeholder \'Enter title\ should allow the user to add title', () => {
|
1852
2378
|
utilities.verifyElementVisibilityState(thinkSpherePage.editBoxTextInput(), 'visible');
|
1853
2379
|
thinkSpherePage.editBoxTextInput().blur();
|
1854
2380
|
utilities.verifyElementVisibilityState(thinkSpherePage.editIconPencil(), 'visible');
|
@@ -1856,7 +2382,7 @@ const tests = {
|
|
1856
2382
|
thinkSpherePage.editBoxTextInput().should('have.attr', 'placeholder', 'Enter title');
|
1857
2383
|
thinkSpherePage.editBoxTextInput().type('Test Title');
|
1858
2384
|
thinkSpherePage.editBoxTextInput().blur();
|
1859
|
-
utilities.verifyInnerText(thinkSpherePage.editBoxText(),'Test Title');
|
2385
|
+
utilities.verifyInnerText(thinkSpherePage.editBoxText(), 'Test Title');
|
1860
2386
|
});
|
1861
2387
|
},
|
1862
2388
|
|
@@ -1865,6 +2391,321 @@ const tests = {
|
|
1865
2391
|
thinkSpherePage.editTab().should('have.class', 'Mui-selected');
|
1866
2392
|
});
|
1867
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
|
+
}
|
1868
2709
|
};
|
1869
2710
|
|
1870
2711
|
export const thinkSpherePage = {
|