itemengine-cypress-automation 1.0.189-e2e-execution-crash-83cdbd4.0 → 1.0.189
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/AudioPlayerNew/allSupportedFileTypes.js +79 -0
- package/cypress/e2e/ILC/AudioPlayerNew/barAudioPlayerStyle.js +647 -0
- package/cypress/e2e/ILC/AudioPlayerNew/compactAudioPlayerStyle.js +429 -0
- package/cypress/e2e/ILC/AudioPlayerNew/customizePlayerLayoutSettings.js +596 -0
- package/cypress/e2e/ILC/AudioPlayerNew/previewContents.smoke.js +162 -0
- package/cypress/e2e/ILC/AudioPlayerNew/standardAudioPlayerStyle.js +792 -0
- package/cypress/e2e/ILC/AudioPlayerNew/studentViewSettings.js +253 -0
- package/cypress/e2e/ILC/AudioPlayerNew/uploadAndAddAudioFile.js +313 -0
- package/cypress/e2e/ILC/AudioResponseNew/additionalSettingsBasic.js +1 -22
- package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +1 -1
- package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +1 -1
- package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.smoke.js +1 -1
- package/cypress/e2e/ILC/AudioResponseNew/studentViewSettings.js +2 -11
- package/cypress/e2e/ILC/ChartsBar/previewContentsForAllViews.smoke.js +359 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +1 -1
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +6 -8
- package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +417 -28
- package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +1 -1
- package/cypress/e2e/ILC/FeedbackScaleNew/headerSection.js +29 -1
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +1 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +4 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +5 -5
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +3 -4
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +1 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +2 -2
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +2 -2
- package/cypress/e2e/ILC/Graphing/addBackgroundShapesSection.js +2 -2
- package/cypress/e2e/ILC/Graphing/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/GridFill/checkAnswerFunctionalityForAllViews.smoke.js +3 -2
- package/cypress/e2e/ILC/GridFill/gridLayoutContents.js +11 -3
- package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +3 -3
- package/cypress/e2e/ILC/GridFill/scoring/allOrNothingScoringCellShadeCount.js +2 -2
- package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +143 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountPartialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +132 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountPartialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +143 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountPartialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +144 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +143 -0
- package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +131 -0
- package/cypress/e2e/ILC/GridFill/scoring/matchExactAndCellShadeCountCombinedScoring.js +87 -0
- package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsCellShadeCountBasics.js +446 -0
- package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +1 -1
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +194 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +195 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +274 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingPenaltyScoring.js +48 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +144 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +252 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsBasic.js +102 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +256 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +253 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +308 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +225 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +151 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +196 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +227 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/additionalSettings.js +91 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +230 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/checkAnswerFunctionalityForAllViews.smoke.js +124 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +221 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/editTabScoring.js +203 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/manuallyAndNonScoredEditTab.js +71 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/minimumScoringPenaltyPointsAndRoundingDropdown.js +197 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +201 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +115 -0
- package/cypress/e2e/ILC/ListOrderingDropdown/studentViewSettings.js +183 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +216 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +214 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +273 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingPenaltyScoring.js +52 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/manuallyAndNonScored.js +128 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +279 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsBasic.js +109 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +278 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +278 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +335 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +250 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsBasic.js +161 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +216 -0
- package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +252 -0
- package/cypress/e2e/ILC/ListOrderingNew/additionalSettings.js +118 -0
- package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +243 -0
- package/cypress/e2e/ILC/ListOrderingNew/checkAnswerFunctionalityForAllViews.smoke.js +128 -0
- package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +155 -0
- package/cypress/e2e/ILC/ListOrderingNew/editTabScoring.js +195 -0
- package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +78 -0
- package/cypress/e2e/ILC/ListOrderingNew/manuallyAndNonScoredEditTab.js +69 -0
- package/cypress/e2e/ILC/ListOrderingNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +194 -0
- package/cypress/e2e/ILC/ListOrderingNew/previewContentsForAllViews.smoke.js +176 -0
- package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +112 -0
- package/cypress/e2e/ILC/ListOrderingNew/studentViewSettings.js +244 -0
- package/cypress/e2e/ILC/Matching/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +1 -0
- package/cypress/e2e/ILC/MultipleSelectionGridNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/NumberLine/LayoutSection.js +209 -0
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +1 -1
- package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +4 -4
- package/cypress/e2e/ILC/NumberLine/Scoring/manualAndNonScoredScoring.js +1 -1
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsBasic.js +1 -1
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithAlternatePointsGreaterThanCorrectPoints.js +1 -1
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternatePoints.js +1 -1
- package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeigtsWithCorrectPointsEqualToAlternatePoints.js +1 -1
- package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +58 -2
- package/cypress/e2e/ILC/NumberLine/checkAnswerFunctionalityForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/NumberLine/editTabScoringSection.js +1 -1
- package/cypress/e2e/ILC/NumberLine/gradingViewAndCorrectAnswerView.smoke.js +2 -2
- package/cypress/e2e/ILC/NumberLine/headerSection.js +1 -1
- package/cypress/e2e/ILC/NumberLine/lineSettingsSection.js +33 -0
- package/cypress/e2e/ILC/NumberLine/numberLineSection.js +50 -0
- package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/NumberLine/specifyCorrectAnswerSection.js +1 -1
- package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +2 -2
- package/cypress/e2e/ILC/NumberLine/toolSettings.js +2 -1
- package/cypress/e2e/ILC/NumberLine/toolsAndControls.js +1 -1
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +696 -0
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +173 -0
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/layoutSection.js +211 -0
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/numberLineSection.js +75 -0
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/previewTabContentsForAllViews.smoke.js +204 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +229 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +229 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +229 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/manualAndNonScoredScoring.js +169 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +274 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsBasic.js +433 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +274 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +274 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +249 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsBasic.js +135 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +210 -0
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +248 -0
- package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +115 -0
- package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +288 -0
- package/cypress/e2e/ILC/NumberLineLabel/checkAnswerFunctionalityForAllViews.smoke.js +153 -0
- package/cypress/e2e/ILC/NumberLineLabel/editTabBasicSection.js +326 -0
- package/cypress/e2e/ILC/NumberLineLabel/editTabScoring.js +234 -0
- package/cypress/e2e/ILC/NumberLineLabel/gradingViewAndCorrectAnswerView.smoke.js +164 -0
- package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +80 -0
- package/cypress/e2e/ILC/NumberLineLabel/layoutSection.js +204 -0
- package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +79 -0
- package/cypress/e2e/ILC/NumberLineLabel/minimumScoringPenaltyPointsAndRoundingDropdown.js +85 -0
- package/cypress/e2e/ILC/NumberLineLabel/numberLineSection.js +51 -0
- package/cypress/e2e/ILC/NumberLineLabel/previewContentsForAllViews.smoke.js +120 -0
- package/cypress/e2e/ILC/NumberLineLabel/specifyCorrectAnswerSection.js +74 -0
- package/cypress/e2e/ILC/NumberLineLabel/studentViewSettings.js +183 -0
- package/cypress/e2e/ILC/NumberLineLabel/toolSettings.js +76 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +292 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/checkAnswerFunctionalityForAllViews.smoke.js +155 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +166 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/layoutSection.js +360 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/numberLineSection.js +80 -0
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/previewContentsForAllViews.smoke.js +111 -0
- package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +49 -1
- package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/SingleSelectionGridNew/studentViewSettings.js +1 -1
- package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +2 -2
- package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -1
- package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -1
- package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -1
- package/cypress/e2e/ILC/TextSelection/Scoring/basicScoringForAllTextSelectionTypes.smoke.js +0 -1
- package/cypress/e2e/ILC/TextSelection/additionalSettings.js +125 -0
- package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +0 -1
- package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/TextSelection/editTabScoringSection.js +5 -4
- package/cypress/e2e/ILC/TextSelection/headerSection.js +73 -0
- package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +6 -7
- package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +179 -0
- package/cypress/e2e/ILC/TextSelection/specifyCorrectAnswerSection.js +89 -0
- package/cypress/e2e/ILC/TextSelection/studentViewSettings.js +436 -0
- package/cypress/e2e/ILC/TextSelection/styleAndLayoutCustomizationAccordion.js +277 -0
- package/cypress/e2e/ILC/TextSelection/textSelectionModesInPreviewTab.js +222 -0
- package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyCorrectAnswerSection.js +260 -0
- package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +380 -0
- package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +5 -5
- package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +3 -3
- package/cypress/e2e/ILC/VideoResponseNew/additionalSettingsBasic.js +77 -0
- package/cypress/e2e/ILC/VideoResponseNew/customizePlaybackControls.js +313 -0
- package/cypress/e2e/ILC/VideoResponseNew/editAndPreviewTabScoringSection.js +99 -0
- package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +171 -0
- package/cypress/e2e/ILC/VideoResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +179 -0
- package/cypress/e2e/ILC/VideoResponseNew/headerSection.js +79 -0
- package/cypress/e2e/ILC/VideoResponseNew/previewContentsForAllViews.smoke.js +201 -0
- package/cypress/e2e/ILC/VideoResponseNew/standardRecorderStyle.js +567 -0
- package/cypress/e2e/ILC/VideoResponseNew/studentViewSettings.js +194 -0
- package/cypress/fixtures/constants.js +1 -1
- package/cypress/fixtures/drawingToolbarOptionsAdditionalOptionsAndSpecialAndMathCharacters.js +1 -1
- package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +20 -20
- package/cypress/fixtures/theme/ilc.json +22 -18
- package/cypress/pages/audioPlayerPage.js +668 -446
- package/cypress/pages/audioResponsePage.js +8 -80
- package/cypress/pages/brainingCampManipulativePage.js +1 -1
- package/cypress/pages/chartsBarPage.js +231 -0
- package/cypress/pages/chartsDotPlotPage.js +8 -0
- package/cypress/pages/chartsLinePage.js +42 -0
- package/cypress/pages/components/allowTeachersToDownloadStudentResponseComponent.js +58 -0
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +13 -23
- package/cypress/pages/components/autoScoredStudentViewSettings.js +6 -6
- package/cypress/pages/components/barAndLineChartComponent.js +120 -0
- package/cypress/pages/components/chartsCommonComponent.js +105 -0
- package/cypress/pages/components/commonComponents.js +1 -0
- package/cypress/pages/components/draggableOptionContainer.js +2 -1
- package/cypress/pages/components/equationEditorFlyout.js +3 -2
- package/cypress/pages/components/essayResponseCommonComponents.js +8 -2
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +1 -0
- package/cypress/pages/components/imageCanvasComponent.js +2 -1
- package/cypress/pages/components/index.js +7 -0
- package/cypress/pages/components/layoutSectionComponent.js +1156 -0
- package/cypress/pages/components/limitNumberOfRetakeComponent.js +90 -0
- package/cypress/pages/components/numberLineCommonComponent.js +685 -0
- package/cypress/pages/components/optionsWrapperComponent.js +13 -2
- package/cypress/pages/components/playbackControlsBaseComponent.js +20 -13
- package/cypress/pages/components/questionInstructionsComponent.js +3 -19
- package/cypress/pages/components/styleAndLayoutCustomizationAccordionComponent.js +46 -0
- package/cypress/pages/components/toolSettingsComponent.js +6 -0
- package/cypress/pages/contentBlocksPage.js +18 -2
- package/cypress/pages/createItemPage.js +75 -8
- package/cypress/pages/dialogBoxBase.js +2 -2
- package/cypress/pages/drawingResponsePage.js +24 -4
- package/cypress/pages/feedbackScalePage.js +3 -0
- package/cypress/pages/graphingPage.js +19 -1
- package/cypress/pages/gridFillPage.js +47 -59
- package/cypress/pages/index.js +5 -1
- package/cypress/pages/itemPreviewSettingsPage.js +4 -0
- package/cypress/pages/listOrderingPage.js +561 -555
- package/cypress/pages/matchingPage.js +1 -1
- package/cypress/pages/multipleSelectionPage.js +23 -1
- package/cypress/pages/numberLineLabelPage.js +1086 -0
- package/cypress/pages/numberLinePage.js +696 -78
- package/cypress/pages/rulerPage.js +6 -2
- package/cypress/pages/textSelectionPage.js +461 -23
- package/cypress/pages/videoResponsePage.js +393 -81
- package/package.json +1 -1
@@ -0,0 +1,164 @@
|
|
1
|
+
import { numberLineLabelPage, correctAnswerViewPage, itemPreviewPage, studentViewPage } from "../../../pages";
|
2
|
+
import { gradingViewPage } from "../../../pages";
|
3
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
4
|
+
import utilities from "../../../support/helpers/utilities";
|
5
|
+
let gradingAndCorrectAnsView = ['Grading view', 'Correct answer view']
|
6
|
+
const views = utilities.getViews(gradingAndCorrectAnsView);
|
7
|
+
var itemReferenceID = "";
|
8
|
+
const css = Cypress.env('css');
|
9
|
+
const range = 20.75;
|
10
|
+
|
11
|
+
describe('Create item page - Number line label: Grading view, Correct answer view contents', () => {
|
12
|
+
before(() => {
|
13
|
+
cy.loginAs('admin');
|
14
|
+
});
|
15
|
+
|
16
|
+
if (views.includes('Grading view')) {
|
17
|
+
describe('Grading view contents', { tags: 'smoke' }, () => {
|
18
|
+
abortEarlySetup();
|
19
|
+
before(() => {
|
20
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
21
|
+
cy.barsPreLoaderWait();
|
22
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
23
|
+
numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
|
24
|
+
numberLineLabelPage.steps.addLabel();
|
25
|
+
numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
|
26
|
+
cy.wait(2000);
|
27
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
|
28
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
|
29
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
|
30
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
|
31
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
|
32
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
|
33
|
+
numberLineLabelPage.steps.allotPoints(10);
|
34
|
+
numberLineLabelPage.steps.clickOnSaveQuestionButton();
|
35
|
+
utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
|
36
|
+
//Global variable issue, not working inside before
|
37
|
+
itemPreviewPage.referenceID()
|
38
|
+
.invoke('text')
|
39
|
+
.then(($refID) => {
|
40
|
+
itemReferenceID = $refID;
|
41
|
+
cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
|
42
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
|
43
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
|
44
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
|
45
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
|
46
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -8);
|
47
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-8]);
|
48
|
+
studentViewPage.steps.submitResponse();
|
49
|
+
studentViewPage.steps.clickOnGoToGradingViewButton();
|
50
|
+
});
|
51
|
+
});
|
52
|
+
|
53
|
+
it('Question instructions should be visible', () => {
|
54
|
+
utilities.verifyInnerText(numberLineLabelPage.questionInstructionsText(), 'Plot labels on the number line');
|
55
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.questionInstructionsText(), 'visible');
|
56
|
+
});
|
57
|
+
|
58
|
+
it('Correct answer label should be displayed', () => {
|
59
|
+
utilities.verifyInnerText(numberLineLabelPage.correctAnswersLabel(), 'Correct answers');
|
60
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.correctAnswersLabel(), 'visible');
|
61
|
+
});
|
62
|
+
|
63
|
+
it('Correct answer along with number line attempted by the user should be displayed in the correct answer section', () => {
|
64
|
+
numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, -8);
|
65
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
|
66
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
|
67
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
|
68
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
|
69
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
|
70
|
+
});
|
71
|
+
|
72
|
+
it('The unattempted labels should be displayed in disabled state', () => {
|
73
|
+
numberLineLabelPage.steps.verifyLabelIsDisabledForGradingView('Label 4')
|
74
|
+
});
|
75
|
+
|
76
|
+
it('Points and the total score should be displayed', () => {
|
77
|
+
gradingViewPage.steps.verifyGradingViewScore(0, 10);
|
78
|
+
});
|
79
|
+
|
80
|
+
it('CSS of grading view', { tags: 'css' }, () => {
|
81
|
+
utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.numberLinePointPreviewTab(), 0), {
|
82
|
+
'stroke': css.color.correctAnswer
|
83
|
+
});
|
84
|
+
utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.numberLinePointPreviewTab(), 2), {
|
85
|
+
'stroke': css.color.incorrectAnswer
|
86
|
+
});
|
87
|
+
utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.numberLinePointCorrectAnswerSection(), 0), {
|
88
|
+
'stroke': css.color.correctAnswer
|
89
|
+
});
|
90
|
+
utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.draggableLabelsPreviewTab(), 0), {
|
91
|
+
'border': `1px solid ${css.color.correctAnswer}`,
|
92
|
+
'color': css.color.text
|
93
|
+
});
|
94
|
+
utilities.verifyCSS(utilities.getNthElement(numberLineLabelPage.draggableLabelsPreviewTab(), 2), {
|
95
|
+
'border': `1px solid ${css.color.incorrectAnswer}`,
|
96
|
+
'color': css.color.text
|
97
|
+
});
|
98
|
+
});
|
99
|
+
|
100
|
+
it('Accessibility of grading view', { tags: 'a11y' }, () => {
|
101
|
+
cy.checkAccessibility(numberLineLabelPage.numberLinePreviewTab().parents('[class*="question-preview-wrapper"]'));
|
102
|
+
});
|
103
|
+
});
|
104
|
+
}
|
105
|
+
|
106
|
+
if (views.includes('Correct answer view')) {
|
107
|
+
describe('Correct answer view contents', { tags: 'smoke' }, () => {
|
108
|
+
abortEarlySetup();
|
109
|
+
before(() => {
|
110
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
111
|
+
cy.barsPreLoaderWait();
|
112
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
113
|
+
numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
|
114
|
+
numberLineLabelPage.steps.addLabel();
|
115
|
+
numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
|
116
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
|
117
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
|
118
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
|
119
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
|
120
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
|
121
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
|
122
|
+
numberLineLabelPage.steps.allotPoints(10);
|
123
|
+
numberLineLabelPage.steps.clickOnSaveQuestionButton();
|
124
|
+
utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
|
125
|
+
//Global variable issue, not working inside before
|
126
|
+
itemPreviewPage.referenceID()
|
127
|
+
.invoke('text')
|
128
|
+
.then(($refID) => {
|
129
|
+
itemReferenceID = $refID
|
130
|
+
cy.visit(`/item-engine/demo/render-item/correct-answer-view/${utilities.base64Encoding(itemReferenceID)}`);
|
131
|
+
});
|
132
|
+
});
|
133
|
+
|
134
|
+
it('Question instructions should be visible', () => {
|
135
|
+
utilities.verifyInnerText(numberLineLabelPage.questionInstructionsText(), 'Plot labels on the number line');
|
136
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.questionInstructionsText(), 'visible');
|
137
|
+
});
|
138
|
+
|
139
|
+
it('The correct answer set by user should be displayed in the correct answer view', () => {
|
140
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
|
141
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
|
142
|
+
numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
|
143
|
+
});
|
144
|
+
|
145
|
+
it('The points alloted to the question should be displayed', () => {
|
146
|
+
correctAnswerViewPage.steps.verifyAvailablePoints(10);
|
147
|
+
});
|
148
|
+
|
149
|
+
it('CSS of correct answer section', { tags: 'css' }, () => {
|
150
|
+
utilities.verifyCSS(numberLineLabelPage.numberLinePointPreviewTab(), {
|
151
|
+
'stroke': css.color.correctAnswer
|
152
|
+
});
|
153
|
+
utilities.verifyCSS(numberLineLabelPage.draggableLabelsPreviewTab(), {
|
154
|
+
'border': `1px solid ${css.color.correctAnswer}`,
|
155
|
+
'color': css.color.text
|
156
|
+
});
|
157
|
+
});
|
158
|
+
|
159
|
+
it('Accessibility of correct answer section', { tags: 'a11y' }, () => {
|
160
|
+
cy.checkAccessibility(numberLineLabelPage.numberLinePreviewTab().parents('[class*="question-preview-wrapper"]'));
|
161
|
+
});
|
162
|
+
});
|
163
|
+
}
|
164
|
+
});
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
2
|
+
import { dialogBoxBase, numberLineLabelPage } from "../../../pages";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
const range = 20.75;
|
5
|
+
|
6
|
+
describe('Create item page - Number line: Header section and saving question', () => {
|
7
|
+
before(() => {
|
8
|
+
cy.loginAs('admin');
|
9
|
+
});
|
10
|
+
|
11
|
+
describe('Header section contents', () => {
|
12
|
+
abortEarlySetup();
|
13
|
+
before(() => {
|
14
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
15
|
+
cy.barsPreLoaderWait();
|
16
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
17
|
+
});
|
18
|
+
|
19
|
+
numberLineLabelPage.tests.verifyCreateQuestionPageQuestionTypeHeader('Number line');
|
20
|
+
});
|
21
|
+
|
22
|
+
describe('Tabs section', () => {
|
23
|
+
abortEarlySetup();
|
24
|
+
before(() => {
|
25
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
26
|
+
cy.barsPreLoaderWait();
|
27
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
28
|
+
});
|
29
|
+
|
30
|
+
numberLineLabelPage.tests.verifyTabsSection();
|
31
|
+
});
|
32
|
+
|
33
|
+
describe('Cancel button', () => {
|
34
|
+
abortEarlySetup();
|
35
|
+
before(() => {
|
36
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
37
|
+
cy.barsPreLoaderWait();
|
38
|
+
});
|
39
|
+
|
40
|
+
numberLineLabelPage.tests.verifyCancelButton('Number line')
|
41
|
+
});
|
42
|
+
|
43
|
+
describe('Save Question button', () => {
|
44
|
+
abortEarlySetup();
|
45
|
+
before(() => {
|
46
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
47
|
+
cy.barsPreLoaderWait();
|
48
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
49
|
+
});
|
50
|
+
|
51
|
+
describe('Validation error messages', () => {
|
52
|
+
dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
|
53
|
+
|
54
|
+
it('Validation error messages should be displayed below required input fields', () => {
|
55
|
+
numberLineLabelPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
|
56
|
+
utilities.verifyInnerText(utilities.getNthElement(numberLineLabelPage.errorMessage(), 1), 'Error: Label is required.');
|
57
|
+
utilities.verifyInnerText(utilities.getNthElement(numberLineLabelPage.errorMessage(), 3), 'Error: Please set a correct answer.');
|
58
|
+
numberLineLabelPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
|
59
|
+
});
|
60
|
+
|
61
|
+
it('Validation error messages should disappear when required input fields are filled', () => {
|
62
|
+
numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3']);
|
63
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
|
64
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
|
65
|
+
numberLineLabelPage.steps.verifyErrorMessageIsNotDisplayed();
|
66
|
+
numberLineLabelPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
|
67
|
+
});
|
68
|
+
|
69
|
+
numberLineLabelPage.tests.verifyCreateItemWrapperContentsA11y();
|
70
|
+
});
|
71
|
+
|
72
|
+
describe('Saving a question', () => {
|
73
|
+
it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
|
74
|
+
numberLineLabelPage.steps.saveAQuestionAndVerifySnackbar();
|
75
|
+
});
|
76
|
+
|
77
|
+
numberLineLabelPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
|
78
|
+
});
|
79
|
+
});
|
80
|
+
});
|
@@ -0,0 +1,204 @@
|
|
1
|
+
import { numberLineLabelPage } from "../../../pages";
|
2
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
const css = Cypress.env('css');
|
5
|
+
|
6
|
+
const range = 20.75;
|
7
|
+
|
8
|
+
describe('Number line: Layout section', () => {
|
9
|
+
before(() => {
|
10
|
+
cy.loginAs('admin');
|
11
|
+
});
|
12
|
+
|
13
|
+
describe('Layout section - Contents', () => {
|
14
|
+
abortEarlySetup();
|
15
|
+
before(() => {
|
16
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
17
|
+
cy.barsPreLoaderWait();
|
18
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
19
|
+
});
|
20
|
+
|
21
|
+
numberLineLabelPage.tests.verifyLayoutSectionContent("Horizontal");
|
22
|
+
|
23
|
+
it('\'Snap to ticks\' label and checkbox should be displayed and by default it should be checked', () => {
|
24
|
+
utilities.verifyInnerText(numberLineLabelPage.snapToTicksLabel(), 'Snap to ticks');
|
25
|
+
numberLineLabelPage.steps.verifySnapToTicksCheckboxChecked()
|
26
|
+
});
|
27
|
+
});
|
28
|
+
|
29
|
+
describe('Layout section - Edit tab functionality', () => {
|
30
|
+
abortEarlySetup();
|
31
|
+
before(() => {
|
32
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
33
|
+
cy.barsPreLoaderWait();
|
34
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
35
|
+
for (let i = 0; i < 4; i++) {
|
36
|
+
numberLineLabelPage.steps.addLabel();
|
37
|
+
}
|
38
|
+
numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['1', '2', '3', '4', '5', '6', '7']);
|
39
|
+
});
|
40
|
+
|
41
|
+
numberLineLabelPage.tests.verifyLayoutSectionEditTabFunctionality("Horizontal");
|
42
|
+
|
43
|
+
it('When user unchecks \'Snap to ticks\' checkbox user should be able to attempt labels at decimal numbers', () => {
|
44
|
+
numberLineLabelPage.steps.uncheckSnapToTicksCheckbox();
|
45
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('1', 'horizontal', range, 1.5);
|
46
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [1.55]);
|
47
|
+
});
|
48
|
+
|
49
|
+
it('When user checks \'Snap to ticks\' checkbox user should not be able to attempt labels at decimal numbers', () => {
|
50
|
+
numberLineLabelPage.steps.checkSnapToTicksCheckbox();
|
51
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('2', 'horizontal', range, 8.75);
|
52
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
|
53
|
+
});
|
54
|
+
|
55
|
+
it('When Limit number of responses checkbox is checked then input field should be displayed beside the label and input field should have 5 pre-filled in it then user should be able to plot only 5 responses in specify correct answer section', () => {
|
56
|
+
numberLineLabelPage.steps.verifyTextInLimitNumberOfResponsesInputField(5);
|
57
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('3', 'horizontal', range, -9);
|
58
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
|
59
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('4', 'horizontal', range, 6);
|
60
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [6]);
|
61
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('5', 'horizontal', range, -6);
|
62
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-6]);
|
63
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('6', 'horizontal', range, 4);
|
64
|
+
numberLineLabelPage.steps.verifyPointsNotExistOnNumberLineSpecifyCorrectAnswer(range, [4]);
|
65
|
+
});
|
66
|
+
|
67
|
+
it('When user update the value in Limit number of responses input field then specified number of responses should be updated accordingly for number line in specify correct answer section and when user plots responses more than specified number then error \'Error: Only # answers are permitted.\'', () => {
|
68
|
+
numberLineLabelPage.steps.enterTextInLimitNumberOfResponsesInputField(6);
|
69
|
+
numberLineLabelPage.steps.verifyTextInLimitNumberOfResponsesInputField(6);
|
70
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('6', 'horizontal', range, 4);
|
71
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [4]);
|
72
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('7', 'horizontal', range, 2);
|
73
|
+
numberLineLabelPage.steps.verifyPointsNotExistOnNumberLineSpecifyCorrectAnswer(range, [2]);
|
74
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.errorMessage(), 'visible');
|
75
|
+
utilities.verifyInnerText(numberLineLabelPage.errorMessage(), 'Error: Only 6 answers are permitted.');
|
76
|
+
});
|
77
|
+
|
78
|
+
numberLineLabelPage.tests.verifyErrorMessageCSSAndA11y()
|
79
|
+
|
80
|
+
it('When user clicks outside the number line then error message should disappear', () => {
|
81
|
+
numberLineLabelPage.steps.focusInLabelInputField(4);
|
82
|
+
numberLineLabelPage.steps.verifyErrorMessageIsNotDisplayed();
|
83
|
+
});
|
84
|
+
|
85
|
+
it('When user uncheck Limit number of responses checkbox then Limit number of responses input field should disappear and user should be able to plot any number of responses on number line in specify correct answer section', () => {
|
86
|
+
numberLineLabelPage.steps.uncheckCheckbox('Limit number of responses');
|
87
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.limitNumbersOfResponsesInputField(), 'notExist');
|
88
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('7', 'horizontal', range, 2);
|
89
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [2]);
|
90
|
+
});
|
91
|
+
});
|
92
|
+
|
93
|
+
describe('Layout section - Preview tab functionality', () => {
|
94
|
+
abortEarlySetup();
|
95
|
+
before(() => {
|
96
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
97
|
+
cy.barsPreLoaderWait();
|
98
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
99
|
+
for (let i = 0; i < 4; i++) {
|
100
|
+
numberLineLabelPage.steps.addLabel();
|
101
|
+
}
|
102
|
+
numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['1', '2', '3', '4', '5', '6', '7']);
|
103
|
+
});
|
104
|
+
|
105
|
+
numberLineLabelPage.tests.verifyLayoutSectionPreviewTabFunctionality("Horizontal");
|
106
|
+
|
107
|
+
it('When user unchecks \'Snap to ticks\' checkbox user should be able to attempt labels at decimal numbers', () => {
|
108
|
+
numberLineLabelPage.steps.switchToEditTab();
|
109
|
+
numberLineLabelPage.steps.uncheckSnapToTicksCheckbox();
|
110
|
+
numberLineLabelPage.steps.switchToPreviewTab();
|
111
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('1', 'horizontal', range, 1.5);
|
112
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [1.55]);
|
113
|
+
});
|
114
|
+
|
115
|
+
it('When user checks \'Snap to ticks\' checkbox user should not be able to attempt labels at decimal numbers', () => {
|
116
|
+
numberLineLabelPage.steps.switchToEditTab();
|
117
|
+
numberLineLabelPage.steps.checkSnapToTicksCheckbox();
|
118
|
+
numberLineLabelPage.steps.switchToPreviewTab();
|
119
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('2', 'horizontal', range, 8.75);
|
120
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
|
121
|
+
});
|
122
|
+
|
123
|
+
it('When Limit number of responses checkbox is checked then input field should be displayed beside the label and input field should have 5 pre-filled in it then user should be able to plot only 5 responses on number line in preview tab', () => {
|
124
|
+
numberLineLabelPage.steps.switchToEditTab();
|
125
|
+
numberLineLabelPage.steps.verifyTextInLimitNumberOfResponsesInputField(5);
|
126
|
+
numberLineLabelPage.steps.switchToPreviewTab();
|
127
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('1', 'horizontal', range, 0);
|
128
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
|
129
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('2', 'horizontal', range, 9);
|
130
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
|
131
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('3', 'horizontal', range, -9);
|
132
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
|
133
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('4', 'horizontal', range, 6);
|
134
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [6]);
|
135
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('5', 'horizontal', range, -6);
|
136
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-6]);
|
137
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('6', 'horizontal', range, 4);
|
138
|
+
numberLineLabelPage.steps.verifyPointsNotExistOnNumberLinePreviewTab(range, [4]);
|
139
|
+
});
|
140
|
+
|
141
|
+
it('When user update the value in Limit number of responses input field then specified number of responses should be updated accordingly for number line in preview tab and when user plots responses more than specified number then error \'Only # answers are permitted.\'', () => {
|
142
|
+
numberLineLabelPage.steps.switchToEditTab();
|
143
|
+
numberLineLabelPage.steps.enterTextInLimitNumberOfResponsesInputField(6);
|
144
|
+
numberLineLabelPage.steps.verifyTextInLimitNumberOfResponsesInputField(6);
|
145
|
+
numberLineLabelPage.steps.switchToPreviewTab();
|
146
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('1', 'horizontal', range, 0);
|
147
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
|
148
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('2', 'horizontal', range, 9);
|
149
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
|
150
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('3', 'horizontal', range, -9);
|
151
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
|
152
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('4', 'horizontal', range, 6);
|
153
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [6]);
|
154
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('5', 'horizontal', range, -6);
|
155
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-6]);
|
156
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('6', 'horizontal', range, 4);
|
157
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [4]);
|
158
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('7', 'horizontal', range, 2);
|
159
|
+
numberLineLabelPage.steps.verifyPointsNotExistOnNumberLinePreviewTab(range, [2]);
|
160
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.warningMessage(), 'visible');
|
161
|
+
utilities.verifyInnerText(numberLineLabelPage.warningMessage(), 'Only 6 answers are permitted.');
|
162
|
+
});
|
163
|
+
|
164
|
+
it('CSS of warning message', { tags: 'css' }, () => {
|
165
|
+
utilities.verifyCSS(numberLineLabelPage.warningMessage(), {
|
166
|
+
'color': css.color.warningMessage,
|
167
|
+
'font-size': css.fontSize.normal,
|
168
|
+
'font-weight': css.fontWeight.regular
|
169
|
+
});
|
170
|
+
utilities.verifyCSS(numberLineLabelPage.warningMessageContainer().find('svg'), {
|
171
|
+
'color': css.color.warningMessage,
|
172
|
+
});
|
173
|
+
utilities.verifyCSS(numberLineLabelPage.warningMessageContainer(), {
|
174
|
+
'border': `1px solid ${css.color.warningContainerBorder}`
|
175
|
+
});
|
176
|
+
utilities.verifyCSS(numberLineLabelPage.warningMessageContainer(), {
|
177
|
+
'background-color': css.color.warningContainerBackground
|
178
|
+
});
|
179
|
+
});
|
180
|
+
|
181
|
+
it('Accessibility of error message', { tags: 'a11y' }, () => {
|
182
|
+
cy.checkAccessibility(numberLineLabelPage.warningMessage());
|
183
|
+
});
|
184
|
+
|
185
|
+
it('When user clicks outside the number line then error message should disappear', () => {
|
186
|
+
numberLineLabelPage.steps.switchToPreviewTab();
|
187
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.warningMessage(), 'notExist');
|
188
|
+
});
|
189
|
+
|
190
|
+
it('When user uncheck Limit number of responses checkbox then user should be able to plot any number of responses on number line in specify correct answer section', () => {
|
191
|
+
numberLineLabelPage.steps.switchToEditTab();
|
192
|
+
numberLineLabelPage.steps.uncheckCheckbox('Limit number of responses');
|
193
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.limitNumbersOfResponsesInputField(), 'notExist');
|
194
|
+
numberLineLabelPage.steps.switchToPreviewTab();
|
195
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('2', 'horizontal', range, 9);
|
196
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
|
197
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('3', 'horizontal', range, -9);
|
198
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
|
199
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('4', 'horizontal', range, 6);
|
200
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [6]);
|
201
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.warningMessage(), 'notExist');
|
202
|
+
});
|
203
|
+
});
|
204
|
+
});
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import { numberLineLabelPage } from "../../../pages";
|
2
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
const range = 20.75;
|
5
|
+
|
6
|
+
describe('Create Item page - Number line: Scoring cases', () => {
|
7
|
+
before(() => {
|
8
|
+
cy.loginAs('admin');
|
9
|
+
});
|
10
|
+
|
11
|
+
describe('Manually Scored scoring - Edit tab', () => {
|
12
|
+
abortEarlySetup();
|
13
|
+
before(() => {
|
14
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
15
|
+
cy.barsPreLoaderWait();
|
16
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
17
|
+
numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
|
18
|
+
});
|
19
|
+
|
20
|
+
it('When the user selects \'Manually scored\' option from the scoring Type dropdown then the \'Specify correct answer\' section should not be displayed; \'Points\' and \'Minimum scoring\' label and dropdown should be displayed', () => {
|
21
|
+
numberLineLabelPage.steps.expandScoringTypeDropdown();
|
22
|
+
numberLineLabelPage.steps.selectOptionFromScoringTypeDropdown('Manually scored')
|
23
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.pointsLabel(), 'visible');
|
24
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.pointsInputField(), 'visible');
|
25
|
+
numberLineLabelPage.steps.verifyMinimumScoringLabelAndDropdownDefaultState();
|
26
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.specifyCorrectAnswerLabel(), 'notExist');
|
27
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.specifyCorrectAnswerSectionWrapper(), 'notExist');
|
28
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.draggableLabelsSpecifyCorrectAnswer(), 'notExist');
|
29
|
+
});
|
30
|
+
|
31
|
+
it('When the user focuses in and out of the empty points input field, error message should not be displayed', () => {
|
32
|
+
numberLineLabelPage.steps.focusInAndFocusOutOfPointsInputField(0)
|
33
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.errorMessage(), 'notExist');
|
34
|
+
});
|
35
|
+
|
36
|
+
it('The user should be able to enter point in points input field', () => {
|
37
|
+
numberLineLabelPage.steps.allotPoints(10);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
describe('Non scored scoring - Scoring section', () => {
|
42
|
+
abortEarlySetup();
|
43
|
+
before(() => {
|
44
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('matching');
|
45
|
+
cy.barsPreLoaderWait();
|
46
|
+
});
|
47
|
+
|
48
|
+
it('User should be able to select \'Non scored\' scoring type from scoring type dropdown', () => {
|
49
|
+
numberLineLabelPage.steps.expandScoringTypeDropdown();
|
50
|
+
numberLineLabelPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
|
51
|
+
});
|
52
|
+
|
53
|
+
numberLineLabelPage.tests.verifyScoringSectionContentsForNonScoredScoringType();
|
54
|
+
});
|
55
|
+
|
56
|
+
describe('Non scored scoring - Specify correct answer section', () => {
|
57
|
+
abortEarlySetup();
|
58
|
+
before(() => {
|
59
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
60
|
+
cy.barsPreLoaderWait();
|
61
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
62
|
+
numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
|
63
|
+
numberLineLabelPage.steps.addLabel();
|
64
|
+
numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4']);
|
65
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
|
66
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
|
67
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
|
68
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
|
69
|
+
numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
|
70
|
+
numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
|
71
|
+
numberLineLabelPage.steps.expandScoringTypeDropdown();
|
72
|
+
numberLineLabelPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
|
73
|
+
});
|
74
|
+
|
75
|
+
numberLineLabelPage.tests.verifyContentsOfSpecifyCorrectAnswerSection();
|
76
|
+
|
77
|
+
numberLineLabelPage.tests.verifyPointsLabelAndInputFieldForNonScoredScoringType();
|
78
|
+
});
|
79
|
+
});
|
@@ -0,0 +1,85 @@
|
|
1
|
+
import { numberLineLabelPage } from "../../../pages";
|
2
|
+
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
|
+
import utilities from "../../../support/helpers/utilities";
|
4
|
+
const penaltyScoringTypeArray = ['No penalty points', 'Penalty points for the entire question', 'Penalty points for each incorrect label'];
|
5
|
+
const css = Cypress.env('css');
|
6
|
+
|
7
|
+
describe('Create item page - Number line: Minimum scoring, Penalty scoring, Rounding - Edit tab', () => {
|
8
|
+
before(() => {
|
9
|
+
cy.loginAs('admin');
|
10
|
+
});
|
11
|
+
|
12
|
+
describe('Scoring section: Minimum scoring - Edit tab', () => {
|
13
|
+
abortEarlySetup();
|
14
|
+
before(() => {
|
15
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
16
|
+
cy.barsPreLoaderWait();
|
17
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
18
|
+
numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
|
19
|
+
numberLineLabelPage.steps.allotPoints(10);
|
20
|
+
});
|
21
|
+
|
22
|
+
numberLineLabelPage.tests.verifyMinimumScoringDropdown();
|
23
|
+
|
24
|
+
numberLineLabelPage.tests.verifyMinimumPointsLabelAndInputField();
|
25
|
+
|
26
|
+
numberLineLabelPage.tests.verifyMinimumPointsFieldErrorState();
|
27
|
+
});
|
28
|
+
|
29
|
+
describe('Scoring section: Penalty scoring - Edit tab', () => {
|
30
|
+
abortEarlySetup();
|
31
|
+
before(() => {
|
32
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
33
|
+
cy.barsPreLoaderWait();
|
34
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
35
|
+
numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
|
36
|
+
numberLineLabelPage.steps.allotPoints(10);
|
37
|
+
numberLineLabelPage.steps.selectAutoScoredScoringSubtype('Partial different weights');
|
38
|
+
});
|
39
|
+
|
40
|
+
numberLineLabelPage.tests.verifyPenaltyScoringDropdown(penaltyScoringTypeArray);
|
41
|
+
|
42
|
+
numberLineLabelPage.tests.verifyPenaltyPointsLabelAndInputField();
|
43
|
+
|
44
|
+
numberLineLabelPage.tests.verifyPenaltyPointsErrorState();
|
45
|
+
|
46
|
+
//Need to update once https://redmine.zeuslearning.com/issues/569659 is resolved
|
47
|
+
it(`When user selects ${penaltyScoringTypeArray[2]} then 'Penalty points for each incorrect label' should be displayed with an input field`, () => {
|
48
|
+
numberLineLabelPage.steps.expandPenaltyScoringDropdown();
|
49
|
+
numberLineLabelPage.steps.selectOptionFromPenaltyScoringDropdown('Penalty points for each incorrect label');
|
50
|
+
utilities.verifyInnerText(numberLineLabelPage.penaltyPointsDetailsSectionInputFieldLabel(), 'Penalty points for each incorrect label');
|
51
|
+
utilities.verifyElementVisibilityState(numberLineLabelPage.penaltyPointsDetailsSectionInputFieldLabel(), 'visible');
|
52
|
+
numberLineLabelPage.steps.verifyPenaltyPointsValue('');
|
53
|
+
numberLineLabelPage.steps.allotPenaltyPoints(5);
|
54
|
+
numberLineLabelPage.steps.verifyPenaltyPointsValue(5);
|
55
|
+
});
|
56
|
+
|
57
|
+
it('CSS of the penalty points section - Penalty points for each incorrect label', { tags: 'css' }, () => {
|
58
|
+
utilities.verifyCSS(numberLineLabelPage.penaltyPointsDetailsSectionInputFieldLabel(), {
|
59
|
+
'color': css.color.labelText,
|
60
|
+
'font-size': css.fontSize.default,
|
61
|
+
'font-weight': css.fontWeight.regular
|
62
|
+
});
|
63
|
+
});
|
64
|
+
|
65
|
+
it('Accessibility of the penalty points section - Penalty points for each incorrect label', { tags: 'a11y' }, () => {
|
66
|
+
cy.checkAccessibility(numberLineLabelPage.penaltyPointsDetailsSectionInputFieldLabel().parents('.penalty-score-for-each-incorrect-wrapper'));
|
67
|
+
});
|
68
|
+
});
|
69
|
+
|
70
|
+
describe('Scoring section: Rounding - Edit tab', () => {
|
71
|
+
abortEarlySetup();
|
72
|
+
before(() => {
|
73
|
+
numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
|
74
|
+
cy.barsPreLoaderWait();
|
75
|
+
numberLineLabelPage.steps.navigateToLabelNumberLineTab();
|
76
|
+
numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
|
77
|
+
numberLineLabelPage.steps.allotPoints(10);
|
78
|
+
numberLineLabelPage.steps.selectAutoScoredScoringSubtype('Partial different weights')
|
79
|
+
});
|
80
|
+
|
81
|
+
numberLineLabelPage.tests.verifyRoundingDropdown();
|
82
|
+
|
83
|
+
numberLineLabelPage.tests.verifyRoundNegativeScoreToZeroLabelAndCheckbox();
|
84
|
+
});
|
85
|
+
});
|