itemengine-cypress-automation 1.0.343 → 1.0.344-graph-and-chart-r2-8153722.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 (260) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  3. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +398 -0
  4. package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +329 -0
  5. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +260 -0
  6. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +368 -0
  7. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  13. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  14. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  15. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  16. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  17. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  18. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  19. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  20. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  21. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  22. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +0 -2
  23. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  24. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  25. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +1 -1
  26. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +3 -3
  27. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  28. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  29. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  30. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  31. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  32. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  33. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  34. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  35. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  36. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  37. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  38. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  39. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  40. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  41. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  42. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  43. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  44. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  45. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  46. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  47. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  48. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  49. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  50. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +1 -0
  51. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  52. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  53. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +1 -1
  64. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  65. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  66. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  67. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  68. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  69. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  70. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  71. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  72. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  73. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  74. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  75. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  76. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  77. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  78. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  79. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  80. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  81. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  82. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  83. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  84. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  85. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  86. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  87. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  88. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  89. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  90. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  91. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  92. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  93. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  94. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  95. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  96. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  97. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  98. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  99. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  100. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  101. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  102. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  103. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  104. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  105. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  106. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +2 -1
  107. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  108. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  109. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  110. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  111. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  112. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  113. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  114. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  115. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  116. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  117. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  118. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  119. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  120. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  121. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  122. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  123. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  124. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +226 -0
  125. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  126. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  127. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  128. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  129. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  130. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  131. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  132. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  133. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  134. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  135. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +4 -2
  136. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  137. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  138. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  139. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  140. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  141. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  142. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  143. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  144. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  145. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  146. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  147. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  148. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  149. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  150. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  151. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  152. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
  153. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  154. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  155. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  156. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  157. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  158. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  159. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  160. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  161. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  162. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +84 -0
  163. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +84 -0
  164. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +63 -0
  165. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -1
  166. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +2 -2
  167. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -2
  168. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -3
  169. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +62 -0
  170. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +62 -0
  171. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +63 -0
  172. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +0 -4
  173. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +0 -8
  174. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  175. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  176. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  177. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  178. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  179. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -2
  180. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  181. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +8 -6
  182. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  183. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  184. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  185. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
  186. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
  187. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
  188. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +185 -0
  189. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  190. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +289 -0
  191. package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
  192. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +581 -0
  193. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  194. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
  195. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +1 -1
  196. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  197. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  198. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  199. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  200. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  201. package/cypress/e2e/Sessions/scores.js +9 -5
  202. package/cypress/e2e/applitools.config.js +3 -3
  203. package/cypress/fixtures/theme/ilc.json +14 -1
  204. package/cypress/fixtures/uploads/sample.webm +0 -0
  205. package/cypress/fixtures/uploads/sample.wmv +0 -0
  206. package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
  207. package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
  208. package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
  209. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  210. package/cypress/pages/audioPlayerPage.js +22 -22
  211. package/cypress/pages/chartsBarPage.js +20 -0
  212. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  213. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  214. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  215. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +16 -28
  216. package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
  217. package/cypress/pages/components/browseItemsPage.js +998 -7
  218. package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
  219. package/cypress/pages/components/ckEditorEquationEditorComponent.js +4 -4
  220. package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
  221. package/cypress/pages/components/ckEditorLinkComponent.js +3 -3
  222. package/cypress/pages/components/commonComponents.js +8 -1
  223. package/cypress/pages/components/createQuestionBasePage.js +8 -1
  224. package/cypress/pages/components/defaultToolDropdown.js +7 -6
  225. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  226. package/cypress/pages/components/equationEditorSectionCommonComponent.js +13 -26
  227. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -3
  228. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -35
  229. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  230. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  231. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  232. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  233. package/cypress/pages/components/scoringSectionBaseEditTab.js +6 -4
  234. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  235. package/cypress/pages/desmosGeometryPage.js +184 -4
  236. package/cypress/pages/dialogBoxBase.js +2 -1
  237. package/cypress/pages/drawingResponsePage.js +16 -15
  238. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  239. package/cypress/pages/gradingViewPage.js +8 -0
  240. package/cypress/pages/graphingPage.js +27 -8
  241. package/cypress/pages/gridFillPage.js +15 -6
  242. package/cypress/pages/index.js +2 -1
  243. package/cypress/pages/listOrderingPage.js +32 -1
  244. package/cypress/pages/matchingPage.js +26 -7
  245. package/cypress/pages/multipleSelectionPage.js +10 -39
  246. package/cypress/pages/numberLineLabelPage.js +31 -8
  247. package/cypress/pages/numberLinePage.js +19 -7
  248. package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
  249. package/cypress/pages/singleSelectionPage.js +0 -37
  250. package/cypress/pages/textEntryMathPage.js +21 -0
  251. package/cypress/pages/thinkSpherePage.js +1874 -0
  252. package/cypress/pages/uploadResponsePage.js +2 -1
  253. package/cypress/pages/videoResponsePage.js +3 -0
  254. package/cypress/support/commands.js +7 -4
  255. package/cypress/support/e2e.js +1 -0
  256. package/cypress/support/helpers/createItem.js +1181 -1
  257. package/cypress/support/helpers/utilities.js +75 -1
  258. package/package.json +4 -4
  259. package/scripts/dataApi.mjs +3 -0
  260. package/scripts/sorry-cypress.mjs +13 -0
