itemengine-cypress-automation 1.0.341-e2eFixes18March-66a79d0.0 → 1.0.341-graphAndCharts-0a4e8d7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +398 -0
  2. package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +329 -0
  3. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +260 -0
  4. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +368 -0
  5. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  6. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  7. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  11. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  12. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  13. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  14. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  15. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  16. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +1 -3
  17. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  18. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +0 -2
  19. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  20. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  21. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +1 -1
  22. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +84 -0
  23. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +3 -3
  24. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/checkAddAlternativeButton.js +33 -0
  25. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +2 -4
  26. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/draggableOptions.js +2 -4
  27. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +33 -0
  28. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +39 -6
  29. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  30. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  31. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  32. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  33. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  34. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  35. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  36. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  37. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  38. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  39. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  40. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  41. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  42. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  43. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  44. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  45. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  46. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  47. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  48. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  49. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +96 -0
  50. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  51. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  52. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/checkAddAlternative.js +37 -0
  53. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +4 -6
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabBasicSection.js +47 -0
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +38 -9
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  64. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  65. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  66. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +0 -1
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +2 -4
  70. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  71. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  72. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  73. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  74. package/cypress/e2e/ILC/Graphing/headerSection.js +1 -2
  75. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  76. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +11 -0
  77. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  78. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  79. package/cypress/e2e/ILC/GridFill/headerSection.js +2 -4
  80. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +1 -2
  81. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  82. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  83. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  84. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  85. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +2 -1
  86. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +226 -0
  87. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  88. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  89. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  90. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  91. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  92. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  93. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  94. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  95. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  96. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  97. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +4 -2
  98. package/cypress/e2e/ILC/NumberLine/headerSection.js +1 -2
  99. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -0
  100. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +3 -4
  101. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  102. package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +10 -0
  103. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
  104. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -2
  105. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  106. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  107. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  108. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  109. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  110. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  111. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  112. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  113. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -2
  114. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -2
  115. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -2
  116. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -3
  117. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  118. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  119. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +3 -10
  120. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -4
  121. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -5
  122. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  123. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +0 -4
  124. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -2
  125. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +0 -2
  126. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +0 -2
  127. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -2
  128. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -2
  129. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +2 -8
  130. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
  131. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  132. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  133. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +0 -8
  134. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
  135. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  136. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  137. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +0 -1
  138. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +0 -2
  139. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +0 -8
  140. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +0 -2
  141. package/cypress/e2e/ILC/TextEntryMath/customSettings.js +4 -0
  142. package/cypress/e2e/ILC/TextEntryMath/equationEditor.smoke.js +8 -0
  143. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  144. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  145. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  146. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  147. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -2
  148. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodsWithoutSetResponse.smoke.js +1 -0
  149. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +10 -7
  150. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  151. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingAlternatePointsMoreThanCorrectPoints.js +80 -0
  152. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingCorrectPointsMoreThanAlternatePoints.js +30 -0
  153. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +109 -0
  154. package/cypress/e2e/ILC/TextSelection/checkAddAlternativeButton.js +46 -0
  155. package/cypress/e2e/ILC/TextSelection/editTabBasicSection.js +57 -0
  156. package/cypress/e2e/ILC/TextSelection/headerSection.js +38 -6
  157. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +1 -2
  158. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  159. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
  160. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
  161. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
  162. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +185 -0
  163. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  164. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +289 -0
  165. package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
  166. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +581 -0
  167. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  168. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
  169. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  170. package/cypress/e2e/Sessions/scores.js +9 -5
  171. package/cypress/e2e/applitools.config.js +3 -3
  172. package/cypress/fixtures/constants.js +5 -1
  173. package/cypress/fixtures/theme/ilc.json +16 -1
  174. package/cypress/fixtures/uploads/sample.webm +0 -0
  175. package/cypress/fixtures/uploads/sample.wmv +0 -0
  176. package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
  177. package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
  178. package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
  179. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  180. package/cypress/pages/audioPlayerPage.js +22 -22
  181. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  182. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  183. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  184. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  185. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +17 -51
  186. package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
  187. package/cypress/pages/components/browseItemsPage.js +998 -7
  188. package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
  189. package/cypress/pages/components/ckEditorEquationEditorComponent.js +4 -4
  190. package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
  191. package/cypress/pages/components/ckEditorLinkComponent.js +3 -3
  192. package/cypress/pages/components/commonComponents.js +8 -1
  193. package/cypress/pages/components/createQuestionBasePage.js +1 -1
  194. package/cypress/pages/components/defaultToolDropdown.js +7 -6
  195. package/cypress/pages/components/desmosToolComponent.js +1 -1
  196. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  197. package/cypress/pages/components/equationEditorSectionCommonComponent.js +13 -26
  198. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -70
  199. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -101
  200. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  201. package/cypress/pages/components/hideExpressionListComponent.js +53 -0
  202. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  203. package/cypress/pages/components/index.js +1 -0
  204. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  205. package/cypress/pages/components/optionsWrapperComponent.js +1 -1
  206. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  207. package/cypress/pages/components/scoringSectionBaseEditTab.js +12 -13
  208. package/cypress/pages/desmos3DGraphingPage.js +368 -0
  209. package/cypress/pages/desmosGeometryPage.js +308 -0
  210. package/cypress/pages/dialogBoxBase.js +2 -1
  211. package/cypress/pages/dragAndDropIntoCategoriesPage.js +26 -6
  212. package/cypress/pages/drawingResponsePage.js +16 -15
  213. package/cypress/pages/fillInTheGapsDragAndDropPage.js +1 -68
  214. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +4 -4
  215. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  216. package/cypress/pages/gradingViewPage.js +8 -0
  217. package/cypress/pages/graphingPage.js +5 -8
  218. package/cypress/pages/gridFillPage.js +7 -8
  219. package/cypress/pages/imageHighlightPage.js +0 -66
  220. package/cypress/pages/index.js +3 -1
  221. package/cypress/pages/multipleSelectionGridPage.js +1 -68
  222. package/cypress/pages/multipleSelectionPage.js +10 -106
  223. package/cypress/pages/numberLineLabelPage.js +5 -8
  224. package/cypress/pages/numberLinePage.js +4 -7
  225. package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
  226. package/cypress/pages/singleSelectionGridPage.js +1 -68
  227. package/cypress/pages/singleSelectionPage.js +0 -104
  228. package/cypress/pages/textSelectionPage.js +25 -6
  229. package/cypress/pages/thinkSpherePage.js +1874 -0
  230. package/cypress/support/commands.js +7 -4
  231. package/cypress/support/e2e.js +1 -0
  232. package/cypress/support/helpers/createItem.js +1181 -1
  233. package/cypress/support/helpers/utilities.js +75 -1
  234. package/deploy/smoke/deploy.yaml +2 -2
  235. package/package.json +3 -3
  236. package/scripts/dataApi.mjs +3 -0
  237. package/scripts/sorry-cypress.mjs +13 -0
