itemengine-cypress-automation 1.0.375 → 1.0.376-resourceAndTools-fbbcf92.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 (279) hide show
  1. package/Dockerfile +1 -0
  2. package/cypress/e2e/GradingGridView/gradingGridView.js +156 -0
  3. package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +2 -0
  4. package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +4 -0
  5. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  6. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  7. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +39 -7
  8. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +25 -25
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +37 -36
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +37 -36
  13. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +37 -36
  14. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  15. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightBasic.js +26 -25
  16. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +39 -38
  17. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +31 -30
  18. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +35 -34
  19. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +247 -0
  20. package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +1 -1
  21. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  22. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  23. package/cypress/e2e/ILC/ChartsBar/specifyCorrectAnswerSection.js +92 -0
  24. package/cypress/e2e/ILC/ChartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePointsLocked.js +220 -0
  25. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +25 -25
  26. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +47 -46
  27. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +25 -24
  28. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +25 -24
  29. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  30. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightBasic.js +25 -25
  31. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +24 -23
  32. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +21 -20
  33. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +48 -46
  34. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +249 -0
  35. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
  36. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  37. package/cypress/e2e/ILC/ChartsLine/specifyCorrectAnswerSection.js +94 -0
  38. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  39. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
  40. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  41. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  42. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  43. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
  44. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  45. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  46. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -4
  47. package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
  48. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
  49. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  50. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +63 -4
  51. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +116 -7
  52. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
  53. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
  54. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettingsForGroupedLayout.js +3 -0
  55. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  56. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  57. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  58. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  59. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +1 -3
  60. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +2 -2
  61. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  62. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  63. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  64. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -0
  65. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +7 -7
  66. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +3 -0
  70. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  71. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  72. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  73. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  74. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  75. package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +2 -2
  76. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  77. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  78. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  79. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  80. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  81. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  82. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  83. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +210 -0
  84. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  85. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  86. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  87. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  88. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  89. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  90. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  91. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  92. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  93. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  94. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  95. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +2 -1
  96. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  97. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  98. package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +212 -0
  99. package/cypress/e2e/ILC/ImageHighlight/customiseHighlightStyle.js +29 -0
  100. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  101. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  102. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  103. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  104. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  105. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  106. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +2 -4
  107. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  108. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +237 -1
  109. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  110. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  111. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  112. package/cypress/e2e/ILC/ListOrderingDropdown/manuallyAndNonScoredEditTab.js +2 -1
  113. package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +2 -4
  114. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +7 -12
  115. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +10 -14
  116. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  117. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +215 -0
  118. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  119. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +36 -9
  120. package/cypress/e2e/ILC/ListOrderingNew/manuallyAndNonScoredEditTab.js +2 -0
  121. package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +7 -23
  122. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  123. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  124. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  125. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  126. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +309 -0
  127. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  128. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  129. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  130. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +36 -1
  131. package/cypress/e2e/ILC/Matching/Scoring/blankResponseScoring.js +38 -41
  132. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  133. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  134. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  135. package/cypress/e2e/ILC/Matching/clickAndDrop.js +5 -5
  136. package/cypress/e2e/ILC/Matching/draggableOptions.js +7 -0
  137. package/cypress/e2e/ILC/Matching/editQuestion.smoke.js +3 -2
  138. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  139. package/cypress/e2e/ILC/Matching/headerSection.js +38 -12
  140. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  141. package/cypress/e2e/ILC/Matching/studentViewSettings.js +2 -0
  142. package/cypress/e2e/ILC/Matching/studentViewSettingsForGroupedLayout.js +1 -1
  143. package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +6 -6
  144. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  145. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +2 -1
  146. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  147. package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +100 -69
  148. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +1 -0
  149. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  150. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  151. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  152. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  153. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  154. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  155. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  156. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  157. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  158. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  159. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  160. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  161. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  162. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  163. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  164. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  165. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  166. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +186 -0
  167. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +35 -51
  168. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  169. package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +101 -70
  170. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  171. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  172. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  173. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  174. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  175. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  176. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  177. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  178. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  179. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  180. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  181. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  182. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  183. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  184. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  185. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  186. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  187. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  188. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  189. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  190. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  191. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  192. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  193. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  194. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  195. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  196. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  197. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  198. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  199. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +231 -0
  200. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  201. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +54 -1
  202. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +53 -2
  203. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
  204. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  205. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
  206. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +91 -9
  207. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +12 -12
  208. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  209. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +35 -2
  210. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  211. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  212. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  213. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  214. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  215. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
  216. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  217. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  218. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +27 -28
  219. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  220. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +24 -24
  221. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +39 -37
  222. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsBasic.js +22 -23
  223. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  224. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +25 -24
  225. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +31 -31
  226. package/cypress/e2e/ILC/chartsDotsPlot/scoring/toleranceThresholdScoring.js +18 -19
  227. package/cypress/e2e/ILC/chartsDotsPlot/specifyCorrectAnswerSection.js +96 -0
  228. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  229. package/cypress/e2e/Sessions/saveResponseScores.js +2 -2
  230. package/cypress/pages/audioPlayerPage.js +47 -22
  231. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  232. package/cypress/pages/chartsBarPage.js +45 -0
  233. package/cypress/pages/chartsDotPlotPage.js +25 -0
  234. package/cypress/pages/chartsLinePage.js +28 -3
  235. package/cypress/pages/components/additionalSettingsPanel.js +1 -0
  236. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -1
  237. package/cypress/pages/components/browseItemsPage.js +109 -2
  238. package/cypress/pages/components/chartsCommonComponent.js +6 -2
  239. package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
  240. package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
  241. package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
  242. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  243. package/cypress/pages/components/colorPopupComponent.js +6 -0
  244. package/cypress/pages/components/commonComponents.js +4 -0
  245. package/cypress/pages/components/createQuestionBasePage.js +14 -1
  246. package/cypress/pages/components/draggableOptionsSectionComponent.js +2 -0
  247. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  248. package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
  249. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +28 -0
  250. package/cypress/pages/components/gridQuestionCommonComponent.js +55 -2
  251. package/cypress/pages/components/imageCanvasComponent.js +4 -4
  252. package/cypress/pages/components/questionInstructionsComponent.js +2 -0
  253. package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
  254. package/cypress/pages/components/specifyRowsAndColumnsComponent.js +7 -1
  255. package/cypress/pages/contentBlocksPage.js +2 -0
  256. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  257. package/cypress/pages/desmosGeometryPage.js +184 -4
  258. package/cypress/pages/drawingResponsePage.js +2 -0
  259. package/cypress/pages/fillInTheGapsDragAndDropPage.js +3 -4
  260. package/cypress/pages/gradingGridViewPage.js +64 -0
  261. package/cypress/pages/graphingPage.js +27 -8
  262. package/cypress/pages/gridFillPage.js +15 -6
  263. package/cypress/pages/imageHighlightPage.js +32 -0
  264. package/cypress/pages/index.js +1 -0
  265. package/cypress/pages/listOrderingPage.js +40 -1
  266. package/cypress/pages/matchingPage.js +26 -7
  267. package/cypress/pages/numberLineLabelPage.js +31 -8
  268. package/cypress/pages/numberLinePage.js +19 -7
  269. package/cypress/pages/singleSelectionPage.js +30 -1
  270. package/cypress/pages/textEntryMathPage.js +24 -1
  271. package/cypress/pages/thinkSpherePage.js +674 -48
  272. package/cypress/pages/uploadResponsePage.js +17 -1
  273. package/cypress/pages/videoResponsePage.js +3 -0
  274. package/cypress/support/commands.js +9 -0
  275. package/cypress/support/helpers/createItem.js +22 -3
  276. package/cypress/support/helpers/utilities.js +14 -1
  277. package/package.json +3 -3
  278. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/checkAnswerFunctionalityForAllViews.js +0 -0
  279. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/editQuestion.smoke.js +0 -0
