itemengine-cypress-automation 1.0.351-feature-thinkSphere-8768c9c.0 → 1.0.351-miscellaneous-questions-r3-b08db04.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 (282) hide show
  1. package/Dockerfile +1 -0
  2. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  3. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  4. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +49 -11
  5. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +4 -3
  6. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +4 -3
  7. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  13. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  14. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  15. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  16. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  17. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  18. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  19. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  20. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  21. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  22. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  23. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
  24. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  25. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  26. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  27. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
  28. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  29. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  30. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -4
  31. package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
  32. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
  33. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  34. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +62 -4
  35. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +119 -10
  36. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
  37. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  38. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  39. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  40. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
  41. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  42. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  43. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  44. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  45. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  46. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  47. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  48. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  49. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  50. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  51. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  52. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  53. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  54. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  55. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  56. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  57. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +1 -0
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  64. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  65. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  66. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  70. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  71. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  72. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  73. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  74. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +1 -1
  75. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  76. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  77. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  78. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  79. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  80. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  81. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  82. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  83. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  84. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  85. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  86. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  87. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  88. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  89. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  90. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  91. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  92. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  93. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  94. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  95. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  96. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  97. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  98. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  99. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  100. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  101. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  102. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  103. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  104. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  105. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  106. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  107. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  108. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  109. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  110. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  111. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  112. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  113. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  114. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  115. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  116. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  117. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  118. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  119. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  120. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  121. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  122. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  123. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  124. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  125. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  126. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  127. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  128. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  129. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  130. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  131. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  132. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  133. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  134. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  135. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  136. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +227 -0
  137. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  138. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  139. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  140. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  141. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  142. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  143. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  144. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  145. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  146. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  147. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  148. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +5 -2
  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/editTabBasicSections.js +35 -51
  167. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  168. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  169. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  170. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  171. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  172. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  173. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  174. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  175. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  176. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  177. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  178. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  179. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  180. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  181. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  182. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  183. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  184. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  185. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  186. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  187. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  188. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  189. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  190. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  191. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  192. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  193. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  194. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  195. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  196. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  197. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  198. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  199. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  200. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  201. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  202. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  203. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  204. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  205. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  206. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  207. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -1
  208. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  209. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +7 -5
  210. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  211. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  212. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +1 -1
  213. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +58 -4
  214. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +208 -13
  215. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +259 -9
  216. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  217. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
  218. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +409 -4
  219. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  220. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  221. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +39 -6
  222. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  223. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  224. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  225. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  226. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  227. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  228. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  229. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  230. package/cypress/e2e/Sessions/scores.js +8 -10
  231. package/cypress/e2e/applitools.config.js +3 -3
  232. package/cypress/fixtures/theme/ilc.json +5 -1
  233. package/cypress/fixtures/uploads/sample.webm +0 -0
  234. package/cypress/fixtures/uploads/sample.wmv +0 -0
  235. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  236. package/cypress/pages/audioPlayerPage.js +47 -22
  237. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  238. package/cypress/pages/chartsBarPage.js +20 -0
  239. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  240. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  241. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  242. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +16 -28
  243. package/cypress/pages/components/backgroundImageUploadComponent.js +0 -1
  244. package/cypress/pages/components/browseItemsPage.js +109 -2
  245. package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
  246. package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
  247. package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
  248. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  249. package/cypress/pages/components/commonComponents.js +4 -0
  250. package/cypress/pages/components/createQuestionBasePage.js +14 -1
  251. package/cypress/pages/components/defaultToolDropdown.js +1 -1
  252. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  253. package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
  254. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -3
  255. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -35
  256. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  257. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  258. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  259. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  260. package/cypress/pages/components/scoringSectionBaseEditTab.js +5 -0
  261. package/cypress/pages/contentBlocksPage.js +2 -0
  262. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  263. package/cypress/pages/desmosGeometryPage.js +184 -4
  264. package/cypress/pages/drawingResponsePage.js +6 -4
  265. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  266. package/cypress/pages/gradingViewPage.js +8 -0
  267. package/cypress/pages/graphingPage.js +27 -8
  268. package/cypress/pages/gridFillPage.js +15 -6
  269. package/cypress/pages/listOrderingPage.js +32 -1
  270. package/cypress/pages/matchingPage.js +26 -7
  271. package/cypress/pages/multipleSelectionPage.js +10 -39
  272. package/cypress/pages/numberLineLabelPage.js +31 -8
  273. package/cypress/pages/numberLinePage.js +19 -7
  274. package/cypress/pages/singleSelectionPage.js +0 -37
  275. package/cypress/pages/textEntryMathPage.js +24 -1
  276. package/cypress/pages/thinkSpherePage.js +925 -47
  277. package/cypress/pages/uploadResponsePage.js +2 -1
  278. package/cypress/pages/videoResponsePage.js +3 -0
  279. package/cypress/support/commands.js +0 -2
  280. package/cypress/support/helpers/createItem.js +668 -19
  281. package/cypress/support/helpers/utilities.js +34 -1
  282. package/package.json +2 -2
@@ -1,13 +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";
9
+ import { videoResponsePage } from "./videoResponsePage";
10
+ import { singleSelectionPage } from "./singleSelectionPage";
11
+ import { essayResponsePage } from "./essayResponsePage";
12
+ import { equationEditorCategoriesAndSymbols } from "../fixtures/equationEditorCategoriesAndSymbols ";
8
13
  const css = Cypress.env('css');