@@ -0,0 +1,368 @@
1
+ import utilities from "../support/helpers/utilities";
2
+ import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent } from "./components";
3
+ import { desmosToolComponent } from "./components/desmosToolComponent";
4
+ const css = Cypress.env('css');
5
+
6
+ const selectors = {
7
+ ...desmosToolComponent,
8
+ ...scoringSectionBaseEditTab,
9
+ ...commonComponents,
10
+ ...additionalSettingsPanel,
11
+ ...questionInstructionsComponent,
12
+ desmosGraphingTool: () => cy.get('[id*="desmos-graph-tool"]'),
13
+ desmosGraphingToolExpressionPanel: () => cy.get('[id*="desmos-graph-tool"] .dcg-exppanel-container.dcg-add-shadow'),
14
+ studentViewSettingsLabel: () => cy.get('[class*="StudentViewWrapper"]'),
15
+ hideExpressionListLabel: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] .MuiFormControlLabel-label'),
16
+ hideExpressionListCheckbox: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] input'),
17
+ showHideListButton: () => cy.get('.dcg-show-expressions-tab[role="button"]'),
18
+ desmosGraphingWidthLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(0),
19
+ desmosGraphingWidthInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(0),
20
+ desmosGraphingHeightLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(1),
21
+ desmosGraphingHeightInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(1),
22
+ desmosGraphingExpressionPreviewTab: () => cy.get('.edit-question-preview-wrapper .dcg-expressionlist .dcg-main .dcg-mathquill-wrapper'),
23
+ desmosGraphingOutput: () => cy.get('.dcg-evaluation-container .dcg-typeset-math .dcg-mq-mathspeak').eq(1),
24
+ buttonAspectRatio: () => cy.get('[class*="LockIconWrapper"] button'),
25
+ buttonResetDimensions: () => cy.get('[class*="ResetIconWrapper"] button'),
26
+ specifyPredefinedExpressionLabel: () => cy.get('.label-wrapper'),
27
+ addExpressionButton: () => cy.get('.dcg-add-expression-btn:visible'),
28
+ expressionListNewFolderOption: () => cy.get('.dcg-action-newfolder'),
29
+ folderInExpressionList: () => cy.get('.dcg-expressionfolder'),
30
+ accessibilityLabel: () => cy.get('[class*="Accessibilitystyles__AccessibilityLabelWrapper"]'),
31
+ flagNonAccessibleCheckbox: () => cy.get('[data-ngie-testid="response-option-checkbox"] input'),
32
+ flagNonAccessibleLabel: () => cy.get('[data-ngie-testid="response-option-checkbox"] .MuiFormControlLabel-label'),
33
+ widthInputField: () => cy.get('[class*="StudentViewSettingsstyles__DimensionWrapper"] .text-input-field input').eq(0),
34
+ heightInputField: () => cy.get('[class*="StudentViewSettingsstyles__DimensionWrapper"] .text-input-field input').eq(1),
35
+ insertResourceLinkLabel: () => cy.get('.label-wrapper'),
36
+ insertResourceLinkInputField: () => cy.get('.additional-option-placeholder-input .MuiOutlinedInput-input'),
37
+ httpsLabel: () => cy.get('.start-adornment'),
38
+ errorMessage: () => cy.get('.error-text-message'),
39
+ resourceLinkPreviewTitle: () => cy.get('[class*="DesmosGraphingstyles__ResourceLinkPreviewLabel"]'),
40
+ desmosComponent: () => cy.get('[class*="DesmosGraphingstyles__DesmosComponentWrapper"]'),
41
+ }
42
+
43
+ const steps = {
44
+ ...desmosToolComponent.steps,
45
+ ...createQuestionBasePage.steps,
46
+ ...scoringSectionBaseEditTab.steps,
47
+ ...additionalSettingsPanel.steps,
48
+ ...questionInstructionsComponent.steps,
49
+ ...commonComponents.steps,
50
+ verifyHideExpressionListCheckboxUnchecked: () => {
51
+ desmos3DGraphingPage.hideExpressionListCheckbox()
52
+ .should('not.be.checked');
53
+ },
54
+
55
+ checkHideExpressionListCheckbox: () => {
56
+ desmos3DGraphingPage.hideExpressionListCheckbox()
57
+ .click()
58
+ .should('be.checked');
59
+ },
60
+
61
+ uncheckHideExpressionListCheckbox: () => {
62
+ desmos3DGraphingPage.hideExpressionListCheckbox()
63
+ .click()
64
+ .should('not.be.checked');
65
+ },
66
+
67
+ verifyExpressionListPanelVisible: () => {
68
+ utilities.verifyElementVisibilityState(desmos3DGraphingPage.desmosGraphingToolExpressionPanel(), 'visible');
69
+ },
70
+
71
+ verifyPreviewTabExpressionListPanelVisible: () => {
72
+ commonComponents.previewTabQuestionWrapper()
73
+ .within(() => {
74
+ utilities.verifyElementVisibilityState(desmos3DGraphingPage.desmosGraphingToolExpressionPanel(), 'visible');
75
+ });
76
+ },
77
+
78
+ verifyPreviewTabExpressionListPanelHidden: () => {
79
+ commonComponents.previewTabQuestionWrapper()
80
+ .within(() => {
81
+ desmos3DGraphingPage.desmosGraphingToolExpressionPanel()
82
+ .should('not.exist');
83
+ });
84
+ },
85
+
86
+ showHideList: () => {
87
+ desmos3DGraphingPage.showHideListButton()
88
+ .click();
89
+ },
90
+
91
+ verifyDesmosGraphingWidthInputField: (width) => {
92
+ desmos3DGraphingPage.desmosGraphingWidthInputField()
93
+ .should('have.value', width);
94
+ },
95
+
96
+ verifyDesmosGraphingHeightInputField: (height) => {
97
+ desmos3DGraphingPage.desmosGraphingHeightInputField()
98
+ .should('have.value', height);
99
+ },
100
+
101
+ /**
102
+ * @param {number} width value to enter in width input field
103
+ * @description this function enters value in width input field
104
+ */
105
+ enterInputInDesmosGraphingWidthInputField: (width) => {
106
+ desmos3DGraphingPage.desmosGraphingWidthInputField()
107
+ .clear()
108
+ .type(width)
109
+ .should('have.value', width);
110
+ },
111
+
112
+ /**
113
+ * @param {number} height value to enter in height input field
114
+ * @description this function enters value in height input field
115
+ */
116
+ enterInputInDesmosGraphingHeightInputField: (height) => {
117
+ desmos3DGraphingPage.desmosGraphingHeightInputField()
118
+ .clear()
119
+ .type(height)
120
+ .should('have.value', height);
121
+ },
122
+
123
+ /**
124
+ * @description this function locks aspect ratio
125
+ */
126
+ lockAspectRatio: () => {
127
+ desmos3DGraphingPage.buttonAspectRatio()
128
+ .click();
129
+ steps.verifyButtonAspectRatioLocked();
130
+ },
131
+
132
+ /**
133
+ * @description this function unlocks aspect ratio
134
+ */
135
+ unlockAspectRatio: () => {
136
+ desmos3DGraphingPage.buttonAspectRatio()
137
+ .click();
138
+ steps.verifyButtonAspectRatioUnlocked();
139
+ },
140
+
141
+ /**
142
+ * @description this function verifies aspect ratio is locked
143
+ */
144
+ verifyButtonAspectRatioLocked: () => {
145
+ desmos3DGraphingPage.buttonAspectRatio()
146
+ .should('have.attr', 'aria-label', 'Locked aspect ratio')
147
+ },
148
+
149
+ /**
150
+ * @description this function verifies aspect ratio is unlocked
151
+ */
152
+ verifyButtonAspectRatioUnlocked: () => {
153
+ desmos3DGraphingPage.buttonAspectRatio()
154
+ .should('have.attr', 'aria-label', 'Unlocked aspect ratio')
155
+ },
156
+ /**
157
+ * @description this function verifies aspect ratio is disabled
158
+ */
159
+ verifyButtonAspectRatioDisabled: () => {
160
+ desmos3DGraphingPage.buttonAspectRatio()
161
+ .should('be.disabled')
162
+ },
163
+
164
+ /**
165
+ * @description this function verifies the reset dimensions button is disabled
166
+ */
167
+ verifyButtonResetDimensionsDisabled: () => {
168
+ desmos3DGraphingPage.buttonResetDimensions()
169
+ .should('be.disabled');
170
+ },
171
+
172
+ /**
173
+ * @description this function verifies the reset dimensions button is enabled
174
+ */
175
+ verifyButtonResetDimensionsEnabled: () => {
176
+ desmos3DGraphingPage.buttonResetDimensions()
177
+ .should('be.enabled');
178
+ },
179
+
180
+ /**
181
+ * @description this function resets dimensions
182
+ */
183
+ resetDimensions: () => {
184
+ desmos3DGraphingPage.buttonResetDimensions()
185
+ .click();
186
+ },
187
+
188
+ verifyDesmosGraphingDimensions: (width, height) => {
189
+ desmos3DGraphingPage.desmosGraphingTool()
190
+ .should('have.css', 'width', width)
191
+ .and('have.css', 'height', height);
192
+ },
193
+
194
+ verifyPreviewTabDesmosGraphingDimensions: (width, height) => {
195
+ commonComponents.previewTabQuestionWrapper()
196
+ .within(() => {
197
+ desmos3DGraphingPage.desmosGraphingTool()
198
+ .should('have.css', 'width', `${width}px`)
199
+ .and('have.css', 'height', `${height}px`);
200
+ });
201
+ },
202
+
203
+ addExpression: () => {
204
+ desmos3DGraphingPage.addExpressionButton()
205
+ .click();
206
+ },
207
+
208
+ selectNewFolderOptionFromExpressionList: () => {
209
+ desmos3DGraphingPage.expressionListNewFolderOption()
210
+ .click();
211
+ },
212
+
213
+ addFolderInPreviewTabExpressionList: () => {
214
+ commonComponents.previewTabQuestionWrapper()
215
+ .within(() => {
216
+ steps.addExpression();
217
+ steps.selectNewFolderOptionFromExpressionList();
218
+ });
219
+ },
220
+
221
+ verifyDesmosGraphingOutput: (output) => {
222
+ utilities.verifyInnerText(desmos3DGraphingPage.desmosGraphingOutput(), output);
223
+ },
224
+
225
+ verifyPreviewTabDesmosGraphingOutput: (output) => {
226
+ commonComponents.previewTabQuestionWrapper()
227
+ .within(() => {
228
+ utilities.verifyInnerText(desmos3DGraphingPage.desmosGraphingOutput(), output);
229
+ });
230
+ },
231
+
232
+ verifyFolderInExpressionListVisible: () => {
233
+ utilities.verifyElementVisibilityState(desmos3DGraphingPage.folderInExpressionList(), 'notExist');
234
+ },
235
+
236
+ verifyFlagThisItemNonAccessibleCheckboxIsUnchecked: () => {
237
+ desmos3DGraphingPage.flagNonAccessibleCheckbox()
238
+ .should('not.be.checked');
239
+ },
240
+
241
+ checkFlagThisItemNonAccessibleCheckbox: () => {
242
+ desmos3DGraphingPage.flagNonAccessibleCheckbox()
243
+ .click()
244
+ .should('be.checked');
245
+ },
246
+
247
+ verifyInputInPreviewTabTextAreaField: (inputText) => {
248
+ commonComponents.previewTabQuestionWrapper()
249
+ .within(() => {
250
+ utilities.verifyInnerText(desmosToolComponent.previewTabDesmosTextArea(), inputText);
251
+ });
252
+ },
253
+ /**
254
+ * @param {number} width holds value of width attribute
255
+ * @description function updates width in input field
256
+ */
257
+ updateWidth: (width) => {
258
+ desmos3DGraphingPage.widthInputField()
259
+ .clear()
260
+ .type(width);
261
+ },
262
+ /**
263
+ * @param {number} width holds value of width attribute
264
+ * @description function verifies width in input field
265
+ */
266
+ verifyWidth: (width) => {
267
+ desmos3DGraphingPage.widthInputField()
268
+ .should('have.value', width);
269
+ },
270
+ /**
271
+ * @param {number} height holds value of height attribute
272
+ * @description function updates height in input field
273
+ */
274
+ updateHeight: (height) => {
275
+ desmos3DGraphingPage.heightInputField()
276
+ .clear()
277
+ .type(height);
278
+ },
279
+ /**
280
+ * @param {number} height holds value of height attribute
281
+ * @description function verifies height in input field
282
+ */
283
+ verifyHeight: (height) => {
284
+ desmos3DGraphingPage.heightInputField()
285
+ .should('have.value', height);
286
+ },
287
+ /**
288
+ * @param {number} width holds value of width attribute
289
+ * @description function verifies width property in image
290
+ */
291
+ verifyUpdatedWidthOfImage: (width) => {
292
+ rulerPage.widthInputField()
293
+ .should('have.attr', 'width', width)
294
+ },
295
+ /**
296
+ * @param {number} height holds value of height attribute
297
+ * @description function verifies height property in image
298
+ */
299
+ verifyUpdatedHeightOfImage: (height) => {
300
+ rulerPage.uploadedImagePreview()
301
+ .find('img')
302
+ .should('have.attr', 'height', height)
303
+ },
304
+ verifyInsertResourceLinkPlaceholderText: () => {
305
+ desmos3DGraphingPage.insertResourceLinkInputField()
306
+ .should('have.attr', 'placeholder', 'www.desmos.com/');
307
+ },
308
+ /**
309
+ * @description add desmos 3D Link to insert resource link input field
310
+ * @param {string} inputURL
311
+ */
312
+ addInputToInsertResourceLinkInputField: (inputURL) => {
313
+ desmos3DGraphingPage.insertResourceLinkInputField()
314
+ .focus()
315
+ .clear()
316
+ .type(`${inputURL}`);
317
+ utilities.hoverAwayFromElement();
318
+ },
319
+ verifyInsertResourceLinkPlaceholderTextNotDisplayed: () => {
320
+ desmos3DGraphingPage.insertResourceLinkInputField()
321
+ .should('not.have.attr', 'placeholder');
322
+ },
323
+ clearInputToInsertResourceLinkInputField: () => {
324
+ desmos3DGraphingPage.insertResourceLinkInputField()
325
+ .clear();
326
+ cy.get('body')
327
+ .click();
328
+ },
329
+ }
330
+
331
+ const tests = {
332
+ ...createQuestionBasePage.tests,
333
+ ...questionInstructionsComponent.tests,
334
+ ...scoringSectionBaseEditTab.tests,
335
+ ...additionalSettingsPanel.tests,
336
+ ...commonComponents.tests,
337
+ ...additionalSettingsAccessibilitySectionComponent.tests,
338
+ ...studentViewSettingsLabelComponent.tests,
339
+ ...hideExpressionListComponent.tests,
340
+
341
+ verifyGraphingQuestionSpecifyPredefinedExpressionContent: () => {
342
+ it('When user selects a scoring type the contents of the Specify predefined expression should be displayed', () => {
343
+ utilities.verifyElementVisibilityState(desmos3DGraphingPage.desmosGraphingTool(), 'exist');
344
+ utilities.verifyElementVisibilityState(desmos3DGraphingPage.previewTabDesmosToolGraph(), 'exist');
345
+ utilities.verifyElementVisibilityState(desmosToolComponent.previewTabDesmosToolKeypadButton(), 'exist');
346
+ });
347
+ },
348
+
349
+ verifyErrorMessageCSSAndA11y: () => {
350
+ it('CSS of error message', { tags: 'css' }, () => {
351
+ utilities.verifyCSS(desmos3DGraphingPage.errorMessage(), {
352
+ 'color': css.color.desmosErrorText,
353
+ 'font-size': css.fontSize.small,
354
+ 'font-weight': css.fontWeight.regular
355
+ });
356
+ });
357
+
358
+ it('Accessibility of error message', { tags: 'a11y' }, () => {
359
+ cy.checkAccessibility(commonComponents.nextGenCreateItemWrapper());
360
+ });
361
+ }
362
+ }
363
+
364
+ export const desmos3DGraphingPage = {
365
+ ...selectors,
366
+ steps,
367
+ tests
368
+ }
@@ -0,0 +1,308 @@
1
+ import utilities from "../support/helpers/utilities";
2
+ import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent } from "./components";
3
+ import { desmosToolComponent } from "./components/desmosToolComponent";
4
+ const css = Cypress.env('css');
5
+
6
+ const selectors = {
7
+ ...desmosToolComponent,
8
+ ...scoringSectionBaseEditTab,
9
+ ...commonComponents,
10
+ ...additionalSettingsPanel,
11
+ ...questionInstructionsComponent,
12
+ desmosGraphingTool: () => cy.get('[id*="desmos-graph-tool"]'),
13
+ desmosGraphingToolExpressionPanel: () => cy.get('[id*="desmos-graph-tool"] .dcg-exppanel-container.dcg-add-shadow'),
14
+ studentViewSettingsLabel: () => cy.get('[class*="StudentViewWrapper"]'),
15
+ hideExpressionListLabel: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] .MuiFormControlLabel-label'),
16
+ hideExpressionListCheckbox: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] input'),
17
+ showHideListButton: () => cy.get('.dcg-show-expressions-tab[role="button"]'),
18
+ desmosGraphingWidthLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(0),
19
+ desmosGraphingWidthInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(0),
20
+ desmosGraphingHeightLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(1),
21
+ desmosGraphingHeightInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(1),
22
+ desmosGraphingExpressionPreviewTab: () => cy.get('.edit-question-preview-wrapper .dcg-expressionlist .dcg-main .dcg-mathquill-wrapper'),
23
+ desmosGraphingOutput: () => cy.get('.dcg-evaluation-container .dcg-typeset-math .dcg-mq-mathspeak').eq(1),
24
+ buttonAspectRatio: () => cy.get('[class*="LockIconWrapper"] button'),
25
+ buttonResetDimensions: () => cy.get('[class*="ResetIconWrapper"] button'),
26
+ specifyPredefinedExpressionLabel: () => cy.get('.label-wrapper'),
27
+ addExpressionButton: () => cy.get('.dcg-add-expression-btn:visible'),
28
+ expressionListNewFolderOption: () => cy.get('.dcg-action-newfolder'),
29
+ folderInExpressionList: () => cy.get('.dcg-expressionfolder'),
30
+ accessibilityLabel: () => cy.get('[class*="Accessibilitystyles__AccessibilityLabelWrapper"]'),
31
+ flagNonAccessibleCheckbox: () => cy.get('[data-ngie-testid="response-option-checkbox"] input'),
32
+ flagNonAccessibleLabel: () => cy.get('[data-ngie-testid="response-option-checkbox"] .MuiFormControlLabel-label'),
33
+ insertResourceLinkLabel: () => cy.get('.label-wrapper'),
34
+ insertResourceLinkInputField: () => cy.get('.additional-option-placeholder-input .MuiOutlinedInput-input'),
35
+ httpsLabel: () => cy.get('.start-adornment'),
36
+ errorMessage: () => cy.get('.error-text-message'),
37
+ resourceLinkPreviewTitle: () => cy.get('[class*="DesmosGraphingstyles__ResourceLinkPreviewLabel"]'),
38
+ desmosComponent: () => cy.get('[class*="DesmosGraphingstyles__DesmosComponentWrapper"]'),
39
+ }
40
+
41
+ const steps = {
42
+ ...desmosToolComponent.steps,
43
+ ...createQuestionBasePage.steps,
44
+ ...scoringSectionBaseEditTab.steps,
45
+ ...additionalSettingsPanel.steps,
46
+ ...questionInstructionsComponent.steps,
47
+ ...commonComponents.steps,
48
+ verifyHideExpressionListCheckboxUnchecked: () => {
49
+ desmosGeometryPage.hideExpressionListCheckbox()
50
+ .should('not.be.checked');
51
+ },
52
+
53
+ checkHideExpressionListCheckbox: () => {
54
+ desmosGeometryPage.hideExpressionListCheckbox()
55
+ .click()
56
+ .should('be.checked');
57
+ },
58
+
59
+ uncheckHideExpressionListCheckbox: () => {
60
+ desmosGeometryPage.hideExpressionListCheckbox()
61
+ .click()
62
+ .should('not.be.checked');
63
+ },
64
+
65
+ verifyExpressionListPanelVisible: () => {
66
+ utilities.verifyElementVisibilityState(desmosGeometryPage.desmosGraphingToolExpressionPanel(), 'visible');
67
+ },
68
+
69
+ verifyPreviewTabExpressionListPanelVisible: () => {
70
+ commonComponents.previewTabQuestionWrapper()
71
+ .within(() => {
72
+ utilities.verifyElementVisibilityState(desmosGeometryPage.desmosGraphingToolExpressionPanel(), 'visible');
73
+ });
74
+ },
75
+
76
+ verifyPreviewTabExpressionListPanelHidden: () => {
77
+ commonComponents.previewTabQuestionWrapper()
78
+ .within(() => {
79
+ desmosGeometryPage.desmosGraphingToolExpressionPanel()
80
+ .should('not.exist');
81
+ });
82
+ },
83
+
84
+ showHideList: () => {
85
+ desmosGeometryPage.showHideListButton()
86
+ .click();
87
+ },
88
+
89
+ verifyDesmosGraphingWidthInputField: (width) => {
90
+ desmosGeometryPage.desmosGraphingWidthInputField()
91
+ .should('have.value', width);
92
+ },
93
+
94
+ verifyDesmosGraphingHeightInputField: (height) => {
95
+ desmosGeometryPage.desmosGraphingHeightInputField()
96
+ .should('have.value', height);
97
+ },
98
+
99
+ /**
100
+ * @param {number} width value to enter in width input field
101
+ * @description this function enters value in width input field
102
+ */
103
+ enterInputInDesmosGraphingWidthInputField: (width) => {
104
+ desmosGeometryPage.desmosGraphingWidthInputField()
105
+ .clear()
106
+ .type(width)
107
+ .should('have.value', width);
108
+ },
109
+
110
+ /**
111
+ * @param {number} height value to enter in height input field
112
+ * @description this function enters value in height input field
113
+ */
114
+ enterInputInDesmosGraphingHeightInputField: (height) => {
115
+ desmosGeometryPage.desmosGraphingHeightInputField()
116
+ .clear()
117
+ .type(height)
118
+ .should('have.value', height);
119
+ },
120
+
121
+ /**
122
+ * @description this function locks aspect ratio
123
+ */
124
+ lockAspectRatio: () => {
125
+ desmosGeometryPage.buttonAspectRatio()
126
+ .click();
127
+ steps.verifyButtonAspectRatioLocked();
128
+ },
129
+
130
+ /**
131
+ * @description this function unlocks aspect ratio
132
+ */
133
+ unlockAspectRatio: () => {
134
+ desmosGeometryPage.buttonAspectRatio()
135
+ .click();
136
+ steps.verifyButtonAspectRatioUnlocked();
137
+ },
138
+
139
+ /**
140
+ * @description this function verifies aspect ratio is locked
141
+ */
142
+ verifyButtonAspectRatioLocked: () => {
143
+ desmosGeometryPage.buttonAspectRatio()
144
+ .should('have.attr', 'aria-label', 'Locked aspect ratio')
145
+ },
146
+
147
+ /**
148
+ * @description this function verifies aspect ratio is unlocked
149
+ */
150
+ verifyButtonAspectRatioUnlocked: () => {
151
+ desmosGeometryPage.buttonAspectRatio()
152
+ .should('have.attr', 'aria-label', 'Unlocked aspect ratio')
153
+ },
154
+
155
+ /**
156
+ * @description this function verifies the reset dimensions button is disabled
157
+ */
158
+ verifyButtonResetDimensionsDisabled: () => {
159
+ desmosGeometryPage.buttonResetDimensions()
160
+ .should('be.disabled');
161
+ },
162
+
163
+ /**
164
+ * @description this function verifies the reset dimensions button is enabled
165
+ */
166
+ verifyButtonResetDimensionsEnabled: () => {
167
+ desmosGeometryPage.buttonResetDimensions()
168
+ .should('be.enabled');
169
+ },
170
+
171
+ /**
172
+ * @description this function resets dimensions
173
+ */
174
+ resetDimensions: () => {
175
+ desmosGeometryPage.buttonResetDimensions()
176
+ .click();
177
+ },
178
+
179
+ verifyDesmosGraphingDimensions: (width, height) => {
180
+ desmosGeometryPage.desmosGraphingTool()
181
+ .should('have.css', 'width', width)
182
+ .and('have.css', 'height', height);
183
+ },
184
+
185
+ verifyPreviewTabDesmosGraphingDimensions: (width, height) => {
186
+ commonComponents.previewTabQuestionWrapper()
187
+ .within(() => {
188
+ desmosGeometryPage.desmosGraphingTool()
189
+ .should('have.css', 'width', `${width}px`)
190
+ .and('have.css', 'height', `${height}px`);
191
+ });
192
+ },
193
+
194
+ addExpression: () => {
195
+ desmosGeometryPage.addExpressionButton()
196
+ .click();
197
+ },
198
+
199
+ selectNewFolderOptionFromExpressionList: () => {
200
+ desmosGeometryPage.expressionListNewFolderOption()
201
+ .click();
202
+ },
203
+
204
+ addFolderInPreviewTabExpressionList: () => {
205
+ commonComponents.previewTabQuestionWrapper()
206
+ .within(() => {
207
+ steps.addExpression();
208
+ steps.selectNewFolderOptionFromExpressionList();
209
+ });
210
+ },
211
+
212
+ verifyDesmosGraphingOutput: (output) => {
213
+ utilities.verifyInnerText(desmosGeometryPage.desmosGraphingOutput(), output);
214
+ },
215
+
216
+ verifyPreviewTabDesmosGraphingOutput: (output) => {
217
+ commonComponents.previewTabQuestionWrapper()
218
+ .within(() => {
219
+ utilities.verifyInnerText(desmosGeometryPage.desmosGraphingOutput(), output);
220
+ });
221
+ },
222
+
223
+ verifyFolderInExpressionListVisible: () => {
224
+ utilities.verifyElementVisibilityState(desmosGeometryPage.folderInExpressionList(), 'notExist');
225
+ },
226
+
227
+ verifyFlagThisItemNonAccessibleCheckboxIsUnchecked: () => {
228
+ desmosGeometryPage.flagNonAccessibleCheckbox()
229
+ .should('not.be.checked');
230
+ },
231
+
232
+ checkFlagThisItemNonAccessibleCheckbox: () => {
233
+ desmosGeometryPage.flagNonAccessibleCheckbox()
234
+ .click()
235
+ .should('be.checked');
236
+ },
237
+
238
+ verifyInputInPreviewTabTextAreaField: (inputText) => {
239
+ commonComponents.previewTabQuestionWrapper()
240
+ .within(() => {
241
+ utilities.verifyInnerText(desmosToolComponent.previewTabDesmosTextArea(), inputText);
242
+ });
243
+ },
244
+ verifyInsertResourceLinkPlaceholderText: () => {
245
+ desmosGeometryPage.insertResourceLinkInputField()
246
+ .should('have.attr', 'placeholder', 'www.desmos.com/');
247
+ },
248
+ /**
249
+ * @description add desmos 3D Link to insert resource link input field
250
+ * @param {string} inputURL
251
+ */
252
+ addInputToInsertResourceLinkInputField: (inputURL) => {
253
+ desmosGeometryPage.insertResourceLinkInputField()
254
+ .focus()
255
+ .clear()
256
+ .type(`${inputURL}`);
257
+ utilities.hoverAwayFromElement();
258
+ },
259
+ verifyInsertResourceLinkPlaceholderTextNotDisplayed: () => {
260
+ desmosGeometryPage.insertResourceLinkInputField()
261
+ .should('not.have.attr', 'placeholder');
262
+ },
263
+ clearInputToInsertResourceLinkInputField: () => {
264
+ desmosGeometryPage.insertResourceLinkInputField()
265
+ .clear();
266
+ cy.get('body')
267
+ .click();
268
+ },
269
+ }
270
+
271
+ const tests = {
272
+ ...createQuestionBasePage.tests,
273
+ ...questionInstructionsComponent.tests,
274
+ ...scoringSectionBaseEditTab.tests,
275
+ ...additionalSettingsPanel.tests,
276
+ ...commonComponents.tests,
277
+ ...additionalSettingsAccessibilitySectionComponent.tests,
278
+ ...studentViewSettingsLabelComponent.tests,
279
+ ...hideExpressionListComponent.tests,
280
+
281
+ verifyGraphingQuestionSpecifyPredefinedExpressionContent: () => {
282
+ it('When user selects a scoring type the contents of the Specify predefined expression should be displayed', () => {
283
+ utilities.verifyElementVisibilityState(desmosGeometryPage.desmosGraphingTool(), 'exist');
284
+ utilities.verifyElementVisibilityState(desmosGeometryPage.previewTabDesmosToolGraph(), 'exist');
285
+ utilities.verifyElementVisibilityState(desmosToolComponent.previewTabDesmosToolKeypadButton(), 'exist');
286
+ });
287
+ },
288
+
289
+ verifyErrorMessageCSSAndA11y: () => {
290
+ it('CSS of error message', { tags: 'css' }, () => {
291
+ utilities.verifyCSS(desmosGeometryPage.errorMessage(), {
292
+ 'color': css.color.desmosErrorText,
293
+ 'font-size': css.fontSize.small,
294
+ 'font-weight': css.fontWeight.regular
295
+ });
296
+ });
297
+
298
+ it('Accessibility of error message', { tags: 'a11y' }, () => {
299
+ cy.checkAccessibility(commonComponents.nextGenCreateItemWrapper());
300
+ });
301
+ }
302
+ }
303
+
304
+ export const desmosGeometryPage = {
305
+ ...selectors,
306
+ steps,
307
+ tests
308
+ }
@@ -4,6 +4,7 @@ const css = Cypress.env('css');
4
4
 
5
5
  const selectors = {
6
6
  dialogBox: () => cy.get('[aria-labelledby="alert-dialog-title"]'),
7
+ dialogBoxRoot: () => cy.get('[class*="MuiDialog-paper"]'),
7
8
  dialogBoxTitle: () => cy.get('.dialog-title'),
8
9
  dialogBoxContent: () => cy.get('[class*="dialog-content"]'),
9
10
  buttonReject: () => cy.get('[data-testid="reject-button"]'),
@@ -102,4 +103,4 @@ export const dialogBoxBase = {
102
103
  ...selectors,
103
104
  steps,
104
105
  tests
105
- }
106
+ };