@@ -1,15 +1,19 @@
1
1
  import utilities from "../support/helpers/utilities";
2
2
  import { browseItemsPage } from "../pages/components/browseItemsPage";
3
+ import { editCategoryFlyout } from "../pages/components/editCategoryFlyout";
3
4
  import { dialogBoxBase } from "../pages/dialogBoxBase";
4
- import { backgroundImageUploadComponent, createQuestionBasePage, scoringSectionBaseEditTab, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, toolSettingsComponent, questionInstructionsComponent, studentViewSettingsLabelComponent, defaultToolDropdown, essayResponseCommonComponents, equationEditorSectionCommonComponent, equationEditorFlyout } from "./components"
5
+ import { backgroundImageUploadComponent, createQuestionBasePage, scoringSectionBaseEditTab, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, toolSettingsComponent, questionInstructionsComponent, studentViewSettingsLabelComponent, defaultToolDropdown, essayResponseCommonComponents, equationEditorSectionCommonComponent, equationEditorFlyout, createCustomCategoryFlyout } from "./components"
5
6
  import { drawingResponsePage } from "./drawingResponsePage";
6
7
  import { optionsWrapperComponent } from "../pages/components/optionsWrapperComponent";
7
8
  import { selectQuestionResourceToolPage } from "./selectQuestionResourceToolPage";
8
9
  import { videoResponsePage } from "./videoResponsePage";
9
10
  import { singleSelectionPage } from "./singleSelectionPage";
11
+ import { essayResponsePage } from "./essayResponsePage";
12
+ import { equationEditorCategoriesAndSymbols } from "../fixtures/equationEditorCategoriesAndSymbols ";
10
13
  const css = Cypress.env('css');
11
14
 