9
14
 
10
15
  const selectors = {
16
+ ...essayResponsePage,
11
17
  ...backgroundImageUploadComponent,
12
18
  ...questionInstructionsComponent,
13
19
  ...commonComponents,
@@ -20,10 +26,17 @@ const selectors = {
20
26
  ...equationEditorSectionCommonComponent,
21
27
  ...selectQuestionResourceToolPage,
22
28
  ...browseItemsPage,
29
+ ...videoResponsePage,
30
+ ...dialogBoxBase,
31
+ ...editCategoryFlyout,
32
+ ...createCustomCategoryFlyout,
33
+ ...createQuestionBasePage,
34
+
23
35
  editQuestionPencil: () => cy.get('[class*="Widgetstyles__HeaderContainer"] button.icon-pencil'),
24
36
  widgetHeaderQuestionTitle: () => cy.get('[class*="Widgetstyles__HeaderContainer"] [class*="Widgetstyles__QuestionTypeText"]'),
25
37
  imageUploadSection: () => cy.get('[class*="TabsComponentstyles__ImageUploadComponentWrapper"]'),
26
38
  addThinkSphereQuestionButton: () => cy.get('.ngie-btn-contained').contains('add ThinkSphere question'),
39
+ whiteBoardCanvasAndControls: () => cy.get('[class*="WhiteboardPagesstyles__WhiteboardPagesWrapper"]'),
27
40
  whiteBoardImageProperties: () => cy.get('[class*="WhiteBoardImagePropertiesstyles__ImagePropertiesWrapper"]'),
28
41
  whiteBoardImagePropertiesInputTypeFile: () => cy.get('[class*="WhiteBoardImagePropertiesstyles__ImagePropertiesWrapper"] input[type="file"]'),
29
42
  topLeftButton: () => utilities.getNthElement(cy.get('button[class*="WhiteBoardImagePropertiesstyles__StyledButton"]'), 0),
@@ -31,8 +44,15 @@ const selectors = {
31
44
  topRightButton: () => utilities.getNthElement(cy.get('button[class*="WhiteBoardImagePropertiesstyles__StyledButton"]'), 2),
32
45
  opacityLabel: () => utilities.getNthElement(cy.get('h2[class*="WhiteBoardImagePropertiesstyles__LayoutLabel"]'), 1),
33
46
  imageAlternativeTextLabel: () => cy.get('div[class*="InlineTextFieldWithDebouncestyles__PropertyLabel"]'),
34
- imageAlternativeTextInputField: () => cy.get('[class*="WhiteBoardImagePropertiesstyles__AltTextWrapper"] input'),
47
+ imageAlternativeTextInputField: () => cy.get('input.text-field'),
35
48
  imageRadioButton: () => cy.get('div[data-value="image"]'),
49
+ manageWhiteBoardTitle: () => cy.get('[class*="WhiteboardPagesstyles__HeadingLabel"]'),
50
+ whiteBoardPreviousButton: () => cy.get('[class*="whiteboard-pagination-prev-button"]'),
51
+ whiteBoardPageLabel: () => cy.get('[class*="WhiteboardPagesstyles__PageLabel"]'),
52
+ whiteBoardPageCounter: () => cy.get('[class*="WhiteboardPagesstyles__PageCounter"]'),
53
+ whiteBoardNextButton: () => cy.get('[class*="whiteboard-pagination-next-button"]'),
54
+ whiteBoardDeleteButton: () => cy.get('[class*="whiteboard-delete-page-button"]'),
55
+ whiteBoardAddNewPageButton: () => cy.get('[class*="whiteboard-add-new-page-button"]'),
36
56
  imageRadioInput: () => cy.get('div[data-value="image"] input[type="radio"]'),
37
57
  pageImageTitle: () => cy.get('div[class*="WhiteBoardImagePropertiesstyles__PageImageTitle"]'),
38
58
  radioGroupWrapper: () => cy.get('div[class*="ngie-radio-group-wrapper"]'),
@@ -60,7 +80,7 @@ const selectors = {
60
80
  planStrategyListResetToDefault: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="Planstyles__DefaultResetWrapper"]'),
61
81
  planStrategyAddItemButton: () => cy.get('[class*="Planstyles__StrategiesWrapper"] [class*="ListOptionsComponentstyles__AddItemWrapper"] [role="button"]'),
62
82
  planStrategyCheckbox: () => cy.get('[class*="Planstyles__StrategiesWrapper"] .thinksphere-option-text-field-wrapper [data-ngie-testid*="-checkbox"]'),
63
- videoLinkComponent: () => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'), 0),
83
+ videoLinkComponent: (nthElement = 0) => utilities.getNthElement(cy.get('[class*="ListOptionsComponentstyles__UploadVideoWrapper"]'), nthElement),
64
84
  uploadVideoLinkButton: () => cy.get('[class*="ListOptionsComponentstyles__UploadVideoTextWrapper"]'),
65
85
  planSentenceStarterSection: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"]'),
66
86
  planSentenceStarterListHeader: () => cy.get('[class*="Planstyles__SentenceFramesWrapper"] [class*="Planstyles__HeadingTextWrapper"]'),
@@ -71,13 +91,14 @@ const selectors = {
71
91
  solvePhaseAccordianLabel: () => cy.get('[class*="Solvestyles__AccordionLabel"]'),
72
92
  inputTypeVideoFile: () => cy.get('[class*="Planstyles__StrategiesWrapper"] input[type="file"]'),
73
93
  inputTypeFile: () => cy.get('[class*="TabsComponentstyles__ImageUploadComponentWrapper"] input[type="file"]'),
94
+ whiteBoardInputTypeFile: () => cy.get('[class*="UploadImagestyles__UploadWrapper"] input[type="file"]'),
74
95
  warningPopupTitle: () => cy.get('.dialog-title-wrapper'),
75
96
  warningPopupContentText: () => cy.get('.upload-question-preview-popup-error-msg'),
76
97
  warningPopupOkButton: () => cy.get('.upload-question-preview-popup-ok-btn'),
77
- editVideoButton: () => cy.get('[aria-label*="Edit video"]'),
98
+ editVideoButton: () => cy.get('[aria-label*="Change video"]'),
78
99
  deleteVideoButton: () => cy.get('[aria-label*="Delete video"]'),
79
100
  listInputField: () => cy.get('.option-component textarea[placeholder]'),
80
- deleteButton: () => cy.get('button[aria-label*="Delete item"]'),
101
+ deleteButton: () => cy.get('button[aria-label*="Delete"].ngie-icon-btn-cls'),
81
102
  optionNumeration: () => cy.get('[class*="MuiInputAdornment-positionStart"]'),
82
103
  iconPencil: () => cy.get('div[class*="icon-pencil"]'),
83
104
  iconXCircle: () => cy.get('div[class*="icon-x-circle"]'),
@@ -90,11 +111,12 @@ const selectors = {
90
111
  addCheckMathQuestionButton: () => cy.get('.ngie-btn-typography').contains(`Add 'Check your math' question`),
91
112
  firstAvailableItemLink: () => utilities.getNthElement(cy.get('.browse-item-styled-link'), 0),
92
113
  saveButton: () => cy.get('.ngie-btn-typography').contains('save',{matchCase: false}),
114
+ cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel',{matchCase: false}),
93
115
  AddCheckMathQuestionHeader: () => cy.get('.browse-title-wrapper').contains(`Add 'Check your math' question`),
94
116
  singleOptionTextFieldWrapper: () => cy.get('[class*="SingleOptionstyle__TextFieldWrapper"]'),
95
117
  customizeStampComponent: () => cy.get('[class*="CustomizeStampstyles__CustomizeStampWrapper"]'),
96
118
  customizeStampHeading: () => cy.get('[class*="CustomizeStampstyles__CustomizeStampHeading"]'),
97
- customizeStampCard: (ariaLabel) => cy.get(`[class*="CustomizeStampstyles__StampCard"]${ariaLabel ? ('[aria-label="' + ariaLabel + '"]') : ''}`),
119
+ customizeStampCard: (ariaLabel, checked) => cy.get(`[class*="CustomizeStampstyles__StampCard"]${ariaLabel ? ('[aria-label="' + ariaLabel + '"]') : ''}${checked ? ('[aria-checked="' + checked + '"]') : ''}`),
98
120
  customizeStampCardImg: (ariaLabel) => cy.get('[class*="CustomizeStampstyles__QuestionImage"]'),
99
121
  questionImage: () => cy.get('img[class*="QuestionImageComponentstyle__QuestionImage"]'),
100
122
  stampsToolButton: () => cy.get('#stamps button[aria-label*="Stamps"]'),
@@ -114,16 +136,96 @@ const selectors = {
114
136
  imageUploadSectionQuestionImageCrossIcon: () => thinkSpherePage.imageUploadSection().find('div[class*="QuestionImageComponentstyle__CrossIcon"]'),
115
137
  imageRadioButtonParentSvg: () => thinkSpherePage.imageRadioButton().parent().find('svg'),
116
138
  solvePhaseAccordionSvg: () => thinkSpherePage.solvePhaseAccordion().find('svg'),
117
- customizeToolsAndControlsSvg: () => thinkSpherePage.customizeToolsAndControls().find('svg'),
139
+ customizeToolsAndControlsPath: () => thinkSpherePage.customizeToolsAndControls().find('path'),
118
140
  solvePhaseToolsAndControlsOptionsTilesFeatherCheckIcon: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name="Icon feather-check"]'),
119
141
  solvePhaseToolsAndControlsOptionsTilesRectangle: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('[data-name*="Rectangle"]'),
120
142
  solvePhaseToolsAndControlsOptionsTilesDragItemFlexWrapperSvg: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('.drag-item-flex-wrapper svg'),
121
143
  solvePhaseToolsAndControlsOptionsTilesTextDragIconSvgPath: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Text').find('.drag-icon-button-custom-format svg path'),
122
- solvePhaseToolsAndControlsOptionsTilesArrayDragIconSvgPath: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Array').find('.drag-icon-button-custom-format svg path')
144
+ solvePhaseToolsAndControlsOptionsTilesArrayDragIconSvgPath: () => thinkSpherePage.solveToolsAndControlsOptionsTiles('Array').find('.drag-icon-button-custom-format svg path'),
145
+ playerTimer: () => cy.get('[class*="VideoPlayerstyles__PlayerTimerWrapper"]'),
146
+ strategiesPreviewHeader: () => cy.get('[class*="StrategiesPreviewstyles__HeadingWrapper"]'),
147
+ addNewStrategyButton: () => cy.get('[class*="StrategiesPreviewstyles__AddStrategyButton"]'),
148
+ strategiesInputBoxEditTab: () => cy.get('.video-upload-support-wrapper .edit-mcq-option-wrapper'),
149
+ strategiesBoxPreviewTab: () => cy.get('[class*="StrategiesPreviewstyles__ListWrapper"]'),
150
+ popupTitle: () => cy.get('[class*="dialog-title-wrapper"]'),
151
+ strategyNameLabel: () => cy.get('[class*="ThinkSpherePreviewstyles__StrategyNameTextWrapper"]'),
152
+ strategyNameInputField: () => cy.get('[class*="new-strategy-name-field"]'),
153
+ addStrategyPopupCancelButton: () =>
154
+ cy.get('.dialog-content').contains('Cancel'),
155
+ addStrategyPopupSaveButton: () =>
156
+ cy.get('.dialog-content').contains('Save'),
157
+ // preview tab plan section selection
158
+ questionInstructionPreviewTexWrapper: () => cy.get('.question-instruction.question-text-wrapper'),
159
+ questionInstructionPreviewImageWrapper: () => cy.get('[class*="ThinkSpherePreviewstyles__ImageWrapper"]'),
160
+ questionInstructionPreviewImageExpandButton: () => cy.get('[class*="ThinkSpherePreviewstyles__ExpandImageIconWrapper"]'),
161
+ questionInstructionImagePopup: () => cy.get('[class*="QuestionTextstyle__ImagePopupDiv"]'),
162
+ closeExpandImagePopupButton: () => cy.get('.close-popup-btn'),
163
+ PlanningPreviewWrapper : () => cy.get('[class*="PlanningPreviewstyles__PlanningPreviewWrapper"]'),
164
+ planningPreviewHeading: () => cy.get('[class*="PlanningPreviewstyles__HeadingWrapper"]'),
165
+ planningWriteWrapper : () => cy.get('[class*="PlanningPreviewstyles__WriteWrapper"]'),
166
+ problemAskingWrapper: () => cy.get('[class*="PlanningPreviewstyles__ProblemAskingWrapper"]'),
167
+ contentEditableDiv: () => cy.get('[class*="PlanningPreviewstyles__ContentEditableDiv"]'),
168
+ micIconWrapper: () => cy.get('[class*="PlanningPreviewstyles__MicIconWrapper"]'),
169
+ strategiesToPlanWrapper: () => cy.get('[class*="PlanningPreviewstyles__StrategiesToPlanWrapper"]'),
170
+ subheadingWrapper: () => cy.get('[class*="PlanningPreviewstyles__SubHeadingWrapper"]'),
171
+ writePlanWrapper: () => cy.get('[class*="PlanningPreviewstyles__WritePlanWrapper"]'),
172
+ strategyChipWrapper: () => cy.get('[class*="PlanningPreviewstyles__StrategyChipWrapper"]'),
173
+ strategyChip: () => cy.get('[class*="PlanningPreviewstyles__StrategyChip-"]'),
174
+ strategiesPreviewListLI: () => cy.get('[class*="StrategiesPreviewstyles__ListLI"]'),
175
+ chooseStarterLabel: () => cy.get('[class*="ThinkSpherePreviewstyles__DropDownLabel"]'),
176
+ chooseStarterDropdown: () => cy.get('[class*="drop-down-parent"]'),
177
+ chooseStarterTextIconWrapper: () => cy.get('[class*="DropDownstyles__StarterTextIconWrapper"]'),
178
+ chooseStartersListOptions: () => cy.get('.ngie-popover-container.dropdown-list-container li[role="option"]'),
179
+ chooseStartersListOptionLabels: () => cy.get('.ngie-popover-container.dropdown-list-container li[role="option"] .dropdown-label-text'),
180
+ starterTextWrapper: () => cy.get('.starter-text-wrapper'),
181
+ starterIocn: () => cy.get('[class*="DropDownstyles__StarterIconWrapper"]'),
182
+ addNewStrategyTextWrapper: () => cy.get('[class*="StrategiesPreviewstyles__AddStrategyTextWrapper"]'),
183
+ strategyTextWrapper: () => cy.get('[class*="StrategiesPreviewstyles__StrategyTextWrapper"]'),
184
+ videoIconWrapper: () => cy.get('[class*="StrategiesPreviewstyles__VideoIconWrapper"]'),
185
+ whiteBoardCanvas: () => cy.get('[class*="WhiteboardPagesstyles__Canvas"]'),
186
+ whiteBoardImage: () => cy.get('[class*="WhiteboardPagesstyles__BackgroundImage"]'),
187
+ videoPopupTitle: () => cy.get('[class*="dialog-title-wrapper"]'),
188
+ videoPopupCloseButton: () => cy.get('[class*="dialog-close-button"]'),
189
+ videoPreviewPopup: () => cy.get('[class*="video-preview-popup"]'),
190
+ gridItemsWrapper: (number) => cy.get('[class*="DragAndDropGridstyles__GridItemsWrapper"]').eq(number),
191
+ dragButton: (number) => cy.get('[type="button"]').eq(number),
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"]'),
123
225
  };
124
226
 
125
227
  const steps = {
126
- ...createQuestionBasePage.steps,
228
+ ...essayResponsePage.steps,
127
229
  ...backgroundImageUploadComponent.steps,
128
230
  ...questionInstructionsComponent.steps,
129
231
  ...scoringSectionBaseEditTab.steps,
@@ -138,6 +240,9 @@ const steps = {
138
240
  ...equationEditorSectionCommonComponent.steps,
139
241
  ...selectQuestionResourceToolPage.steps,
140
242
  ...browseItemsPage.steps,
243
+ ...videoResponsePage.steps,
244
+ ...createQuestionBasePage.steps,
245
+ ...createCustomCategoryFlyout.steps,
141
246
 
142
247
  /**
143
248
  * Navigates to the ThinkSphere create question page.
@@ -209,12 +314,24 @@ const steps = {
209
314
  cy.wait('@setItem');
210
315
  },
211
316
 
317
+ clickOnCancelButton: () => {
318
+ cy.interceptGraphql('setItem');
319
+ thinkSpherePage.cancelButton()
320
+ .click();
321
+ },
322
+
212
323
  clickOnSwapButton: () => {
213
324
  thinkSpherePage.ThinkSphereMathQuestionHeaderSwapIcon()
214
325
  .click();
215
326
  cy.wait(2000);
216
327
  },
217
328
 
329
+ clickOnEditButton: () => {
330
+ thinkSpherePage.ThinkSphereMathQuestionHeaderPencilIcon()
331
+ .click();
332
+ cy.wait(2000);
333
+ },
334
+
218
335
  clickOnDeleteButton: () => {
219
336
  thinkSpherePage.thinkSphereMathQuestionHeaderDeleteIcon()
220
337
  .click();
@@ -246,13 +363,32 @@ const steps = {
246
363
  cy.wait(4000);
247
364
  },
248
365
 
366
+ uploadWhiteBoardImage: (file) => {
367
+ thinkSpherePage.whiteBoardInputTypeFile()
368
+ .attachFile(file);
369
+ cy.wait(4000);
370
+ },
371
+
249
372
  /**
250
373
  * Uploads a video file.
251
374
  * @param {string} file - The file to upload.
252
375
  */
253
376
  uploadVideoFile: (file) => {
254
- thinkSpherePage.inputTypeVideoFile()
255
- .attachFile(file);
377
+ const fileName = file.split('/').pop(); // Extracts only 'sample.mp4'
378
+
379
+ cy.fixture(file, 'binary') // Read the file as binary
380
+ .then(Cypress.Blob.binaryStringToBlob)
381
+ .then((blob) => {
382
+ const fileObj = new File([blob], fileName, { type: 'video/mp4' });
383
+ const dataTransfer = new DataTransfer();
384
+ dataTransfer.items.add(fileObj);
385
+
386
+ thinkSpherePage.inputTypeVideoFile().then(($input) => {
387
+ $input[0].files = dataTransfer.files;
388
+ cy.wrap($input).trigger('change', { force: true });
389
+ });
390
+ });
391
+
256
392
  cy.wait(4000);
257
393
  },
258
394
 
@@ -278,11 +414,6 @@ const steps = {
278
414
  thinkSpherePage.addThinkSphereQuestionButton()
279
415
  .click();
280
416
  },
281
-
282
- navigateToThinkSphereCreateQuestion: () => {
283
- thinkSpherePage.steps.navigateToThinkSphereCreateItem();
284
- thinkSpherePage.steps.clickOnAddThinkSphereQuestion();
285
- },
286
417
 
287
418
  verifyCenterOptionAlignmentIsSelected: () => {
288
419
  thinkSpherePage.centerButton()
@@ -386,17 +517,7 @@ const steps = {
386
517
  thinkSpherePage.solveToolsAndControlsOptionsTiles(option)
387
518
  .should('have.attr', 'data-aria-pressed', 'false');
388
519
  },
389
- navigateToThinkSphereCreateItem: () => {
390
- cy.visit('/item-engine/thinksphere/create-item');
391
- },
392
- clickOnAddThinkSphereQuestion: () => {
393
- thinkSpherePage.addThinkSphereQuestionButton()
394
- .click();
395
- },
396
- navigateToThinkSphereCreateQuestion: () => {
397
- thinkSpherePage.steps.navigateToThinkSphereCreateItem();
398
- thinkSpherePage.steps.clickOnAddThinkSphereQuestion();
399
- },
520
+
400
521
  /**
401
522
  * Verifies the options contents.
402
523
  * @param {number} index - The index of the option.
@@ -477,7 +598,8 @@ const steps = {
477
598
  .click();
478
599
  } else {
479
600
  thinkSpherePage.planSentenceStarterAddItemButton()
480
- .click();
601
+ .click()
602
+ .trigger('mouseout', { force: true });
481
603
  }
482
604
  },
483
605
 
@@ -508,14 +630,14 @@ const steps = {
508
630
  .within(() => {
509
631
  utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
510
632
  .clear()
511
- .type(text);
633
+ .type(text, { delay: 500 });
512
634
  });
513
635
  } else {
514
636
  thinkSpherePage.planSentenceStarterSection()
515
637
  .within(() => {
516
638
  utilities.getNthElement(thinkSpherePage.listInputField(), optionCount)
517
639
  .clear()
518
- .type(text);
640
+ .type(text, { delay: 500 });
519
641
  });
520
642
  }
521
643
  },
@@ -550,7 +672,7 @@ const steps = {
550
672
  thinkSpherePage.customizeStampCard()
551
673
  .should('have.length', defaultStamps.length);
552
674
  defaultStamps.forEach((ele) => {
553
- utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampCard(`${ele} selected`), 'visible');
675
+ utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampCard(ele, 'true'), 'visible');
554
676
  });
555
677
  });
556
678
  },
@@ -575,9 +697,9 @@ const steps = {
575
697
  thinkSpherePage.customizeStampComponent()
576
698
  .within(() => {
577
699
  thinkSpherePage.steps.clickOnCustomizeCard(0);
578
- utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampCard('Stamp 1 not selected'), 'visible');
700
+ utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampCard('Stamp 1', 'false'), 'visible');
579
701
  thinkSpherePage.steps.clickOnCustomizeCard(0);
580
- utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampCard('Stamp 1 selected'), 'visible');
702
+ utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampCard('Stamp 1', 'true'), 'visible');
581
703
  });
582
704
  },
583
705
 
@@ -597,7 +719,7 @@ const steps = {
597
719
  utilities.verifyCSS(
598
720
  utilities.getNthElement(thinkSpherePage.customizeStampCard(), 0),
599
721
  {
600
- border: `1px solid ${css.color.figDefaultComponentBorder}`,
722
+ border: `1px solid ${css.color.secondaryBtnDisabled}`,
601
723
  },
602
724
  );
603
725
  utilities.getNthElement(thinkSpherePage.customizeStampCard(), 0)
@@ -609,18 +731,631 @@ const steps = {
609
731
  });
610
732
  });
611
733
  },
612
- createReviewQuestion: (questionType = 'Drawing Response') => {
734
+ createReviewQuestion: () => {
735
+ const questionType = 'single selection'
736
+ const options = ['Animal', 'Vehicle', 'Birds', 'Insects'];
613
737
  thinkSpherePage.steps.clickOnCreateItemButton();
614
738
  thinkSpherePage.steps.selectQuestionType(questionType);
739
+ singleSelectionPage.steps.addQuestionInstructions();
740
+ singleSelectionPage.steps.addInputToOptionsInputField(options);
741
+ singleSelectionPage.steps.allotPoints(20);
742
+ singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
615
743
  thinkSpherePage.steps.clickOnSaveButton();
616
744
  },
745
+
746
+ clickOnVideoLink: () => {
747
+ thinkSpherePage.videoLinkComponent()
748
+ .click();
749
+ },
750
+
751
+ verifyVideoPlaybackTimer: (elapsedTime, totalTime) => {
752
+ thinkSpherePage.playerTimer()
753
+ .should('have.text', `${elapsedTime}/${totalTime}`);
754
+ },
755
+
756
+ waitForPlaybackToBegin: () => {
757
+ thinkSpherePage.playerTimer()
758
+ .should('contain', '0:01/');
759
+ },
760
+
761
+ expandChooseStarterDropdown: () => {
762
+ thinkSpherePage.chooseStarterDropdown()
763
+ .click();
764
+ },
765
+
766
+ verifyOptionAlignmentIsSelected: (direction) => {
767
+ if(direction === 'topLeft') {
768
+ thinkSpherePage.whiteBoardCanvas()
769
+ .should('not.have.css', 'justify-content', 'start');
770
+ } else {
771
+ thinkSpherePage.whiteBoardCanvas()
772
+ .should('have.css', 'justify-content', (direction === 'center' || direction === 'flex-end') ? 'normal' : direction);
773
+ if (direction === 'center') {
774
+ thinkSpherePage.whiteBoardCanvas()
775
+ .should('have.css', 'align-items', 'normal');
776
+ }
777
+ }
778
+ },
779
+
617
780
  clickOnImageRadioButton: () => {
618
781
  thinkSpherePage.imageRadioButton()
619
782
  .click();
620
- }
783
+ },
784
+
785
+ clickOnEditQuestionIcon: () => {
786
+ utilities.getNthElement(thinkSpherePage.editQuestionPencil(), 0)
787
+ .click();
788
+ cy.wait(1000);
789
+ },
790
+
791
+ clickOnQuestionInstructionExpandImageButton: () => {
792
+ utilities.getNthElement(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 0)
793
+ .click();
794
+ },
795
+
796
+ clickOnCloseExpandImagePopupButton: () => {
797
+ thinkSpherePage.dialogBoxRoot()
798
+ .within(() => {
799
+ thinkSpherePage.closeExpandImagePopupButton()
800
+ .click();
801
+ });
802
+ },
803
+
804
+ clickOnStrategiesPreviewListLI: () => {
805
+ utilities.getNthElement(thinkSpherePage.strategiesPreviewListLI(), 1)
806
+ .click();
807
+ },
808
+
809
+ clickOnVideoIcon: () => {
810
+ utilities.getNthElement(thinkSpherePage.videoIconWrapper(), 0)
811
+ .click();
812
+ },
813
+
814
+ closeVideoPopup: () => {
815
+ thinkSpherePage.dialogBoxRoot()
816
+ .within(() => {
817
+ thinkSpherePage.buttonClose()
818
+ .click();
819
+ });
820
+ },
821
+
822
+ hoverOnVolumeControlButton: () => {
823
+ thinkSpherePage.volumeControlButton()
824
+ .realHover({ position: 'bottom' });
825
+ },
826
+
827
+ verifyPlaybackElapsedTime: (time) => {
828
+ const playbackTimeElement = thinkSpherePage.playerTimer();
829
+ playbackTimeElement
830
+ .invoke('text')
831
+ .then((text) => {
832
+ let elapsedTime = text.split('/')[0];
833
+ let currentElapsedTimerMinutes = Number(elapsedTime.split(':')[0]);
834
+ let currentElapsedTimerSeconds = Number(elapsedTime.split(':')[1]);
835
+ let currentTotalElapsedTimerSeconds = currentElapsedTimerMinutes * 60 + currentElapsedTimerSeconds;
836
+ expect(currentTotalElapsedTimerSeconds).to.eq(time);
837
+ });
838
+ },
839
+
840
+ getToolbarOptionCount: (number) => {
841
+ return thinkSpherePage.gridItemsWrapper(number).find('button').its('length');
842
+ },
843
+
844
+ selectTools: (array, number) => {
845
+ thinkSpherePage.steps.getToolbarOptionCount(number).then((count) => {
846
+ thinkSpherePage.gridItemsWrapper(number).within(() => {
847
+ for (let i = 0; i < count; i++) {
848
+ thinkSpherePage.dragButton(i)
849
+ .invoke('attr', 'aria-label')
850
+ .then((attr) => {
851
+ if (attr.includes('not-selected')) {
852
+ const toolName = attr.split(' ').slice(0, -1).join(' ');
853
+ if (array.includes(toolName)) {
854
+ thinkSpherePage.dragButton(i)
855
+ .click();
856
+ }
857
+ } else {
858
+ const toolName = attr.split(' ').slice(0, -1).join(' ');
859
+ if (!array.includes(toolName)) {
860
+ thinkSpherePage.dragButton(i)
861
+ .click();
862
+ }
863
+ }
864
+ })
865
+ }
866
+ });
867
+ });
868
+ },
869
+
870
+ verifySelectTools: (array, number) => {
871
+ thinkSpherePage.steps.getToolbarOptionCount(number).then((count) => {
872
+ thinkSpherePage.gridItemsWrapper(number).within(() => {
873
+ for (let i = 0; i < count; i++) {
874
+ thinkSpherePage.dragButton(i)
875
+ .invoke('attr', 'aria-label')
876
+ .then((attr) => {
877
+ const toolName = attr.split(' ').slice(0, -1).join(' ');
878
+ if (array.includes(toolName)) {
879
+ thinkSpherePage.dragButton(i)
880
+ .invoke('attr', 'aria-label')
881
+ .should('contain', ' selected');
882
+ } else {
883
+ thinkSpherePage.dragButton(i)
884
+ .invoke('attr', 'aria-label')
885
+ .should('contain', ' not-selected');
886
+ }
887
+ })
888
+ }
889
+ });
890
+ });
891
+ },
892
+
893
+ verifyUploadedImage: () => {
894
+ thinkSpherePage.whiteBoardImage()
895
+ .should('exist')
896
+ .and('have.attr', 'src')
897
+ .and('not.be.empty');
898
+ },
899
+
900
+ visitThinksphereBrowseItemsPage: () => {
901
+ cy.visit('/item-engine/thinksphere/browse-items');
902
+ cy.interceptGraphql('getItems');
903
+ cy.wait('@getItems');
904
+ },
905
+
906
+ clickOnCustomizeStamp: (customizeStampPosition) => {
907
+ thinkSpherePage.customizeStampsButton(customizeStampPosition)
908
+ .click();
909
+ cy.wait(1000);
910
+ },
911
+
912
+ verifyCustomizeStampSelectedUnselected: (selected, customizeStampPosition) => {
913
+ utilities.verifyElementAttribute(thinkSpherePage.customizeStampsButton(customizeStampPosition), 'aria-checked', selected ? 'true' : 'false');
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
+ },
621
1355
  };
622
1356
 
623
1357
  const tests = {
1358
+ ...essayResponsePage.tests,
624
1359
  ...createQuestionBasePage.tests,
625
1360
  ...backgroundImageUploadComponent.tests,
626
1361
  ...questionInstructionsComponent.tests,
@@ -632,6 +1367,7 @@ const tests = {
632
1367
  ...studentViewSettingsLabelComponent.tests,
633
1368
  ...defaultToolDropdown.tests,
634
1369
  ...optionsWrapperComponent.tests,
1370
+ ...equationEditorFlyout.tests,
635
1371
 
636
1372
  /**
637
1373
  * Verifies the ThinkSphere cancel button functionality.
@@ -916,7 +1652,7 @@ const tests = {
916
1652
 
917
1653
  it('when the user hovers over the enabled \'Delete\' icon buttons, then \'Delete option\' message should be displayed on a tooltip and the tooltip should disappear if focus is removed from the \'Delete\' icon button', () => {
918
1654
  utilities.getNthElement(thinkSpherePage.deleteButton(), NthElement)
919
- .verifyTooltip('Delete item for item 1');
1655
+ .verifyTooltip(list === 'strategy' ? 'Delete strategy' : 'Delete sentence starter');
920
1656
  });
921
1657
 
922
1658
  it('CSS of enabled delete button tooltip', { tags: 'css' }, () => {
@@ -1125,9 +1861,12 @@ const tests = {
1125
1861
  it('When user clicks on \'Reset to default\' button then the sentence starter list should be reset to default', () => {
1126
1862
  thinkSpherePage.planSentenceStarterListResetToDefault()
1127
1863
  .click();
1128
- optionList.forEach((option, index) => {
1129
- thinkSpherePage.steps.verifyOptionsContents(index, option, 'Enter sentence starter name');
1130
- });
1864
+ thinkSpherePage.planSentenceStarterSection()
1865
+ .within(() => {
1866
+ optionList.forEach((option, index) => {
1867
+ thinkSpherePage.steps.verifyOptionsContents(index, option, 'Enter sentence starter name');
1868
+ });
1869
+ })
1131
1870
  });
1132
1871
  }
1133
1872
  },
@@ -1163,8 +1902,8 @@ const tests = {
1163
1902
  thinkSpherePage.uploadVideoLinkButton()
1164
1903
  .click();
1165
1904
  });
1166
- thinkSpherePage.steps.uploadVideoFile('uploads/image.png');
1167
- thinkSpherePage.steps.verifyWarningPopup('File upload error', 'The file type is not supported. Please upload files with the following supported formats: mov, avi, mp4, webm, wmv.');
1905
+ thinkSpherePage.steps.uploadVideoFile('uploads/sample.wmv');
1906
+ thinkSpherePage.steps.verifyWarningPopup('File upload error', 'The file type is not supported. Please upload files with the following supported formats: mp4, webm.');
1168
1907
  });
1169
1908
 
1170
1909
  it('CSS of warning popup', { tags: 'css' }, () => {
@@ -1212,14 +1951,29 @@ const tests = {
1212
1951
  utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
1213
1952
  });
1214
1953
 
1215
- it('When user upload a file of size more than 10MB then an error message should be displayed', () => {
1954
+ it('When user upload a file whose extension is supported then no error message should be displayed', () => {
1216
1955
  thinkSpherePage.videoLinkComponent()
1217
1956
  .within(() => {
1218
1957
  thinkSpherePage.uploadVideoLinkButton()
1219
1958
  .click();
1220
1959
  });
1221
- thinkSpherePage.steps.uploadVideoFile('uploads/sample20MB.mp4');
1222
- thinkSpherePage.steps.verifyWarningPopup('File upload error', 'The file could not be uploaded. The file is 37 MB exceeding the maximum size of 10 MB.');
1960
+ thinkSpherePage.steps.uploadVideoFile('uploads/sample.webm');
1961
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
1962
+ thinkSpherePage.videoLinkComponent()
1963
+ .within(() => {
1964
+ thinkSpherePage.deleteVideoButton()
1965
+ .click();
1966
+ });
1967
+ });
1968
+
1969
+ it('When user upload a file of size more than 25MB then an error message should be displayed', () => {
1970
+ thinkSpherePage.videoLinkComponent()
1971
+ .within(() => {
1972
+ thinkSpherePage.uploadVideoLinkButton()
1973
+ .click();
1974
+ });
1975
+ thinkSpherePage.steps.uploadVideoFile('uploads/sample30MB.mp4');
1976
+ thinkSpherePage.steps.verifyWarningPopup('File upload error', 'The file could not be uploaded. The file is 31 MB exceeding the maximum size of 25 MB.');
1223
1977
  });
1224
1978
 
1225
1979
  it('When user click on OK button of warning popup then the popup should be closed', () => {
@@ -1230,7 +1984,7 @@ const tests = {
1230
1984
  utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
1231
1985
  });
1232
1986
 
1233
- it('When user upload a file of size less than 10MB then no error message should be displayed and video uploaded successfully', () => {
1987
+ it('When user upload a file of size less than 25MB then no error message should be displayed and video uploaded successfully', () => {
1234
1988
  thinkSpherePage.videoLinkComponent()
1235
1989
  .within(() => {
1236
1990
  thinkSpherePage.uploadVideoLinkButton()
@@ -1265,7 +2019,7 @@ const tests = {
1265
2019
  });
1266
2020
  });
1267
2021
 
1268
- it('When user upload another file size less than 10MB then no error message should be displayed and video uploaded successfully', () => {
2022
+ it('When user upload another file size less than 25MB then no error message should be displayed and video uploaded successfully', () => {
1269
2023
  thinkSpherePage.videoLinkComponent()
1270
2024
  .within(() => {
1271
2025
  thinkSpherePage.editVideoButton()
@@ -1298,6 +2052,130 @@ const tests = {
1298
2052
  cy.checkAccessibility(thinkSpherePage.singleOptionTextFieldWrapper());
1299
2053
  });
1300
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
+ },
1301
2179
  };
1302
2180
 
1303
2181
  export const thinkSpherePage = {