@@ -0,0 +1,185 @@
1
+ import { thinkSpherePage } from '../../../pages/thinkSpherePage';
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+
5
+ const editedStrategies = [
6
+ 'Edited strategy 1',
7
+ 'Edited strategy 2',
8
+ 'Edited strategy 3',
9
+ 'Edited strategy 4',
10
+ 'Edited strategy 5'
11
+ ];
12
+ const editedSentenceStarters = [
13
+ 'Edited sentence starter 1',
14
+ 'Edited sentence starter 2',
15
+ 'Edited sentence starter 3',
16
+ 'Edited sentence starter 4',
17
+ 'Edited sentence starter 5'
18
+ ];
19
+
20
+ const selectStrategies = [
21
+ 'Edited strategy 1',
22
+ 'Edited strategy 3',
23
+ 'Edited strategy 5'
24
+ ];
25
+ const selectSentenceStarters = [
26
+ 'Edited sentence starter 1',
27
+ 'Edited sentence starter 3',
28
+ 'Edited sentence starter 5'
29
+ ];
30
+
31
+ const newSelectedToolbarOptions = [
32
+ 'Text',
33
+ 'Highlighter',
34
+ 'Shapes',
35
+ 'Stamps',
36
+ 'Number bond',
37
+ 'Diagrams',
38
+ 'Number line',
39
+ 'Protractor',
40
+ 'Grids',
41
+ 'Equation editor',
42
+ 'Algebra tiles'
43
+ ];
44
+
45
+ const newSelectedControls = [
46
+ 'Move',
47
+ 'Undo',
48
+ 'Redo',
49
+ 'Clear all'
50
+ ];
51
+
52
+ const newDefaultSelectedToolDropdownValue = 'Text';
53
+
54
+ const whiteBoardImageOpacity = 50;
55
+
56
+ const alternateTextForImage = 'Alternative text for image';
57
+
58
+ const editedFontSize = 'Normal';
59
+
60
+ describe('Edit Question and edit item', () => {
61
+ before(() => {
62
+ cy.loginAs('admin');
63
+ cy.deleteThinkSphereItem('~zzz item name');
64
+ cy.createThinkSphereItem('~zzz item name');
65
+ thinkSpherePage.steps.visitThinksphereBrowseItemsPage();
66
+ });
67
+
68
+ describe('Edit question', () => {
69
+ abortEarlySetup();
70
+ it('When user edits the question instructions, then the changes should be saved successfully and edited question instruction should get displayed in preview side', () => {
71
+ thinkSpherePage.steps.clickOnEditThinkSphereItem();
72
+ thinkSpherePage.steps.clearQuestionInstructionsInputField();
73
+ thinkSpherePage.steps.addTextInQuestionInstructionsInputField('Edit question instructions');
74
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
75
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewTexWrapper(), 'visible');
76
+ utilities.verifyInnerText(thinkSpherePage.questionInstructionPreviewTexWrapper(), 'Edit question instructions');
77
+ });
78
+
79
+ it('When user edits the question instructions image, then the changes should be saved successfully and edited question instruction image should get displayed in preview side', () => {
80
+ thinkSpherePage.steps.clickOnEditQuestionIcon();
81
+ cy.wait(1000);
82
+ thinkSpherePage.steps.uploadFile('uploads/image.png');
83
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
84
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewImageWrapper(), 'visible');
85
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionPreviewImageExpandButton(), 'visible');
86
+ });
87
+
88
+ 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', () => {
89
+ thinkSpherePage.steps.clickOnEditQuestionIcon();
90
+ editedStrategies.forEach((strategy, index) => {
91
+ thinkSpherePage.steps.addOptionText('strategy', index, strategy);
92
+ });
93
+ cy.wait(2000);
94
+ editedSentenceStarters.forEach((sentenceStarter, index) => {
95
+ thinkSpherePage.steps.addOptionText('sentenceStarter', index, sentenceStarter);
96
+ });
97
+ cy.wait(2000);
98
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
99
+ editedStrategies.forEach((label, index) => {
100
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.strategyTextWrapper(), index), label);
101
+ });
102
+ thinkSpherePage.steps.expandChooseStarterDropdown();
103
+ editedSentenceStarters.forEach((label, index) => {
104
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
105
+ });
106
+ utilities.clickOnBody();
107
+ });
108
+
109
+ 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', () => {
110
+ thinkSpherePage.steps.clickOnEditQuestionIcon();
111
+ editedStrategies.forEach((strategy, index) => {
112
+ if(!selectStrategies.includes(strategy)){
113
+ thinkSpherePage.steps.selectOption('strategy', index);
114
+ }
115
+ });
116
+ cy.wait(2000);
117
+ editedSentenceStarters.forEach((sentenceStarter, index) => {
118
+ if(!selectSentenceStarters.includes(sentenceStarter)){
119
+ thinkSpherePage.steps.selectOption('sentenceStarter', index);
120
+ }
121
+ });
122
+ cy.wait(2000);
123
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
124
+ selectStrategies.forEach((label, index) => {
125
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.strategyTextWrapper(), index), label);
126
+ });
127
+ thinkSpherePage.steps.expandChooseStarterDropdown();
128
+ selectSentenceStarters.forEach((label, index) => {
129
+ utilities.verifyInnerText(utilities.getNthElement(thinkSpherePage.chooseStartersListOptionLabels(), index), label);
130
+ });
131
+ utilities.clickOnBody();
132
+ });
133
+
134
+ it('When user updates the solve phase toolbar options and controls, then it should get updated successfully', () => {
135
+ thinkSpherePage.steps.clickOnEditQuestionIcon();
136
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
137
+ thinkSpherePage.steps.selectTools(newSelectedToolbarOptions, 0);
138
+ thinkSpherePage.steps.selectTools(newSelectedControls, 1);
139
+ });
140
+
141
+ it('When user updates the solve phase default tool dropdown value, then it should get updated successfully', () => {
142
+ thinkSpherePage.steps.expandDefaultToolDropdown();
143
+ thinkSpherePage.steps.selectOptionFromDefaultToolDropdown(newDefaultSelectedToolDropdownValue);
144
+ });
145
+
146
+ it('When user updates the solve phase customize stamps, then it should get updated successfully', () => {
147
+ thinkSpherePage.steps.clickOnCustomizeStamp(1);
148
+ });
149
+
150
+ it('When user updates the solve phase whiteboard image and properties, then it should get updated and saved successfully', () => {
151
+ thinkSpherePage.steps.clickOnImageRadioButton();
152
+ thinkSpherePage.steps.uploadWhiteBoardImage('uploads/highlightImage.jpg');
153
+ thinkSpherePage.steps.addInputToOpacityInputField(whiteBoardImageOpacity);
154
+ thinkSpherePage.imageAlternativeTextInputField().type(alternateTextForImage);
155
+ cy.wait(2000);
156
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
157
+ });
158
+
159
+ it('When user updates solve phase data, then updated solve phase data should reflect to user when revisit to edit the question', () => {
160
+ thinkSpherePage.steps.visitThinksphereBrowseItemsPage();
161
+ thinkSpherePage.steps.clickOnEditThinkSphereItem();
162
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
163
+ thinkSpherePage.steps.verifySelectTools(newSelectedToolbarOptions, 0);
164
+ thinkSpherePage.steps.verifySelectTools(newSelectedControls, 1);
165
+ utilities.verifyInnerText(thinkSpherePage.defaultToolDropdown(), newDefaultSelectedToolDropdownValue);
166
+ thinkSpherePage.steps.verifyCustomizeStampSelectedUnselected(false, 1);
167
+ utilities.verifyElementCheckedNotCheckedState(thinkSpherePage.imageRadioInput(), 'checked');
168
+ thinkSpherePage.steps.verifyUploadedImage();
169
+ thinkSpherePage.steps.verifyCenterOptionAlignmentIsSelected();
170
+ thinkSpherePage.steps.verifyOpacitySliderValue(whiteBoardImageOpacity);
171
+ thinkSpherePage.steps.verifyOpacityInputFieldValue(whiteBoardImageOpacity);
172
+ utilities.verifyElementAttribute(thinkSpherePage.whiteBoardImage(), 'alt', alternateTextForImage);
173
+ });
174
+
175
+ it('When user edit the font size from additional settings, then edited font size should save successfully and edited data should reflect when user revisit to edit the question', () => {
176
+ thinkSpherePage.steps.expandAdditionalSettings();
177
+ thinkSpherePage.steps.selectFontSizeOptionFromFontSizeDropdown(editedFontSize);
178
+ thinkSpherePage.steps.saveAQuestionAndVerifySnackbar();
179
+ thinkSpherePage.steps.visitThinksphereBrowseItemsPage();
180
+ thinkSpherePage.steps.clickOnEditThinkSphereItem();
181
+ thinkSpherePage.steps.expandAdditionalSettings();
182
+ utilities.verifyInnerText(thinkSpherePage.fontSizeDropdown(), editedFontSize);
183
+ });
184
+ });
185
+ });
@@ -0,0 +1,417 @@
1
+ import { equationEditorCategoriesAndSymbols } from "../../../fixtures/equationEditorCategoriesAndSymbols ";
2
+ import { dialogBoxBase, thinkSpherePage } from "../../../pages";
3
+ import { commonComponents } from "../../../pages/components";
4
+ import { createCustomCategoryFlyout } from "../../../pages/components/createCustomCategoryFlyout";
5
+ import { equationEditorFlyout } from "../../../pages/components/equationEditorFlyout";
6
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
7
+ import utilities from "../../../support/helpers/utilities";
8
+ const css = Cypress.env('css');
9
+ const grepTags = Cypress.env('grepTags');
10
+
11
+ const allCategories = Object.keys(equationEditorCategoriesAndSymbols)
12
+ const customCategory = {
13
+ symbols: {
14
+ fraction: {
15
+ title: 'Fraction',
16
+ ariaLabel: 'fraction'
17
+ },
18
+ mixedFraction: {
19
+ title: 'Mixed Fraction',
20
+ ariaLabel: 'mixedfraction',
21
+ },
22
+ lessThan: {
23
+ title: 'Less Than',
24
+ ariaLabel: 'lessThan',
25
+ },
26
+ greaterThan: {
27
+ title: 'Greater Than',
28
+ ariaLabel: 'greaterThan',
29
+ },
30
+ questionMark: {
31
+ title: 'Question Mark',
32
+ ariaLabel: 'questionMark',
33
+ },
34
+ dollar: {
35
+ title: 'Dollar',
36
+ ariaLabel: 'dollar',
37
+ },
38
+ cents: {
39
+ title: 'Cents',
40
+ ariaLabel: 'cents',
41
+ },
42
+ degree: {
43
+ title: 'Degree',
44
+ ariaLabel: 'degree',
45
+ },
46
+ colonRation: {
47
+ title: 'Colon/Ratio',
48
+ ariaLabel: 'colonration',
49
+ },
50
+ groupInParathesis: {
51
+ title: 'Group In Parenthesis',
52
+ ariaLabel: 'groupinparathesis',
53
+ },
54
+ superscript: {
55
+ title: 'Upper Exponent',
56
+ ariaLabel: 'superscript',
57
+ },
58
+ subscript: {
59
+ title: 'Lower Exponent',
60
+ ariaLabel: 'subscript',
61
+ },
62
+ gamma: {
63
+ title: 'Gamma',
64
+ ariaLabel: 'gamma',
65
+ },
66
+ delta: {
67
+ title: 'Delta',
68
+ ariaLabel: 'delta',
69
+ }
70
+ }
71
+ }
72
+
73
+ describe('Create question page - Think Sphere: Create custom category', () => {
74
+ before(() => {
75
+ cy.loginAs('admin');
76
+ });
77
+
78
+ describe('Create custom category contents', { tags: 'smoke' }, () => {
79
+ abortEarlySetup();
80
+ before(() => {
81
+ thinkSpherePage.steps.navigateToThinkSphereCreateQuestion();
82
+ cy.barsPreLoaderWait();
83
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
84
+ thinkSpherePage.steps.selectCustomizedFormattingOption(['Equation editor']);
85
+ });
86
+
87
+ it('When user clicks on the \'Create custom category\' button a \'Custom category\' flyout should appear', () => {
88
+ createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
89
+ });
90
+
91
+ it('Title of the flyout should be \'Custom Category\'', () => {
92
+ utilities.verifyInnerText(createCustomCategoryFlyout.dialogBoxTitle(), 'Custom category');
93
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.dialogBoxTitle(), 'visible');
94
+ });
95
+
96
+ it('\'Category Name\' and \'Category Icon\' labels along with input fields should be displayed in the flyout. Their input fields should be blank by default', () => {
97
+ utilities.verifyInnerText(createCustomCategoryFlyout.categoryNameLabel(), 'Category name');
98
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.categoryNameLabel(), 'visible');
99
+ utilities.verifyInnerText(createCustomCategoryFlyout.categoryNameInputField(), '');
100
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.categoryNameInputField(), 'visible');
101
+ utilities.verifyInnerText(createCustomCategoryFlyout.categoryIconLabel(), 'Category icon');
102
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.categoryIconLabel(), 'visible');
103
+ utilities.verifyInnerText(createCustomCategoryFlyout.categoryIconInputField(), '');
104
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.categoryIconInputField(), 'visible');
105
+ });
106
+
107
+ it('\'Selected Symbols:\' label should be displayed in the flyout. By default, no symbols should be present under it', () => {
108
+ utilities.verifyInnerText(createCustomCategoryFlyout.selectedSymbolsLabel(), 'Selected symbols:');
109
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.selectedSymbols(), 'notExist');
110
+ });
111
+
112
+ it('\'Select the symbols to display to the students.\' help text should be displayed in the flyout', () => {
113
+ utilities.verifyInnerText(createCustomCategoryFlyout.selectSymbolsToDisplayLabel(), 'Select the symbols to display to the students.');
114
+ });
115
+
116
+ //Failing due to https://redmine.zeuslearning.com/issues/566948
117
+ it(`${allCategories} accordions except ${equationEditorCategoriesAndSymbols['numPad'].displayName} and ${equationEditorCategoriesAndSymbols['keyPad'].displayName} should be displayed with their respective labels and unchecked checkboxes.`, () => {
118
+ createCustomCategoryFlyout.steps.verifyCreateCustomCategoryAccordionLabelsAndDefaultCheckbox();
119
+ });
120
+
121
+ it(`By default, the ${equationEditorCategoriesAndSymbols['intermediate'].displayName} category accordion should be expanded and other all accordions should be in collapsed state`, () => {
122
+ for (let index = 2; index < allCategories.length; index++) {
123
+ if (allCategories[index] === 'intermediate') {
124
+ createCustomCategoryFlyout.steps.verifyCategoryAccordionIsExpanded(`${equationEditorCategoriesAndSymbols[allCategories[index]].displayName}`);
125
+ } else {
126
+ createCustomCategoryFlyout.steps.verifyCategoryAccordionIsCollapsed(`${equationEditorCategoriesAndSymbols[allCategories[index]].displayName}`);
127
+ }
128
+ };
129
+ });
130
+
131
+ it('\'Save\' button should be displayed in the flyout', () => {
132
+ utilities.verifyInnerText(thinkSpherePage.buttonSave(), 'Save');
133
+ utilities.verifyElementVisibilityState(thinkSpherePage.buttonSave(), 'visible');
134
+ });
135
+
136
+ allCategories.slice(2).forEach((categoryName) => {
137
+ it(`On clicking the ${equationEditorCategoriesAndSymbols[categoryName].displayName} category accordion the category should be expanded`, () => {
138
+ if (categoryName != 'intermediate') {
139
+ createCustomCategoryFlyout.steps.expandCategoryAccordion(`${equationEditorCategoriesAndSymbols[categoryName].displayName}`)
140
+ }
141
+ });
142
+
143
+ it(`The ${equationEditorCategoriesAndSymbols[categoryName].displayName} category accordion should display all the ${equationEditorCategoriesAndSymbols[categoryName].displayName} category Symbols. By default, all the symbols should be deselected`, () => {
144
+ const symbolsArray = Object.values(equationEditorCategoriesAndSymbols[categoryName].symbols)
145
+ createCustomCategoryFlyout.steps.verifySymbolsDisplayedInCustomCategoryFlyoutCategoryAccordion(`${equationEditorCategoriesAndSymbols[categoryName].displayName}`, symbolsArray)
146
+ });
147
+
148
+ it(`On clicking the expanded ${equationEditorCategoriesAndSymbols[categoryName].displayName} category accordion the category should collapse`, () => {
149
+ createCustomCategoryFlyout.steps.collapseCategoryAccordion(`${equationEditorCategoriesAndSymbols[categoryName].displayName}`);
150
+ });
151
+ });
152
+
153
+ it('\'Cancel\' button should be displayed. When user clicks on the \'Cancel\' button the flyout should close', () => {
154
+ utilities.verifyInnerText(thinkSpherePage.buttonCancel(), 'Cancel');
155
+ utilities.verifyElementVisibilityState(thinkSpherePage.buttonCancel(), 'visible');
156
+ thinkSpherePage.steps.clickOnCancelButton();
157
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.dialogBox(), 'notExist');
158
+ });
159
+
160
+ it('CSS of Custom category flyout', { tags: 'css' }, () => {
161
+ cy.log('Pre-step: Opening create custom category flyout');
162
+ createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
163
+ utilities.verifyCSS(createCustomCategoryFlyout.dialogBoxTitle(), {
164
+ 'color': css.color.flyoutTitle,
165
+ 'font-size': css.fontSize.heading,
166
+ 'font-weight': css.fontWeight.semibold
167
+ });
168
+ utilities.verifyCSS(createCustomCategoryFlyout.categoryNameLabel(), {
169
+ 'color': css.color.labels,
170
+ 'font-size': css.fontSize.normal,
171
+ 'font-weight': css.fontWeight.semibold
172
+ });
173
+ utilities.verifyCSS(createCustomCategoryFlyout.categoryIconLabel(), {
174
+ 'color': css.color.labels,
175
+ 'font-size': css.fontSize.normal,
176
+ 'font-weight': css.fontWeight.semibold
177
+ });
178
+ utilities.verifyCSS(createCustomCategoryFlyout.selectedSymbolsLabel(), {
179
+ 'color': css.color.labels,
180
+ 'font-size': css.fontSize.normal,
181
+ 'font-weight': css.fontWeight.semibold
182
+ });
183
+ utilities.verifyCSS(createCustomCategoryFlyout.selectSymbolsToDisplayLabel(), {
184
+ 'color': css.color.labels,
185
+ 'font-size': css.fontSize.normal,
186
+ 'font-weight': css.fontWeight.semibold
187
+ });
188
+ utilities.verifyCSS(utilities.getNthElement(createCustomCategoryFlyout.categoryAccordionLabel(), 0), {
189
+ 'color': css.color.accordionLabel,
190
+ 'font-size': css.fontSize.default,
191
+ 'font-weight': css.fontWeight.bold
192
+ });
193
+ utilities.verifyCSS(createCustomCategoryFlyout.buttonCancel(), {
194
+ 'color': css.color.secondaryBtn,
195
+ 'font-size': css.fontSize.default,
196
+ 'font-weight': css.fontWeight.semibold,
197
+ 'background-color': css.color.transparent
198
+ });
199
+ utilities.verifyCSS(createCustomCategoryFlyout.buttonSave(), {
200
+ 'color': css.color.successBtn,
201
+ 'font-size': css.fontSize.default,
202
+ 'font-weight': css.fontWeight.semibold,
203
+ 'background-color': css.color.successBtnBg
204
+ });
205
+ });
206
+
207
+ it('Accessibility of Custom category flyout', { tags: 'a11y' }, () => {
208
+ cy.checkAccessibility(createCustomCategoryFlyout.dialogBox())
209
+ });
210
+ });
211
+
212
+ if (!grepTags || !grepTags.includes('smoke')) {
213
+ describe('Category Checkbox validation cases', () => {
214
+ abortEarlySetup();
215
+ before(() => {
216
+ thinkSpherePage.steps.navigateToThinkSphereCreateQuestion();
217
+ cy.barsPreLoaderWait();
218
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
219
+ thinkSpherePage.steps.selectCustomizedFormattingOption(['Equation editor']);
220
+ createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
221
+ });
222
+
223
+ it('When user clicks on a symbol then that symbol should get selected and appear in the selected symbols region', () => {
224
+ createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`, `${equationEditorCategoriesAndSymbols.intermediate.symbols.upperExponent.ariaLabel}`);
225
+ createCustomCategoryFlyout.steps.verifySymbolIsDisplayedInSelectedSymbolsSection([`${equationEditorCategoriesAndSymbols.intermediate.symbols.upperExponent.ariaLabel}`]);
226
+ });
227
+
228
+ it('When user partially selects symbols from any category then that category\'s checkbox should be in partially checked state', () => {
229
+ createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`);
230
+ });
231
+
232
+ it('When user selects a symbol shared between two categories from any one of the categories then the symbol should get selected in the other category as well and the checkboxes should be partially checked', () => {
233
+ createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`, `${equationEditorCategoriesAndSymbols.intermediate.symbols.lowerExponent.ariaLabel}`);
234
+ createCustomCategoryFlyout.steps.verifySymbolIsSelectedInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['primary'].displayName}`, `${equationEditorCategoriesAndSymbols.primary.symbols.lowerExponent.ariaLabel}`);
235
+ //Verify checkboxes for both categories are partially selected
236
+ createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`);
237
+ createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['primary'].displayName}`);
238
+ });
239
+
240
+ it('When user selects the checkbox of a partially checked category then all the symbols from that category should appear in the \'Selected symbols:\' section', () => {
241
+ const selectedSymbolsArray = Object.values(Object.values(equationEditorCategoriesAndSymbols['intermediate'].symbols).map((icon) => icon.ariaLabel));
242
+ const symbolsArray = Object.values(equationEditorCategoriesAndSymbols['intermediate'].symbols)
243
+ cy.log('Open the Custom category flyout and partially select a category')
244
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`);
245
+ selectedSymbolsArray.forEach((selectedSymbol) => {
246
+ createCustomCategoryFlyout.steps.verifySymbolIsSelectedInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`, `${selectedSymbol}`);
247
+ });
248
+ createCustomCategoryFlyout.steps.verifySymbolIsDisplayedInSelectedSymbolsSection(selectedSymbolsArray);
249
+ });
250
+
251
+ it('When user unchecks the fully checked checkbox then all the symbols from that category as well as from the shared categories should get deselected and should not be displayed in \'Selected symbols:\' section', () => {
252
+ const keypadSymbolsArray = Object.values(Object.values(equationEditorCategoriesAndSymbols['intermediate'].symbols).map((icon) => icon.ariaLabel));
253
+ const basicSymbolsArray = Object.values(Object.values(equationEditorCategoriesAndSymbols['primary'].symbols).map((icon) => icon.ariaLabel));
254
+ createCustomCategoryFlyout.steps.uncheckCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`);
255
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.selectedSymbols(), 'notExist');
256
+ keypadSymbolsArray.forEach((selectedSymbol) => {
257
+ createCustomCategoryFlyout.steps.verifySymbolIsNotSelectedInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`, `${selectedSymbol}`);
258
+ });
259
+ basicSymbolsArray.forEach((selectedSymbol) => {
260
+ createCustomCategoryFlyout.steps.verifySymbolIsNotSelectedInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['primary'].displayName}`, `${selectedSymbol}`);
261
+ });
262
+ });
263
+
264
+ it('When user selects a unchecked category then the checkbox should be checked and all the symbols should be displayed in the \'Selected symbols:\' section', () => {
265
+ const greekSymbolsArray = Object.values(Object.values(equationEditorCategoriesAndSymbols['greek'].symbols).map((icon) => icon.ariaLabel));
266
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox('Greek Symbols')
267
+ createCustomCategoryFlyout.steps.verifySymbolIsDisplayedInSelectedSymbolsSection(greekSymbolsArray)
268
+ });
269
+
270
+ it('CSS of selected symbols', { tags: 'css' }, () => {
271
+ thinkSpherePage.steps.verifyCSSOfSelectedSymbols();
272
+ });
273
+
274
+ it('Accessibility of selected symbols', { tags: 'a11y' }, () => {
275
+ cy.checkAccessibility(createCustomCategoryFlyout.selectedSymbolsWrapper())
276
+ });
277
+
278
+ it('When user de-selects a symbol by clicking on it from the category accordion then that symbol should disappear from the Selected Symbols section. Also, it should get deselected from its respective category\'s accordion', () => {
279
+ createCustomCategoryFlyout.steps.expandCategoryAccordion(`${equationEditorCategoriesAndSymbols['greek'].displayName}`);
280
+ createCustomCategoryFlyout.steps.deselectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.alpha.ariaLabel}`);
281
+ createCustomCategoryFlyout.steps.verifySymbolIsNotDisplayedInSelectedSymbolsSection(equationEditorCategoriesAndSymbols.greek.symbols.alpha.ariaLabel);
282
+ });
283
+
284
+ it('If user selects all the symbols from within a category then the checkbox for that category should get checked and the symbols should be displayed in \'Selected symbols:\' section', () => {
285
+ createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.alpha.ariaLabel}`);
286
+ createCustomCategoryFlyout.steps.verifyCheckedStateOfCategoryAccordionCheckbox('Greek Symbols');
287
+ });
288
+
289
+ it('When a user de-selects a symbol by clicking on it from the \'Selected symbols:\' section then the symbol should get deselected from the category as well as the \'Selected symbols:\' section', () => {
290
+ createCustomCategoryFlyout.steps.deselectSymbolInSelectedSymbolsSection(`${equationEditorCategoriesAndSymbols.greek.symbols.varEpsilon.ariaLabel}`);
291
+ createCustomCategoryFlyout.steps.verifySymbolIsNotSelectedInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.varEpsilon.ariaLabel}`);
292
+ });
293
+
294
+ it('If all symbols are deselected from a category then the checkbox for that category should get unchecked', () => {
295
+ const otherSymbolsArray = Object.values(Object.values(equationEditorCategoriesAndSymbols['otherSymbols'].symbols).map((icon) => icon.ariaLabel));
296
+ cy.log('Pre step: Reopen the create custom category and select one category')
297
+ thinkSpherePage.steps.clickOnCancelButton();
298
+ createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
299
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox('Other Symbols');
300
+ createCustomCategoryFlyout.steps.expandCategoryAccordion('Other Symbols');
301
+ otherSymbolsArray.forEach((symbol) => {
302
+ createCustomCategoryFlyout.steps.deselectSymbolInSelectedSymbolsSection(symbol);
303
+ });
304
+ createCustomCategoryFlyout.steps.verifyUncheckedStateOfCategoryAccordionCheckbox('Other Symbols');
305
+ });
306
+ });
307
+ }
308
+
309
+ if (!grepTags || !grepTags.includes('smoke')) {
310
+ describe('Save a custom category', () => {
311
+ abortEarlySetup();
312
+ before(() => {
313
+ thinkSpherePage.steps.navigateToThinkSphereCreateQuestion();
314
+ cy.barsPreLoaderWait();
315
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
316
+ thinkSpherePage.steps.selectCustomizedFormattingOption(['Equation editor']);
317
+ createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
318
+ });
319
+
320
+ it('When user clicks on \'Save\' button without adding any Category name an error message \'Error: Category name is required.\' should appear ', () => {
321
+ thinkSpherePage.steps.saveCustomCategory();
322
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.dialogBox(), 'visible');
323
+ utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Category name is required.');
324
+ });
325
+
326
+ thinkSpherePage.tests.verifyErrorMessageCSSAndA11y()
327
+
328
+ it('When user adds a Category name the error message should disappear', () => {
329
+ createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Custom category without characters');
330
+ commonComponents.steps.verifyErrorMessageIsNotDisplayed();
331
+ });
332
+
333
+ it('When user clicks on \'Save\' button after adding Category name and has not selected any symbols then the category should be added to Equation Editor Section', () => {
334
+ thinkSpherePage.steps.saveCustomCategory();
335
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.dialogBox(), 'notExist');
336
+ thinkSpherePage.steps.verifyAddedCustomCategoryContainerIsDisplayed('Custom category without characters', '');
337
+ });
338
+
339
+ it('When user selects symbols and adds Category name then user should be able to save the category and the category should be added to Equation Editor Section', () => {
340
+ cy.log('Pre step: Click on create custom category button')
341
+ thinkSpherePage.steps.createCustomCategoryWithMultipleCategoryCharacters();
342
+ thinkSpherePage.steps.verifyAddedCustomCategoryContainerIsDisplayed('Custom category with name.', '');
343
+ });
344
+
345
+ it('When user selects symbols and adds Category name and Category Symbol then user should be able to save the category should be added to Equation Editor Section', () => {
346
+ cy.log('Pre step: Click on create custom category button')
347
+ thinkSpherePage.steps.createCustomCategoryWithNameAndIcon();
348
+ thinkSpherePage.steps.verifyAddedCustomCategoryContainerIsDisplayed('Custom category with name and icon.', '#');
349
+ });
350
+
351
+ it('By default, the categories added by the user should be in selected state and should have an \'Delete Icon\' and \'Edit Icon\'', () => {
352
+ thinkSpherePage.steps.verifyAddedCustomCategoryContainerEditAndDeleteButtonDisplayed('Custom category without characters');
353
+ thinkSpherePage.steps.verifyAddedCustomCategoryContainerEditAndDeleteButtonDisplayed('Custom category with name.');
354
+ thinkSpherePage.steps.verifyAddedCustomCategoryContainerEditAndDeleteButtonDisplayed('Custom category with name and icon.');
355
+ });
356
+ });
357
+ }
358
+
359
+ if (!grepTags || !grepTags.includes('smoke')) {
360
+ describe('Create custom category: Edit category', () => {
361
+ abortEarlySetup();
362
+ before(() => {
363
+ thinkSpherePage.steps.navigateToThinkSphereCreateQuestion();
364
+ cy.barsPreLoaderWait();
365
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
366
+ thinkSpherePage.steps.selectCustomizedFormattingOption(['Equation editor'])
367
+ cy.log('Pre step: Add Category with Category Name and Icon')
368
+ thinkSpherePage.steps.createCustomCategoryWithNameAndIcon();
369
+ });
370
+
371
+ it('When user clicks on Edit button under an added Custom category, the Custom category flyout should open', () => {
372
+ thinkSpherePage.steps.editCategoryInEquationEditorSectionEditTab('Custom category with name and icon.');
373
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
374
+ utilities.verifyElementVisibilityState(createCustomCategoryFlyout.dialogBoxTitle(), 'visible');
375
+ utilities.verifyInnerText(createCustomCategoryFlyout.dialogBoxTitle(), 'Custom category');
376
+ });
377
+
378
+ it('The Category name and Category icon should be prefilled and selected symbols should be displayed', () => {
379
+ const symbolsArray = Object.values(Object.values(equationEditorCategoriesAndSymbols['geo'].symbols).map((icon) => icon.ariaLabel));
380
+ createCustomCategoryFlyout.steps.expandCategoryAccordion(`${equationEditorCategoriesAndSymbols['geo'].displayName}`);
381
+ symbolsArray.forEach((symbol) => {
382
+ createCustomCategoryFlyout.steps.verifySymbolIsSelectedInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['geo'].displayName}`, symbol)
383
+ });
384
+ createCustomCategoryFlyout.steps.verifyCustomCategoryNameInputField('Custom category with name and icon.');
385
+ createCustomCategoryFlyout.steps.verifyCategoryIconInputField('#');
386
+ createCustomCategoryFlyout.steps.verifySymbolIsDisplayedInSelectedSymbolsSection(symbolsArray);
387
+ });
388
+
389
+ it('When the user edits the Category name, Category Icon and selected symbols, then on clicking save the updated changes should be displayed in the Equation editor section', () => {
390
+ createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Edited category name');
391
+ createCustomCategoryFlyout.steps.addInputToCategoryIconInputField('@');
392
+ createCustomCategoryFlyout.steps.uncheckCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['geo'].displayName}`);
393
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['delimiters'].displayName}`);
394
+ thinkSpherePage.steps.saveCustomCategory();
395
+ thinkSpherePage.steps.verifyAddedCustomCategoryContainerIsDisplayed('Edited category name', '@');
396
+ });
397
+ });
398
+ }
399
+
400
+ if (!grepTags || !grepTags.includes('smoke')) {
401
+ describe('Delete Custom category', () => {
402
+ abortEarlySetup();
403
+ before(() => {
404
+ thinkSpherePage.steps.navigateToThinkSphereCreateQuestion();
405
+ cy.barsPreLoaderWait();
406
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
407
+ thinkSpherePage.steps.selectCustomizedFormattingOption(['Equation editor'])
408
+ cy.log('Pre step: Add Category with Category Name and Icon')
409
+ thinkSpherePage.steps.createCustomCategoryWithNameAndIcon();
410
+ });
411
+
412
+ it('When user clicks on Delete button below the added custom category then the category should be deleted from the Equation Editor section', () => {
413
+ thinkSpherePage.steps.deleteCustomCategoryInEquationEditorSectionEditTab('Custom category with name and icon.');
414
+ });
415
+ });
416
+ }
417
+ });