12
15
  const selectors = {
16
+ ...essayResponsePage,
13
17
  ...backgroundImageUploadComponent,
14
18
  ...questionInstructionsComponent,
15
19
  ...commonComponents,
@@ -24,6 +28,10 @@ const selectors = {
24
28
  ...browseItemsPage,
25
29
  ...videoResponsePage,
26
30
  ...dialogBoxBase,
31
+ ...editCategoryFlyout,
32
+ ...createCustomCategoryFlyout,
33
+ ...createQuestionBasePage,
34
+
27
35
  editQuestionPencil: () => cy.get('[class*="Widgetstyles__HeaderContainer"] button.icon-pencil'),
28
36
  widgetHeaderQuestionTitle: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="Widgetstyles__QuestionTypeText"]'),
29
37
  imageUploadSection: () => cy.get('[class*="TabsComponentstyles__ImageUploadComponentWrapper"]'),
@@ -72,13 +80,13 @@ const selectors = {
72
80
  planStrategyListResetToDefault: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
73
81
  planStrategyAddItemButton: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
74
82
  planStrategyCheckbox: () => cy.get('[class*="Planstyles__StrategiesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
75
- videoLinkComponent: () => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'), 0),
83
+ videoLinkComponent: (nthElement = 0) => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'), nthElement),
76
84
  uploadVideoLinkButton: () => cy.get('[class*="ListOptionsComponentstyles__UploadVideoTextWrapper"]'),
77
85
  planSentenceStarterSection: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"]'),
78
86
  planSentenceStarterListHeader: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__HeadingTextWrapper"]'),
79
87
  planSentenceStarterListResetToDefault: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
80
88
  planSentenceStarterAddItemButton: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
81
- planSentenceStarterCheckbox : () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
89
+ planSentenceStarterCheckbox: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
82
90
  solvePhaseAccordian: () => cy.get('[class*="Planstyles__SolveAccordianWrapper"] [class~="MuiAccordionSummary-root"] [role="button"]'),
83
91
  solvePhaseAccordianLabel: () => cy.get('[class*="Solvestyles__AccordionLabel"]'),
84
92
  inputTypeVideoFile: () => cy.get('[class*="Planstyles__StrategiesWrapper"] input[type="file"]'),
@@ -90,7 +98,7 @@ const selectors = {
90
98
  editVideoButton: () => cy.get('[aria-label*="Change video"]'),
91
99
  deleteVideoButton: () => cy.get('[aria-label*="Delete video"]'),
92
100
  listInputField: () => cy.get('.option-component textarea[placeholder]'),
93
- deleteButton: () => cy.get('button[aria-label*="Delete"]'),
101
+ deleteButton: () => cy.get('button[aria-label*="Delete"].ngie-icon-btn-cls'),
94
102
  optionNumeration: () => cy.get('[class*="MuiInputAdornment-positionStart"]'),
95
103
  iconPencil: () => cy.get('div[class*="icon-pencil"]'),
96
104
  iconXCircle: () => cy.get('div[class*="icon-x-circle"]'),
@@ -102,7 +110,8 @@ const selectors = {
102
110
  thinkSphereMathQuestionHeaderDeleteIcon: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="icon-Delete"]'),
103
111
  addCheckMathQuestionButton: () => cy.get('.ngie-btn-typography').contains(`Add 'Check your math' question`),
104
112
  firstAvailableItemLink: () => utilities.getNthElement(cy.get('.browse-item-styled-link'), 0),
105
- saveButton: () => cy.get('.ngie-btn-typography').contains('save',{matchCase: false}),
113
+ saveButton: () => cy.get('.ngie-btn-typography').contains('save', { matchCase: false }),
114
+ cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel', { matchCase: false }),
106
115
  AddCheckMathQuestionHeader: () => cy.get('.browse-title-wrapper').contains(`Add 'Check your math' question`),
107
116
  singleOptionTextFieldWrapper: () => cy.get('[class*="SingleOptionstyle__TextFieldWrapper"]'),
108
117
  customizeStampComponent: () => cy.get('[class*="CustomizeStampstyles__CustomizeStampWrapper"]'),
@@ -127,7 +136,7 @@ const selectors = {
127
136
  imageUploadSectionQuestionImageCrossIcon: () => thinkSpherePage.imageUploadSection().find('div[class*="QuestionImageComponentstyle__CrossIcon"]'),
128
137
  imageRadioButtonParentSvg: () => thinkSpherePage.imageRadioButton().parent().find('svg'),
129
138
  solvePhaseAccordionSvg: () => thinkSpherePage.solvePhaseAccordion().find('svg'),
130
- customizeToolsAndControlsSvg: () => thinkSpherePage.customizeToolsAndControls().find('svg'),
139
+ customizeToolsAndControlsPath: () => thinkSpherePage.customizeToolsAndControls().find('path'),
131
140
  solvePhaseToolsAndControlsOptionsTilesFeatherCheckIcon: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name="Icon feather-check"]'),
132
141
  solvePhaseToolsAndControlsOptionsTilesRectangle: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name*="Rectangle"]'),
133
142
  solvePhaseToolsAndControlsOptionsTilesDragItemFlexWrapperSvg: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('.drag-item-flex-wrapper svg'),
@@ -141,9 +150,9 @@ const selectors = {
141
150
  popupTitle: () => cy.get('[class*="dialog-title-wrapper"]'),
142
151
  strategyNameLabel: () => cy.get('[class*="ThinkSpherePreviewstyles__StrategyNameTextWrapper"]'),
143
152
  strategyNameInputField: () => cy.get('[class*="new-strategy-name-field"]'),
144
- addStrategyPopupCancelButton: () =>
153
+ addStrategyPopupCancelButton: () =>
145
154
  cy.get('.dialog-content').contains('Cancel'),
146
- addStrategyPopupSaveButton: () =>
155
+ addStrategyPopupSaveButton: () =>
147
156
  cy.get('.dialog-content').contains('Save'),
148
157
  // preview tab plan section selection
149
158
  questionInstructionPreviewTexWrapper: () => cy.get('.question-instruction.question-text-wrapper'),
@@ -151,9 +160,9 @@ const selectors = {
151
160
  questionInstructionPreviewImageExpandButton: () => cy.get('[class*="ThinkSpherePreviewstyles__ExpandImageIconWrapper"]'),
152
161
  questionInstructionImagePopup: () => cy.get('[class*="QuestionTextstyle__ImagePopupDiv"]'),
153
162
  closeExpandImagePopupButton: () => cy.get('.close-popup-btn'),
154
- PlanningPreviewWrapper : () => cy.get('[class*="PlanningPreviewstyles__PlanningPreviewWrapper"]'),
163
+ PlanningPreviewWrapper: () => cy.get('[class*="PlanningPreviewstyles__PlanningPreviewWrapper"]'),
155
164
  planningPreviewHeading: () => cy.get('[class*="PlanningPreviewstyles__HeadingWrapper"]'),
156
- planningWriteWrapper : () => cy.get('[class*="PlanningPreviewstyles__WriteWrapper"]'),
165
+ planningWriteWrapper: () => cy.get('[class*="PlanningPreviewstyles__WriteWrapper"]'),
157
166
  problemAskingWrapper: () => cy.get('[class*="PlanningPreviewstyles__ProblemAskingWrapper"]'),
158
167
  contentEditableDiv: () => cy.get('[class*="PlanningPreviewstyles__ContentEditableDiv"]'),
159
168
  micIconWrapper: () => cy.get('[class*="PlanningPreviewstyles__MicIconWrapper"]'),
@@ -181,9 +190,42 @@ const selectors = {
181
190
  gridItemsWrapper: (number) => cy.get('[class*="DragAndDropGridstyles__GridItemsWrapper"]').eq(number),
182
191
  dragButton: (number) => cy.get('[type="button"]').eq(number),
183
192
  customizeStampsButton: (customizeStampPosition) => cy.get(`button[aria-label="Stamp ${customizeStampPosition}"]`),
193
+ buttonSave: () => cy.get('.action-btn-wrapper button').eq(1),
194
+ buttonCancel: () => cy.get('.action-btn-wrapper button').eq(0),
195
+ nextGenThinkSphereCreateItemWrapper: () => cy.get('#nextgen-thinkshpere-create-item'),
196
+ equationEditorSectionTitle: () => cy.get('.equation-editor-text-title'),
197
+ referenceIdWrapper: () => cy.get('.edit-item-reference-id-wrapper'),
198
+ editBoxWrapper: () => cy.get('.edit-box-wrapper'),
199
+ editBoxText: () => cy.get('.edit-box-text'),
200
+ editBoxTextInput: () => thinkSpherePage.editBoxWrapper().find('input'),
201
+ editIconPencil: () => cy.get('.icon-pencil'),
202
+ thinkSphereQuestionHeader: () => cy.get('.edit-question-header-title'),
203
+ filterSectionQuestionTypesAccordion: () => cy.get('.filter-section-expansion-panel-summary-root'),
204
+ filterSectionQuestionAccordion: () => cy.get('.expansion-item-expansion-panel-summary-content'),
205
+ checkBox: () => cy.get('.MuiCheckbox-root'),
206
+ browseItemQuestionItem: () => cy.get('.browse-item-question-item'),
207
+ ErrorMessageContainer: () => cy.get('.ErrorMessageContainer'),
208
+ categoriesDropDown: () => cy.get('.dropdown-form-control[label="Categories"]'),
209
+ categoriesDropDownLabelText: () => cy.get('.dropdown-label-text'),
210
+ categoriesDropDownMenuItem: () => cy.get('.dropdown-menu-item .dropdown-label-text'),
211
+ categoriesDropDownParent: () => cy.get('.drop-down-parent'),
212
+ cardWrapper: () => cy.get('.card-wrapper'),
213
+ cardLabel: () => cy.get('.widget-card-label'),
214
+ thinkSphereQuestionInstructionCKEditor: () => cy.get('div.cke_editable[contenteditable="true"]'),
215
+ reviewTab: () => cy.get('div[aria-label="Review tab"]'),
216
+ planTab: () => cy.get('div[aria-label="Plan tab"]'),
217
+ checkYourMathHeading: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__CheckYourMathTextWrapper"]'), 0),
218
+ problemAskingToMeTextWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__ProblemAskingToMeTextWrapper"]'), 0),
219
+ reviewQuestionWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__QuestionWrapper"]'), 0),
220
+ reviewComponentWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__ComponentWrapper"]'), 0),
221
+ problemStatementWrapper: () => utilities.getNthElement(cy.get('div[class*="ReviewTabstyles__ProblemStatementWrapper"]'), 0),
222
+ gradingViewRadioButton: () => cy.get('label[aria-label="Grading View"]'),
223
+ studentViewRadioButton: () => cy.get('label[aria-label="Student View"]'),
224
+ correctAnswerLabelWrapper: () => cy.get('div[class*="CorrectAnswerLabelWrapper"]'),
184
225
  };
185
226
 
186
227
  const steps = {
228
+ ...essayResponsePage.steps,
187
229
  ...backgroundImageUploadComponent.steps,
188
230
  ...questionInstructionsComponent.steps,
189
231
  ...scoringSectionBaseEditTab.steps,
@@ -200,6 +242,7 @@ const steps = {
200
242
  ...browseItemsPage.steps,
201
243
  ...videoResponsePage.steps,
202
244
  ...createQuestionBasePage.steps,
245
+ ...createCustomCategoryFlyout.steps,
203
246
 
204
247
  /**
205
248
  * Navigates to the ThinkSphere create question page.
@@ -271,12 +314,24 @@ const steps = {
271
314
  cy.wait('@setItem');
272
315
  },
273
316
 
317
+ clickOnCancelButton: () => {
318
+ cy.interceptGraphql('setItem');
319
+ thinkSpherePage.cancelButton()
320
+ .click({ force: true });
321
+ },
322
+
274
323
  clickOnSwapButton: () => {
275
324
  thinkSpherePage.ThinkSphereMathQuestionHeaderSwapIcon()
276
325
  .click();
277
326
  cy.wait(2000);
278
327
  },
279
328
 
329
+ clickOnEditButton: () => {
330
+ thinkSpherePage.ThinkSphereMathQuestionHeaderPencilIcon()
331
+ .click();
332
+ cy.wait(2000);
333
+ },
334
+
280
335
  clickOnDeleteButton: () => {
281
336
  thinkSpherePage.thinkSphereMathQuestionHeaderDeleteIcon()
282
337
  .click();
@@ -320,20 +375,20 @@ const steps = {
320
375
  */
321
376
  uploadVideoFile: (file) => {
322
377
  const fileName = file.split('/').pop(); // Extracts only 'sample.mp4'
323
-
378
+
324
379
  cy.fixture(file, 'binary') // Read the file as binary
325
380
  .then(Cypress.Blob.binaryStringToBlob)
326
381
  .then((blob) => {
327
382
  const fileObj = new File([blob], fileName, { type: 'video/mp4' });
328
383
  const dataTransfer = new DataTransfer();
329
384
  dataTransfer.items.add(fileObj);
330
-
385
+
331
386
  thinkSpherePage.inputTypeVideoFile().then(($input) => {
332
387
  $input[0].files = dataTransfer.files;
333
388
  cy.wrap($input).trigger('change', { force: true });
334
389
  });
335
390
  });
336
-
391
+
337
392
  cy.wait(4000);
338
393
  },
339
394
 
@@ -409,13 +464,13 @@ const steps = {
409
464
  },
410
465
  expandSolvePhaseAccordion: () => {
411
466
  thinkSpherePage.solvePhaseAccordion()
412
- .click()
413
- .should('have.attr', 'aria-expanded', 'true');
467
+ .click()
468
+ .should('have.attr', 'aria-expanded', 'true');
414
469
  },
415
470
  expandCustomizeToolsAndControls: () => {
416
471
  thinkSpherePage.customizeToolsAndControls()
417
- .click()
418
- .should('have.attr', 'aria-expanded', 'true');
472
+ .click()
473
+ .should('have.attr', 'aria-expanded', 'true');
419
474
  },
420
475
  /**
421
476
  * Verifies the tools and controls options.
@@ -432,9 +487,9 @@ const steps = {
432
487
  */
433
488
  selectOptionFromToolsAndControls: (option) => {
434
489
  thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
435
- .click();
490
+ .click();
436
491
  thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
437
- .should('have.attr', 'data-aria-pressed', 'true');
492
+ .should('have.attr', 'data-aria-pressed', 'true');
438
493
  },
439
494
  /**
440
495
  * Deselects an option from tools and controls.
@@ -442,9 +497,9 @@ const steps = {
442
497
  */
443
498
  deselectOptionFromToolsAndControls: (option) => {
444
499
  thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
445
- .click();
500
+ .click();
446
501
  thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
447
- .should('have.attr', 'data-aria-pressed', 'false');
502
+ .should('have.attr', 'data-aria-pressed', 'false');
448
503
  },
449
504
  /**
450
505
  * Verifies if an option is selected.
@@ -452,7 +507,7 @@ const steps = {
452
507
  */
453
508
  verifyOptionIsSelected: (option) => {
454
509
  thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
455
- .should('have.attr', 'data-aria-pressed', 'true');
510
+ .should('have.attr', 'data-aria-pressed', 'true');
456
511
  },
457
512
  /**
458
513
  * Verifies if an option is not selected.
@@ -460,7 +515,7 @@ const steps = {
460
515
  */
461
516
  verifyOptionIsNotSelected: (option) => {
462
517
  thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
463
- .should('have.attr', 'data-aria-pressed', 'false');
518
+ .should('have.attr', 'data-aria-pressed', 'false');
464
519
  },
465
520
 
466
521
  /**
@@ -493,7 +548,7 @@ const steps = {
493
548
  utilities.getNthElement(thinkSpherePage.deleteButton(), index)
494
549
  .click();
495
550
  },
496
-
551
+
497
552
  /**
498
553
  * Verifies the delete option button disabled state.
499
554
  * @param {string} list - The list to verify ('strategy' or other).
@@ -543,7 +598,8 @@ const steps = {
543
598
  .click();
544
599
  } else {
545
600
  thinkSpherePage.planSentenceStarterAddItemButton()
546
- .click();
601
+ .click()
602
+ .trigger('mouseout', { force: true });
547
603
  }
548
604
  },
549
605
 
@@ -574,14 +630,14 @@ const steps = {
574
630
  .within(() => {
575
631
  utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
576
632
  .clear()
577
- .type(text);
633
+ .type(text, { delay: 500 });
578
634
  });
579
635
  } else {
580
636
  thinkSpherePage.planSentenceStarterSection()
581
637
  .within(() => {
582
638
  utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
583
639
  .clear()
584
- .type(text);
640
+ .type(text, { delay: 500 });
585
641
  });
586
642
  }
587
643
  },
@@ -708,9 +764,9 @@ const steps = {
708
764
  },
709
765
 
710
766
  verifyOptionAlignmentIsSelected: (direction) => {
711
- if(direction === 'topLeft') {
767
+ if (direction === 'topLeft') {
712
768
  thinkSpherePage.whiteBoardCanvas()
713
- .should('not.have.css', 'justify-content', 'start');
769
+ .should('not.have.css', 'justify-content', 'start');
714
770
  } else {
715
771
  thinkSpherePage.whiteBoardCanvas()
716
772
  .should('have.css', 'justify-content', (direction === 'center' || direction === 'flex-end') ? 'normal' : direction);
@@ -720,7 +776,7 @@ const steps = {
720
776
  }
721
777
  }
722
778
  },
723
-
779
+
724
780
  clickOnImageRadioButton: () => {
725
781
  thinkSpherePage.imageRadioButton()
726
782
  .click();
@@ -729,10 +785,11 @@ const steps = {
729
785
  clickOnEditQuestionIcon: () => {
730
786
  utilities.getNthElement(thinkSpherePage.editQuestionPencil(), 0)
731
787
  .click();
788
+ cy.wait(1000);
732
789
  },
733
790
 
734
791
  clickOnQuestionInstructionExpandImageButton: () => {
735
- thinkSpherePage.questionInstructionPreviewImageExpandButton()
792
+ utilities.getNthElement(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 0)
736
793
  .click();
737
794
  },
738
795
 
@@ -855,9 +912,450 @@ const steps = {
855
912
  verifyCustomizeStampSelectedUnselected: (selected, customizeStampPosition) => {
856
913
  utilities.verifyElementAttribute(thinkSpherePage.customizeStampsButton(customizeStampPosition), 'aria-checked', selected ? 'true' : 'false');
857
914
  },
915
+
916
+ saveCustomCategory: () => {
917
+ thinkSpherePage.buttonSave()
918
+ .click();
919
+ },
920
+
921
+ cancelCustomCategory: () => {
922
+ thinkSpherePage.buttonCancel()
923
+ .click();
924
+ },
925
+
926
+ createCustomCategoryWithMultipleCategoryCharacters: () => {
927
+ cy.log('Creating a custom category by selecting \'Keypad\' category, partially selecting \'Basic\' and \'Greek\' categories')
928
+ createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
929
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['primary'].displayName}`);
930
+ cy.wait(2000);
931
+ createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['matrices'].displayName}`);
932
+ createCustomCategoryFlyout.steps.expandCategoryAccordion(`Greek Symbols`);
933
+ createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.gamma.ariaLabel}`);
934
+ createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.delta.ariaLabel}`);
935
+ createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Custom category with name.');
936
+ thinkSpherePage.steps.saveCustomCategory();
937
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
938
+ },
939
+
940
+ createCustomCategoryWithNameAndIcon: () => {
941
+ cy.log('Creating a category by selecting \'Arrows\' category')
942
+ createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
943
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['geo'].displayName}`);
944
+ createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Custom category with name and icon.');
945
+ createCustomCategoryFlyout.steps.addInputToCategoryIconInputField('#');
946
+ thinkSpherePage.steps.saveCustomCategory();
947
+ },
948
+
949
+ verifyCategoryCharactersAndUnSelectedState: (arrayOfSymbolsAriaLabel) => {
950
+ thinkSpherePage.categoryCharacters()
951
+ .then(($symbols) => {
952
+ for (let index = 10; index < $symbols.length - 1; index++) {
953
+ editCategoryFlyout.categoryCharacters()
954
+ .eq(index)
955
+ .should('not.have.class', 'Mui-selected')
956
+ .invoke('attr', 'aria-label')
957
+ .then((ariaLabel) => {
958
+ const tooltipText = ariaLabel.split(' ').slice(0, -1).join(' ');
959
+ editCategoryFlyout.categoryCharacters()
960
+ .eq(index)
961
+ .verifyTooltip(tooltipText);
962
+ });
963
+ }
964
+ });
965
+ },
966
+
967
+ verifyCategoryCharactersAndSelectedState: (arrayOfSymbolsAriaLabel) => {
968
+ editCategoryFlyout.categoryCharacters()
969
+ .then(($symbols) => {
970
+ for (let index = 0; index < arrayOfSymbolsAriaLabel.length - 1; index++) {
971
+ editCategoryFlyout.categoryCharacters()
972
+ .eq(index)
973
+ .should('have.class', 'Mui-selected')
974
+ .invoke('attr', 'aria-label')
975
+ .then((ariaLabel) => {
976
+ const tooltipText = ariaLabel.split(' ').slice(0, -1).join(' ');
977
+ editCategoryFlyout.categoryCharacters()
978
+ .eq(index)
979
+ .verifyTooltip(tooltipText);
980
+ });
981
+ }
982
+ });
983
+ },
984
+
985
+ expandDropdown: () => {
986
+ thinkSpherePage.categoriesDropDownParent()
987
+ .click();
988
+ },
989
+
990
+ verifyDropdownOptions: (dropDownListArray) => {
991
+ thinkSpherePage.categoriesDropDownMenuItem().should('have.length', dropDownListArray.length).each(($item) => {
992
+ cy.wrap($item)
993
+ .invoke('text')
994
+ .then((text) => {
995
+ const trimmedText = text.trim();
996
+ expect(dropDownListArray).to.include(trimmedText);
997
+ });
998
+ });
999
+ },
1000
+
1001
+ clickOnDropDownCategory: (index) => {
1002
+ thinkSpherePage.categoriesDropDownMenuItem().eq(index).click();
1003
+ },
1004
+
1005
+ clickOnQuestionTypesAccordion: () => {
1006
+ thinkSpherePage.filterSectionQuestionTypesAccordion()
1007
+ .click()
1008
+ },
1009
+
1010
+ typeInSearchBar: (input) => {
1011
+ thinkSpherePage.searchBar()
1012
+ .clear()
1013
+ .type(input)
1014
+ .should('have.value', input);
1015
+ },
1016
+
1017
+ searchInSearchBar: (input) => {
1018
+ thinkSpherePage.searchBar()
1019
+ .clear()
1020
+ .type(input)
1021
+ .should('have.value', input)
1022
+ .type('{enter}');
1023
+ },
1024
+
1025
+ clickOnSolvePhaseAccordionIcon: (element) => {
1026
+ thinkSpherePage.solvePhaseAccordionExpandIcon()
1027
+ .click();
1028
+ },
1029
+
1030
+ verifyElementDoesNotHaveExpandedClass: (element) => {
1031
+ element.should('not.have.class', 'Mui-expanded');
1032
+ },
1033
+
1034
+ verifyElementDoesNotHaveCheckedClass: (element) => {
1035
+ element.should('not.have.class', 'Mui-checked');
1036
+ },
1037
+
1038
+ verifyThinkSphereSearchBarPlaceholder: () => {
1039
+ thinkSpherePage.searchBar().should('have.attr', 'placeholder', 'Search by title, tags and content');
1040
+ },
1041
+
1042
+ verifyReviewItemSearchBarPlaceholder: () => {
1043
+ thinkSpherePage.searchBar().should('have.attr', 'placeholder', 'Search by question type');
1044
+ },
1045
+
1046
+ verifyEquationEditorSectionCategoryNotPressed: () => {
1047
+ thinkSpherePage.equationEditorSectionCategories().eq(1).should('have.attr', 'data-aria-pressed', 'false');
1048
+ },
1049
+
1050
+ verifyEquationEditorSectionCategoryIsPressed: () => {
1051
+ thinkSpherePage.equationEditorSectionCategories().eq(10).should('have.attr', 'data-aria-pressed', 'true');
1052
+ },
1053
+
1054
+ verifyTypeCheckBoxStrategy: () => {
1055
+ utilities.getNthElement(thinkSpherePage.planStrategyCheckbox(), 5)
1056
+ .find('input').should('have.attr', 'type', 'checkbox');
1057
+ },
1058
+
1059
+ verifyTypeCheckBoxSentenceStarter: () => {
1060
+ utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox(), 5)
1061
+ .find('input').should('have.attr', 'type', 'checkbox');
1062
+ },
1063
+
1064
+ verifyStrategyCheckBoxNotChecked: () => {
1065
+ utilities.getNthElement(thinkSpherePage.planStrategyCheckbox(), 5)
1066
+ .find('input').should('not.have.attr', 'checked');
1067
+ },
1068
+
1069
+ verifySentenceStrategyCheckBoxNotChecked: () => {
1070
+ utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox(), 5)
1071
+ .find('input').should('not.have.attr', 'checked');
1072
+ },
1073
+
1074
+ verifyTextIsNotEmpty: (element) => {
1075
+ element.invoke('text')
1076
+ .should('not.be.empty');
1077
+ },
1078
+
1079
+ verifyLength: (element, length) => {
1080
+ element.should('have.length', length);
1081
+ },
1082
+
1083
+ verifyFilterSectionExpanded: () => {
1084
+ thinkSpherePage.filterSectionQuestionTypesAccordion().should('have.class', 'Mui-expanded');
1085
+ },
1086
+
1087
+ verifyFilterSectionCollapsed: () => {
1088
+ thinkSpherePage.filterSectionQuestionTypesAccordion().should('not.have.class', 'Mui-expanded');
1089
+ },
1090
+
1091
+ verifySolvePhaseAccordionExpanded: () => {
1092
+ thinkSpherePage.solvePhaseAccordionExpandIcon().should('have.class', 'Mui-expanded');
1093
+ },
1094
+
1095
+ verifySolvePhaseAccordionCollapsed: () => {
1096
+ thinkSpherePage.solvePhaseAccordionExpandIcon().should('not.have.class', 'Mui-expanded');
1097
+ },
1098
+
1099
+ addQuestionInstructionInnerHTML: (innerHTML) => {
1100
+ thinkSpherePage.thinkSphereQuestionInstructionCKEditor()
1101
+ .invoke('html', innerHTML);
1102
+ },
1103
+
1104
+ verifyQuestionInstructionIncreasedHeightAndScrollBar: () => {
1105
+ thinkSpherePage.thinkSphereQuestionInstructionCKEditor()
1106
+ .invoke('height') // Get the height of the element
1107
+ .should('be.gt', 198);
1108
+
1109
+ thinkSpherePage.thinkSphereQuestionInstructionCKEditor()
1110
+ .should(($el) => {
1111
+ const scrollWidth = $el[0].scrollWidth;
1112
+ const clientWidth = $el[0].clientWidth;
1113
+
1114
+ // Assert that horizontal scroll is present
1115
+ expect(scrollWidth).to.be.greaterThan(clientWidth);
1116
+ });
1117
+ },
1118
+
1119
+ verifyQuestionImagePopup: () => {
1120
+ thinkSpherePage.dialogBoxRoot()
1121
+ .within(() => {
1122
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionImagePopup(), 'visible');
1123
+ utilities.verifyElementVisibilityState(thinkSpherePage.closeExpandImagePopupButton(), 'visible');
1124
+ });
1125
+ },
1126
+
1127
+ verifyAddNewStrategyPopupCloseFunctionality: () => {
1128
+ let countBeforeOpeningPopup, countAfterClosingPopup;
1129
+ cy.get(thinkSpherePage.strategiesBoxPreviewTab())
1130
+ .its('length')
1131
+ .then((count) => {
1132
+ countBeforeOpeningPopup = count;
1133
+ cy.log('Count before opening popup:', countBeforeOpeningPopup);
1134
+ });
1135
+ thinkSpherePage.addNewStrategyButton().click();
1136
+ thinkSpherePage.addStrategyPopupCancelButton().click();
1137
+ cy.get(thinkSpherePage.strategiesBoxPreviewTab())
1138
+ .its('length')
1139
+ .then((count) => {
1140
+ countAfterClosingPopup = count;
1141
+ cy.log('Count after closing popup:', countAfterClosingPopup);
1142
+ expect(countAfterClosingPopup).to.equal(countBeforeOpeningPopup);
1143
+ });
1144
+ },
1145
+
1146
+ verifyAddNewStrategyPopupSaveFunctionality: () => {
1147
+ let countBeforeOpeningPopup, countAfterClosingPopup;
1148
+ thinkSpherePage.strategiesBoxPreviewTab()
1149
+ .its('length')
1150
+ .then((count) => {
1151
+ countBeforeOpeningPopup = count;
1152
+ cy.log('Count before opening popup:', countBeforeOpeningPopup);
1153
+ });
1154
+ thinkSpherePage.addNewStrategyButton().click();
1155
+ thinkSpherePage.strategyNameInputField().type('Test Strategy');
1156
+ thinkSpherePage.addStrategyPopupSaveButton().click();
1157
+ thinkSpherePage.strategiesBoxPreviewTab()
1158
+ .its('length')
1159
+ .then((count) => {
1160
+ countAfterClosingPopup = count;
1161
+ cy.log('Count after closing popup:', countAfterClosingPopup);
1162
+ expect(countAfterClosingPopup).to.equal(countBeforeOpeningPopup + 1);
1163
+ });
1164
+ },
1165
+
1166
+ verifyVideoPopupDialogBox: () => {
1167
+ thinkSpherePage.dialogBoxRoot()
1168
+ .within(() => {
1169
+ utilities.verifyElementVisibilityState(thinkSpherePage.dialogBoxTitle(), 'visible');
1170
+ utilities.verifyInnerText(thinkSpherePage.dialogBoxTitle(), 'Create_a_model');
1171
+ utilities.verifyElementVisibilityState(thinkSpherePage.buttonClose(), 'visible');
1172
+ });
1173
+ },
1174
+
1175
+ verifySentenceStartersDropdown: () => {
1176
+ thinkSpherePage.chooseStarterTextIconWrapper()
1177
+ .within(() => {
1178
+ utilities.verifyElementVisibilityState(thinkSpherePage.starterIocn(), 'visible');
1179
+ utilities.verifyInnerText(thinkSpherePage.starterTextWrapper(), 'Starters');
1180
+ });
1181
+ thinkSpherePage.chooseStarterDropdown()
1182
+ .verifyPseudoClassBeforeProperty('content', '""');
1183
+ },
1184
+
1185
+ verifySentenceStartersDropdownOptions: (sentenceStartersTextDefault) => {
1186
+ sentenceStartersTextDefault.forEach((label, index) => {
1187
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
1188
+ });
1189
+ },
1190
+
1191
+ verifySentenceStartersDropdownFunctionality: () => {
1192
+ thinkSpherePage.writePlanWrapper()
1193
+ .within(() => {
1194
+ thinkSpherePage.contentEditableDiv().clear();
1195
+ });
1196
+ thinkSpherePage.steps.expandChooseStarterDropdown();
1197
+ utilities.getNthElement(thinkSpherePage.chooseStartersListOptions(), 1).click();
1198
+ thinkSpherePage.writePlanWrapper()
1199
+ .within(() => {
1200
+ thinkSpherePage.contentEditableDiv().should('have.value', 'First, I will ');
1201
+ thinkSpherePage.contentEditableDiv().clear();
1202
+ });
1203
+ },
1204
+
1205
+ verifyProblemAskingHeading: () => {
1206
+ thinkSpherePage.problemAskingWrapper()
1207
+ .within(() => {
1208
+ utilities.verifyInnerText(thinkSpherePage.subheadingWrapper(), 'The problem is asking me to');
1209
+ utilities.verifyElementVisibilityState(thinkSpherePage.subheadingWrapper(), 'visible');
1210
+ });
1211
+ },
1212
+
1213
+ verifyProblemAskingTextArea: () => {
1214
+ thinkSpherePage.problemAskingWrapper()
1215
+ .within(() => {
1216
+ utilities.verifyElementVisibilityState(thinkSpherePage.contentEditableDiv(), 'visible');
1217
+ utilities.verifyElementAttribute(thinkSpherePage.contentEditableDiv(), 'placeholder', 'Enter your text here');
1218
+ });
1219
+ },
1220
+
1221
+ verifyProblemAskingMicSection: () => {
1222
+ thinkSpherePage.problemAskingWrapper()
1223
+ .within(() => {
1224
+ utilities.verifyElementVisibilityState(thinkSpherePage.micIconWrapper(), 'visible');
1225
+ utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'role', 'button');
1226
+ utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'aria-label', 'Mic button');
1227
+ });
1228
+ },
1229
+
1230
+ verifyProblemAskingTextAreaFunctionality: (textToEnter) => {
1231
+ thinkSpherePage.problemAskingWrapper()
1232
+ .within(() => {
1233
+ thinkSpherePage.contentEditableDiv().type(textToEnter);
1234
+ thinkSpherePage.contentEditableDiv().should('have.value', textToEnter);
1235
+ });
1236
+ },
1237
+
1238
+ verifyStrategiesToPlanHeading: () => {
1239
+ thinkSpherePage.strategiesToPlanWrapper()
1240
+ .within(() => {
1241
+ utilities.verifyInnerText(thinkSpherePage.subheadingWrapper(), 'Add strategies to plan');
1242
+ utilities.verifyElementVisibilityState(thinkSpherePage.subheadingWrapper(), 'visible');
1243
+ });
1244
+ },
1245
+
1246
+ verifyWritePlanHeading: () => {
1247
+ thinkSpherePage.writePlanWrapper()
1248
+ .within(() => {
1249
+ utilities.verifyInnerText(thinkSpherePage.subheadingWrapper(), 'Write your plan');
1250
+ utilities.verifyElementVisibilityState(thinkSpherePage.subheadingWrapper(), 'visible');
1251
+ });
1252
+ },
1253
+
1254
+ verifyWritePlanTextArea: () => {
1255
+ thinkSpherePage.writePlanWrapper()
1256
+ .within(() => {
1257
+ utilities.verifyElementVisibilityState(thinkSpherePage.contentEditableDiv(), 'visible');
1258
+ utilities.verifyElementAttribute(thinkSpherePage.contentEditableDiv(), 'placeholder', 'Enter your plan here');
1259
+ });
1260
+ },
1261
+
1262
+ verifyWritePlanMicSection: () => {
1263
+ thinkSpherePage.writePlanWrapper()
1264
+ .within(() => {
1265
+ utilities.verifyElementVisibilityState(thinkSpherePage.micIconWrapper(), 'visible');
1266
+ utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'role', 'button');
1267
+ utilities.verifyElementAttribute(thinkSpherePage.micIconWrapper(), 'aria-label', 'Mic button');
1268
+ });
1269
+ },
1270
+
1271
+ verifyWritePlanTextAreaFunctionality: (planTextToEnter) => {
1272
+ thinkSpherePage.writePlanWrapper()
1273
+ .within(() => {
1274
+ thinkSpherePage.contentEditableDiv().type(planTextToEnter);
1275
+ thinkSpherePage.contentEditableDiv().should('have.value', planTextToEnter);
1276
+ thinkSpherePage.contentEditableDiv().clear();
1277
+ });
1278
+ },
1279
+
1280
+ verifyStrategyChipClickFunctionality: () => {
1281
+ thinkSpherePage.writePlanWrapper()
1282
+ .within(() => {
1283
+ thinkSpherePage.contentEditableDiv().clear();
1284
+ });
1285
+ thinkSpherePage.strategyChip().click();
1286
+ thinkSpherePage.writePlanWrapper()
1287
+ .within(() => {
1288
+ thinkSpherePage.contentEditableDiv().should('have.value', 'look for a pattern ');
1289
+ });
1290
+ },
1291
+ clickUploadVideoButton: () => {
1292
+ thinkSpherePage.uploadVideoLinkButton()
1293
+ .click();
1294
+ },
1295
+
1296
+ verifyPreAuthoredVideoTitles: (defaultStrategyTexts) => {
1297
+ defaultStrategyTexts.forEach((text, index) => {
1298
+ thinkSpherePage.videoLinkComponent(index)
1299
+ .within(() => {
1300
+ utilities.verifyInnerText(thinkSpherePage.uploadVideoLinkButton(), text);
1301
+ })
1302
+ });
1303
+ },
1304
+
1305
+ verifyPreAuthoredVideos: (preAuthoredVideos) => {
1306
+ preAuthoredVideos.forEach(({ duration }, optionIndex) => {
1307
+ thinkSpherePage.videoLinkComponent(optionIndex)
1308
+ .within(thinkSpherePage.steps.clickUploadVideoButton);
1309
+ thinkSpherePage.steps.startPlayback();
1310
+ thinkSpherePage.steps.waitForPlaybackToBegin();
1311
+ thinkSpherePage.playerTimer()
1312
+ .should('contain', `/${duration}`);
1313
+ thinkSpherePage.steps.closeVideoPopup();
1314
+ })
1315
+ },
1316
+
1317
+ clickOnReviewTab: () => {
1318
+ thinkSpherePage.reviewTab()
1319
+ .click();
1320
+ },
1321
+
1322
+ clickOnPlanTab: () => {
1323
+ thinkSpherePage.planTab()
1324
+ .click();
1325
+ },
1326
+
1327
+ switchToGradingView: () => {
1328
+ thinkSpherePage.gradingViewRadioButton()
1329
+ .click();
1330
+ },
1331
+
1332
+ switchToStudentView: () => {
1333
+ thinkSpherePage.studentViewRadioButton()
1334
+ .click();
1335
+ },
1336
+
1337
+ verifyCorrectAnswerLabel: () => {
1338
+ utilities.verifyElementVisibilityState(thinkSpherePage.correctAnswerLabelWrapper(), 'visible');
1339
+ },
1340
+
1341
+ addImageAlternativeTextInputFieldText: (alternateTextForImage) => {
1342
+ thinkSpherePage.imageAlternativeTextInputField().type(alternateTextForImage);
1343
+ cy.wait(2000);
1344
+ },
1345
+
1346
+ verifyQuestionInstructionPreviewTexWrapperVisibility: (instructionText) => {
1347
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewTexWrapper(), 'visible');
1348
+ utilities.verifyInnerText(thinkSpherePage.questionInstructionPreviewTexWrapper(), instructionText);
1349
+ },
1350
+
1351
+ verifyQuestionInstructionPreviewImageWrapperVisibility: () => {
1352
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewImageWrapper(), 'visible');
1353
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 'visible');
1354
+ },
858
1355
  };
859
1356
 
860
1357
  const tests = {
1358
+ ...essayResponsePage.tests,
861
1359
  ...createQuestionBasePage.tests,
862
1360
  ...backgroundImageUploadComponent.tests,
863
1361
  ...questionInstructionsComponent.tests,
@@ -869,6 +1367,7 @@ const tests = {
869
1367
  ...studentViewSettingsLabelComponent.tests,
870
1368
  ...defaultToolDropdown.tests,
871
1369
  ...optionsWrapperComponent.tests,
1370
+ ...equationEditorFlyout.tests,
872
1371
 
873
1372
  /**
874
1373
  * Verifies the ThinkSphere cancel button functionality.
@@ -967,7 +1466,7 @@ const tests = {
967
1466
  utilities.verifyElementVisibilityState(thinkSpherePage.tooltipText(), 'notExist');
968
1467
  });
969
1468
  },
970
-
1469
+
971
1470
  /**
972
1471
  * Verifies the add option functionality.
973
1472
  * @param {string} list - The list to add the option to ('strategy' or other).
@@ -983,13 +1482,13 @@ const tests = {
983
1482
  initialOptionCount = count;
984
1483
  });
985
1484
  });
986
-
1485
+
987
1486
  thinkSpherePage.steps.addOption(list);
988
1487
  thinkSpherePage.planStrategySection()
989
1488
  .within(() => {
990
1489
  thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
991
1490
  thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter strategy name');
992
- });
1491
+ });
993
1492
  thinkSpherePage.steps.deleteOption(5);
994
1493
  } else {
995
1494
  thinkSpherePage.planSentenceStarterSection()
@@ -998,13 +1497,13 @@ const tests = {
998
1497
  initialOptionCount = count;
999
1498
  });
1000
1499
  });
1001
-
1500
+
1002
1501
  thinkSpherePage.steps.addOption(list);
1003
1502
  thinkSpherePage.planSentenceStarterSection()
1004
1503
  .within(() => {
1005
1504
  thinkSpherePage.steps.getOptionCount().should('eq', initialOptionCount + 1);
1006
1505
  thinkSpherePage.steps.verifyOptionsContents(initialOptionCount, '', 'Enter sentence starter name');
1007
- });
1506
+ });
1008
1507
  thinkSpherePage.steps.deleteOption(10);
1009
1508
  }
1010
1509
  });
@@ -1083,7 +1582,7 @@ const tests = {
1083
1582
  }
1084
1583
  });
1085
1584
  },
1086
-
1585
+
1087
1586
  /**
1088
1587
  * Verifies the drag handle tooltip.
1089
1588
  * @param {number} NthElement - The index of the drag handle.
@@ -1233,17 +1732,17 @@ const tests = {
1233
1732
  thinkSpherePage.steps.selectOption(list, 1);
1234
1733
  utilities.verifyCSS(
1235
1734
  utilities.getNthElement(thinkSpherePage.planStrategyCheckbox().find('svg'), 1), {
1236
- 'fill': css.color.uncheckedCheckbox,
1237
- 'width': '12px',
1238
- 'height': '12px',
1735
+ 'fill': css.color.uncheckedCheckbox,
1736
+ 'width': '12px',
1737
+ 'height': '12px',
1239
1738
  });
1240
1739
  } else {
1241
1740
  thinkSpherePage.steps.selectOption(list, 1);
1242
1741
  utilities.verifyCSS(
1243
1742
  utilities.getNthElement(thinkSpherePage.planSentenceStarterCheckbox().find('svg'), 1), {
1244
- 'fill': css.color.uncheckedCheckbox,
1245
- 'width': '12px',
1246
- 'height': '12px',
1743
+ 'fill': css.color.uncheckedCheckbox,
1744
+ 'width': '12px',
1745
+ 'height': '12px',
1247
1746
  });
1248
1747
  }
1249
1748
  });
@@ -1298,7 +1797,7 @@ const tests = {
1298
1797
  thinkSpherePage.steps.addOptionText(list, optionIndex, inputFieldText);
1299
1798
  });
1300
1799
  });
1301
-
1800
+
1302
1801
  it('When the user hovers over the disabled delete buttons of the options then \'Minimum one option is required\' message should be displayed on a tooltip and the tooltip should disappear if focus is removed from the delete button', () => {
1303
1802
  utilities.getNthElement(thinkSpherePage.deleteButton(), list === 'strategy' ? 0 : 5)
1304
1803
  .trigger('mouseover', { force: true });
@@ -1362,9 +1861,12 @@ const tests = {
1362
1861
  it('When user clicks on \'Reset to default\' button then the sentence starter list should be reset to default', () => {
1363
1862
  thinkSpherePage.planSentenceStarterListResetToDefault()
1364
1863
  .click();
1365
- optionList.forEach((option, index) => {
1366
- thinkSpherePage.steps.verifyOptionsContents(index, option, 'Enter sentence starter name');
1367
- });
1864
+ thinkSpherePage.planSentenceStarterSection()
1865
+ .within(() => {
1866
+ optionList.forEach((option, index) => {
1867
+ thinkSpherePage.steps.verifyOptionsContents(index, option, 'Enter sentence starter name');
1868
+ });
1869
+ })
1368
1870
  });
1369
1871
  }
1370
1872
  },
@@ -1501,7 +2003,7 @@ const tests = {
1501
2003
  utilities.verifyElementVisibilityState(thinkSpherePage.deleteVideoButton(), 'visible');
1502
2004
  });
1503
2005
  });
1504
-
2006
+
1505
2007
  it('CSS of edit video button and delete video button', { tags: 'css' }, () => {
1506
2008
  thinkSpherePage.videoLinkComponent().within(() => {
1507
2009
  utilities.verifyCSS(thinkSpherePage.editVideoButton(), {
@@ -1550,6 +2052,130 @@ const tests = {
1550
2052
  cy.checkAccessibility(thinkSpherePage.singleOptionTextFieldWrapper());
1551
2053
  });
1552
2054
  },
2055
+
2056
+ verifyErrorMessageCSSAndA11y: () => {
2057
+ it('CSS of error message', { tags: 'css' }, () => {
2058
+ utilities.verifyCSS(commonComponents.errorMessage(), {
2059
+ 'color': css.color.errorText,
2060
+ 'font-size': css.fontSize.small,
2061
+ 'font-weight': css.fontWeight.regular
2062
+ });
2063
+ });
2064
+
2065
+ it('Accessibility of error message', { tags: 'a11y' }, () => {
2066
+ cy.checkAccessibility(thinkSpherePage.nextGenThinkSphereCreateItemWrapper());
2067
+ });
2068
+ },
2069
+
2070
+ verifyQuestionAccordion: () => {
2071
+ it('Author should be able to expand and collapse the question accordion by clicking on the expand icon', () => {
2072
+ thinkSpherePage.filterSectionQuestionAccordion().each(($accordion) => {
2073
+ cy.wrap($accordion).find('.expansion-item-icon-wrapper').click();
2074
+ cy.wrap($accordion).should('have.class', 'Mui-expanded');
2075
+ });
2076
+
2077
+ thinkSpherePage.filterSectionQuestionAccordion().each(($accordion) => {
2078
+ cy.wrap($accordion).find('.expansion-item-icon-wrapper').click();
2079
+ cy.wrap($accordion).should('not.have.class', 'Mui-expanded');
2080
+ });
2081
+ });
2082
+ },
2083
+
2084
+ verifyCreateItemHeaderSection: () => {
2085
+ it('The page displays a unique Reference ID at the top left corner in the format "Ref ID:"', () => {
2086
+ utilities.verifyElementVisibilityState(thinkSpherePage.referenceIdWrapper(), 'visible');
2087
+ utilities.verifyInnerText(thinkSpherePage.referenceIdWrapper().children('div').first(), 'Ref ID:\u00A0');
2088
+ const initialRefId = thinkSpherePage.referenceIdWrapper().children('div').eq(1).invoke('text');
2089
+ initialRefId.then((refId) => {
2090
+ expect(refId).to.be.a('string').and.not.be.empty;
2091
+ cy.reload();
2092
+ thinkSpherePage.referenceIdWrapper().children('div').eq(1).invoke('text').should((newRefId) => {
2093
+ expect(newRefId).to.be.a('string').and.not.be.empty;
2094
+ expect(newRefId).to.not.equal(refId);
2095
+ });
2096
+ });
2097
+ });
2098
+
2099
+ it('Edit text box and edit icon pencil should exist, and on clicking the edit input field with placeholder \'Enter title\ should allow the user to add title', () => {
2100
+ utilities.verifyElementVisibilityState(thinkSpherePage.editBoxTextInput(), 'visible');
2101
+ thinkSpherePage.editBoxTextInput().blur();
2102
+ utilities.verifyElementVisibilityState(thinkSpherePage.editIconPencil(), 'visible');
2103
+ thinkSpherePage.editIconPencil().click();
2104
+ thinkSpherePage.editBoxTextInput().should('have.attr', 'placeholder', 'Enter title');
2105
+ thinkSpherePage.editBoxTextInput().type('Test Title');
2106
+ thinkSpherePage.editBoxTextInput().blur();
2107
+ utilities.verifyInnerText(thinkSpherePage.editBoxText(), 'Test Title');
2108
+ });
2109
+ },
2110
+
2111
+ verifyDefaultTab: () => {
2112
+ it('By default edit tab should be selected', () => {
2113
+ thinkSpherePage.editTab().should('have.class', 'Mui-selected');
2114
+ });
2115
+ },
2116
+
2117
+ /**
2118
+ * Verifies the functionality of editing, selecting, and unselecting strategies and sentence starters.
2119
+ * Ensures that changes are saved successfully and reflected in the preview section.
2120
+ *
2121
+ * @param {Object} sentenceStartersObject - The object containing strategies and sentence starters data.
2122
+ * @param {Array<string>} sentenceStartersObject.editedStrategies - The list of edited strategies to verify.
2123
+ * @param {Array<string>} sentenceStartersObject.editedSentenceStarters - The list of edited sentence starters to verify.
2124
+ * @param {Array<string>} sentenceStartersObject.selectStrategies - The list of strategies to select and verify.
2125
+ * @param {Array<string>} sentenceStartersObject.selectSentenceStarters - The list of sentence starters to select and verify.
2126
+ */
2127
+ verifyStrategiesAndSentenceStartersSection: (sentenceStartersObject) => {
2128
+ const {
2129
+ editedStrategies, editedSentenceStarters, selectStrategies, selectSentenceStarters
2130
+ } = sentenceStartersObject || {};
2131
+ it('When user edits the strategies and sentence starers, then the changes should be saved successfully and edited strategies and sentence starers should get displayed in preview side', () => {
2132
+ thinkSpherePage.steps.switchToEditTab();
2133
+ thinkSpherePage.steps.clickOnEditQuestionIcon();
2134
+ editedStrategies.forEach((strategy, index) => {
2135
+ thinkSpherePage.steps.addOptionText('strategy', index, strategy);
2136
+ });
2137
+ editedSentenceStarters.forEach((sentenceStarter, index) => {
2138
+ thinkSpherePage.steps.addOptionText('sentenceStarter', index, sentenceStarter);
2139
+ });
2140
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
2141
+ thinkSpherePage.steps.switchToPreviewTab();
2142
+ editedStrategies.forEach((label, index) => {
2143
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.strategyTextWrapper(), index), label);
2144
+ });
2145
+ thinkSpherePage.steps.expandChooseStarterDropdown();
2146
+ editedSentenceStarters.forEach((label, index) => {
2147
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
2148
+ });
2149
+ utilities.clickOnBody();
2150
+ });
2151
+
2152
+ it('When user select unselect the strategies and sentence starers, then the changes should be saved successfully and selected strategies and sentence starers should get displayed in preview side', () => {
2153
+ thinkSpherePage.steps.switchToEditTab();
2154
+ thinkSpherePage.steps.clickOnEditQuestionIcon();
2155
+ editedStrategies.forEach((strategy, index) => {
2156
+ if (!selectStrategies.includes(strategy)) {
2157
+ thinkSpherePage.steps.selectOption('strategy', index);
2158
+ }
2159
+ });
2160
+ cy.wait(2000);
2161
+ editedSentenceStarters.forEach((sentenceStarter, index) => {
2162
+ if (!selectSentenceStarters.includes(sentenceStarter)) {
2163
+ thinkSpherePage.steps.selectOption('sentenceStarter', index);
2164
+ }
2165
+ });
2166
+ cy.wait(2000);
2167
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
2168
+ thinkSpherePage.steps.switchToPreviewTab();
2169
+ selectStrategies.forEach((label, index) => {
2170
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.strategyTextWrapper(), index), label);
2171
+ });
2172
+ thinkSpherePage.steps.expandChooseStarterDropdown();
2173
+ selectSentenceStarters.forEach((label, index) => {
2174
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
2175
+ });
2176
+ utilities.clickOnBody();
2177
+ });
2178
+ },
1553
2179
  };
1554
2180
 
1555
2181
  export const thinkSpherePage = {