itemengine-cypress-automation 1.0.352 → 1.0.353-capture-image-c0b337c.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 (273) 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/editQuestion.smoke.js +2 -0
  22. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  23. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  24. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
  25. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  26. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  27. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  28. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
  29. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  30. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  31. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -4
  32. package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
  33. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
  34. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  35. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +62 -4
  36. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +119 -10
  37. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
  38. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  39. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  40. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  41. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
  42. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  43. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  44. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  45. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  46. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  47. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  48. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  49. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  50. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  51. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  52. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  53. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +2 -0
  54. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +1 -0
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +1 -1
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +2 -0
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +3 -3
  64. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  65. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  66. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  68. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +5 -10
  69. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  70. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +0 -5
  71. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -1
  72. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  73. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  74. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  75. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  76. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  77. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  78. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  79. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  80. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  81. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  82. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  83. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  84. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  85. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  86. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  87. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  88. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  89. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  90. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  91. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  92. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  93. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  94. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  95. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  96. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  97. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  98. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  99. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  100. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  101. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  102. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  103. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  104. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  105. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  106. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  107. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  108. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  109. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  110. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  111. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  112. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  113. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  114. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  115. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  116. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  117. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  118. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  119. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  120. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  121. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  122. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  123. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  124. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  125. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  126. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  127. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  128. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  129. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +227 -0
  130. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  131. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  132. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  133. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  134. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  135. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  136. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  137. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  138. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  139. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  140. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  141. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +5 -2
  142. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  143. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  144. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  145. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  146. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  147. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  148. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  149. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  150. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  151. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  152. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  153. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  154. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  155. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  156. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  157. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  158. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  159. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +35 -51
  160. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  161. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  162. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  163. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  164. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  165. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  166. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  167. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  168. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  169. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  170. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  171. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  172. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  173. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  174. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  175. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  176. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  177. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  178. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  179. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  180. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  181. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  182. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  183. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  184. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  185. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  186. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  187. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  188. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  189. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  190. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  191. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  192. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  193. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  194. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  195. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  196. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  197. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  198. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  199. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  200. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -1
  201. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  202. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +1 -1
  203. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  204. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  205. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +1 -1
  206. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +58 -4
  207. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +208 -13
  208. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +259 -9
  209. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  210. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
  211. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +409 -4
  212. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  213. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  214. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +39 -6
  215. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  216. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  217. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  218. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  219. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  220. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
  221. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  222. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  223. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  224. package/cypress/e2e/Sessions/scores.js +0 -5
  225. package/cypress/e2e/applitools.config.js +3 -3
  226. package/cypress/fixtures/theme/ilc.json +5 -1
  227. package/cypress/fixtures/uploads/sample.webm +0 -0
  228. package/cypress/fixtures/uploads/sample.wmv +0 -0
  229. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  230. package/cypress/pages/audioPlayerPage.js +47 -22
  231. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  232. package/cypress/pages/chartsBarPage.js +20 -0
  233. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  234. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  235. package/cypress/pages/components/backgroundImageUploadComponent.js +0 -1
  236. package/cypress/pages/components/browseItemsPage.js +109 -2
  237. package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
  238. package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
  239. package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
  240. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  241. package/cypress/pages/components/commonComponents.js +4 -0
  242. package/cypress/pages/components/createQuestionBasePage.js +14 -1
  243. package/cypress/pages/components/defaultToolDropdown.js +1 -1
  244. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  245. package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
  246. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +28 -0
  247. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +7 -7
  248. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -0
  249. package/cypress/pages/components/imageCanvasComponent.js +2 -2
  250. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  251. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  252. package/cypress/pages/components/scoringSectionBaseEditTab.js +5 -0
  253. package/cypress/pages/contentBlocksPage.js +2 -0
  254. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  255. package/cypress/pages/desmosGeometryPage.js +184 -4
  256. package/cypress/pages/drawingResponsePage.js +2 -0
  257. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  258. package/cypress/pages/gradingViewPage.js +8 -0
  259. package/cypress/pages/graphingPage.js +27 -8
  260. package/cypress/pages/gridFillPage.js +15 -6
  261. package/cypress/pages/listOrderingPage.js +32 -1
  262. package/cypress/pages/matchingPage.js +26 -7
  263. package/cypress/pages/multipleSelectionPage.js +10 -2
  264. package/cypress/pages/numberLineLabelPage.js +31 -8
  265. package/cypress/pages/numberLinePage.js +19 -7
  266. package/cypress/pages/textEntryMathPage.js +24 -1
  267. package/cypress/pages/thinkSpherePage.js +925 -47
  268. package/cypress/pages/uploadResponsePage.js +17 -1
  269. package/cypress/pages/videoResponsePage.js +3 -0
  270. package/cypress/support/commands.js +10 -1
  271. package/cypress/support/helpers/createItem.js +668 -19
  272. package/cypress/support/helpers/utilities.js +34 -1
  273. package/package.json +3 -3
@@ -2,6 +2,7 @@ import constants from "../fixtures/constants";
2
2
  import utilities from "../support/helpers/utilities";
3
3
  import { ckEditorToolbar, commonComponents, createQuestionBasePage, equationEditorFlyout, playbackControlsBaseComponent } from "./components";
4
4
  import { dialogBoxBase } from "./dialogBoxBase";
5
+ import { createItemPage } from "./createItemPage";
5
6
 
6
7
  const selectors = {
7
8
  ...playbackControlsBaseComponent,
@@ -14,11 +15,11 @@ const selectors = {
14
15
  uploadAudioFileUploadLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(0),
15
16
  uploadAudioFileNameLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(1),
16
17
  deleteAudioFileButton: () => cy.get('[aria-label="Delete"]'),
17
- sourceUrlLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(0),
18
- sourceUrlInputField: () => cy.get('input[aria-label="Source URL"]'),
18
+ sourceUrlLabel: () => cy.get('[class*="AudioPlayerFormstyles__TextFieldLabel"]').eq(0),
19
+ sourceUrlInputField: () => cy.get('[class*="AudioPlayerFormstyles__Text"] input[type="text"]'),
19
20
  uploadAudioChooseFileButton: () => cy.get('.choose-file-upload-button'),
20
21
  uploadAudioNoFileChosenLabel: () => cy.get('[aria-label="No file chosen"]').eq(0),
21
- uploadedFileNameLabel: () => cy.get('.selected-file').eq(0),
22
+ uploadedFileNameLabel: () => cy.get('[class*="AudioPlayerFormstyles__FileInputWrapper"] .selected-file-wrapper').eq(0),
22
23
  audioFileUploadProgressBar: () => cy.get('[class*="AudioPlayerstyles__ProgressBar-"]').eq(0),
23
24
  inputTypeFile: () => cy.get('input[type="file"]'),
24
25
  audioPlayerStyleLabel: () => cy.get('.player-style-label'),
@@ -28,7 +29,7 @@ const selectors = {
28
29
  standardStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="standard-toggle-button"] .ngie-toggle-button-label'),
29
30
  barStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="bar-toggle-button"] .ngie-toggle-button-label'),
30
31
  compactStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="compact-toggle-button"] .ngie-toggle-button-label'),
31
- compactPlayerOptionsLabel: () => cy.get('.options-label'),
32
+ compactPlayerOptionsLabel: () => cy.get('.compact-player-wrapper .options-label'),
32
33
  defaultPlayerOptionButton: () => cy.get('[data-ngie-testid="default-toggle-button"]'),
33
34
  textPlayerOptionButton: () => cy.get('[data-ngie-testid="text-toggle-button"]'),
34
35
  imagePlayerOptionButton: () => cy.get('[data-ngie-testid="image-toggle-button"]'),
@@ -45,28 +46,30 @@ const selectors = {
45
46
  customizePlayerLayoutProgressIndicatorButton: () => cy.get('[data-ngie-testid="progressbar-toggle-button"]'),
46
47
  customizePlayerLayoutToggleButtonLabel: () => cy.get('[class*="ToggleButtonMUI5style__ButtonLabelWrapper"]'),
47
48
  uncheckAllButton: () => cy.get('[class*="AudioPlayerstyles__UncheckButton"]'),
48
- uploadTranscriptFileLabel: () => cy.get('[class*="RadioGroupMUI5styles__RadioOptionContainer"] .ngie-radio-label').eq(2),
49
- uploadTranscriptFileRadioButton: () => cy.get('.ngie-radio-btn input').eq(2),
50
- typeInTranscriptLabel: () => cy.get('[class*="RadioGroupMUI5styles__RadioOptionContainer"] .ngie-radio-label').eq(3),
51
- typeInTranscriptRadioButton: () => cy.get('.ngie-radio-btn input').eq(3),
52
- transcriptInputField: () => cy.get('[role="textbox"][title="Transcript"]'),
53
- allowStudentsToDownloadAudioLabel: () => cy.get('[data-ngie-testid="allow-students-to-download-the-audio-checkbox"] .MuiFormControlLabel-label'),
54
- allowStudentsToDownloadAudioCheckbox: () => cy.get('[data-ngie-testid="allow-students-to-download-the-audio-checkbox"] input'),
55
- limitPlayAttemptsLabel: () => cy.get('[data-ngie-testid="limit-play-attempts-checkbox"] .MuiFormControlLabel-label'),
56
- limitPlayAttemptsCheckbox: () => cy.get('[data-ngie-testid="limit-play-attempts-checkbox"] input'),
49
+ uploadTranscriptFileLabel: () => cy.get('.upload-transcript-opt-label'),
50
+ uploadTranscriptFileRadioButton: () => cy.get('.upload-transcript-opt-label input'),
51
+ typeInTranscriptLabel: () => cy.get('.type-in-transcript-opt-label'),
52
+ typeInTranscriptRadioButton: () => cy.get('[aria-label="Type in transcript"][type="radio"]'),
53
+ transcriptInputField: () => cy.get('[title="Transcript"]'),
54
+ cKEditorTranscriptInputField: () => cy.get('textarea[aria-label="Transcript"]'),
55
+ ckEditorPlayAttemptsLimitInputField: () => cy.get('input[aria-label="Playback Limit"]'),
56
+ allowStudentsToDownloadAudioLabel: () => cy.get('.allow-students-to-download-audio .MuiFormControlLabel-label').eq(0),
57
+ allowStudentsToDownloadAudioCheckbox: () => cy.get('.allow-students-to-download-audio input'),
58
+ limitPlayAttemptsLabel: () => cy.get('.allow-students-to-download-audio .MuiFormControlLabel-label').eq(1),
59
+ limitPlayAttemptsCheckbox: () => cy.get('.allow-students-to-download-audio input').eq(1),
57
60
  playAttemptsLimitLabel: () => cy.get('.playback-limit-wrapper [class*="Label"]'),
58
- playAttemptsLimitInputField: () => cy.get('.playback-limit-wrapper input'),
61
+ playAttemptsLimitInputField: () => cy.get('.freeResponseAudioFormTextInput input'),
59
62
  studentViewSettingsLabel: () => cy.get('[class*="AudioPlayerstyles__TranscriptLabelWrapper"]').eq(0),
60
63
  audioOverviewLabel: () => cy.get('.additional-settings-label'),
61
64
  audioOverviewInputField: () => cy.get('[title="Description"]'),
62
- transcriptLabel: () => cy.get('.audio-resource-label-wrapper').eq(1),
65
+ transcriptLabel: () => cy.get('.freeResponseAudioFormTextInput .transcript-label'),
63
66
  uploadTranscriptUploadLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(2),
64
67
  uploadTranscriptFileNameLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(3),
65
68
  uploadTranscriptChooseFileButton: () => cy.get('.upload-audio-file-input-wrapper button').eq(1),
66
69
  uploadTranscriptNoFileChosenLabel: () => cy.get('[aria-label="No file chosen"]').eq(1),
67
- transcriptInputTypeFile: () => cy.get('input[type="file"]').eq(1),
68
- uploadedTranscriptFileNameLabel: () => cy.get('.selected-file').eq(1),
69
- transcriptFileUploadProgressBar: () => cy.get('[class*="AudioPlayerstyles__ProgressBar-"]').eq(1),
70
+ transcriptInputTypeFile: () => cy.get('.upload-transcript-file input[type="file"]'),
71
+ uploadedTranscriptFileNameLabel: () => cy.get('.upload-transcript-file .selected-file-wrapper'),
72
+ transcriptFileUploadProgressBar: () => cy.get('.audio-player-form-progressbar'),
70
73
  transcriptInputFieldLabel: () => cy.get('.additional-settings-label').eq(1),
71
74
  deleteTranscriptButton: () => cy.get('[aria-label*="Delete"]'),
72
75
 
@@ -125,6 +128,7 @@ const steps = {
125
128
  ...ckEditorToolbar.steps,
126
129
  ...equationEditorFlyout.steps,
127
130
  ...commonComponents.steps,
131
+ ...createItemPage.steps,
128
132
  /**
129
133
  * Uploads a file to the audio player by attaching the file located at the specified filePath.
130
134
  * @param {string} filePath - The file path to the file to be uploaded.
@@ -166,6 +170,13 @@ const steps = {
166
170
  .blur();
167
171
  },
168
172
 
173
+ enterTextInCKEditorTranscriptInputField: (text) => {
174
+ audioPlayerPage.cKEditorTranscriptInputField()
175
+ .type(text)
176
+ .blur();
177
+ },
178
+
179
+
169
180
  verifyTextInTranscriptInputField: (text) => {
170
181
  audioPlayerPage.transcriptInputField()
171
182
  .should('have.text', text);
@@ -706,6 +717,20 @@ const steps = {
706
717
  .type(value)
707
718
  },
708
719
 
720
+ /**
721
+ * Sets the playback limit value in the audio player's input field.
722
+ * @param {string|number} value - The value to set as the playback limit.
723
+ * @returns {void}
724
+ */
725
+ setCKEditorPlaybackLimit: (value) => {
726
+ audioPlayerPage.ckEditorPlayAttemptsLimitInputField()
727
+ .clear()
728
+ .type(value);
729
+ cy.wait(2000);
730
+ audioPlayerPage.ckEditorPlayAttemptsLimitInputField()
731
+ .blur();
732
+ },
733
+
709
734
  /**
710
735
  * Verify the playback limit help text in preview tab
711
736
  * @param {string|number} value - The value to set as the playback limit.
@@ -788,14 +813,14 @@ const steps = {
788
813
  audioPlayerPage.audioOverviewInputField()
789
814
  .find('[data-widget="ngie_equation"]')
790
815
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
791
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
816
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
792
817
  },
793
818
 
794
819
  verifyEquationInAudioOverviewPreviewTab: () => {
795
820
  audioPlayerPage.audioOverviewPreviewTab()
796
821
  .find('[role="math"]')
797
822
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
798
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
823
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
799
824
  },
800
825
 
801
826
  verifyLinkInAudioOverviewInputField: () => {
@@ -896,14 +921,14 @@ const steps = {
896
921
  audioPlayerPage.transcriptInputField()
897
922
  .find('[data-widget="ngie_equation"]')
898
923
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
899
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
924
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
900
925
  },
901
926
 
902
927
  verifyEquationInTranscriptPreviewTab: () => {
903
928
  audioPlayerPage.transcriptContentPreviewTab()
904
929
  .find('[role="math"]')
905
930
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
906
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
931
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
907
932
  },
908
933
 
909
934
  verifyLinkInTranscriptInputField: () => {
@@ -20,7 +20,7 @@ const selectors = {
20
20
  selectAManipulativeLabel: () => cy.get('[class*="SelectManipulativeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
21
21
  enterAShareCodeLabel: () => cy.get('[class*="EnterShareCodeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
22
22
  enterAShareCodeInputField: () => cy.get('[class*="EnterShareCodeWrapper"] input'),
23
- previewTabCanvas: () => cy.get('.canvas'),
23
+ previewTabCanvas: () => cy.get('.bcm-inner')
24
24
  }
25
25
 
26
26
  const steps = {
@@ -1306,6 +1306,26 @@ const steps = {
1306
1306
  verifyPenaltyPointsForEachIncorrectBar: (penaltyPoints) => {
1307
1307
  utilities.verifyInnerText(autoScoredScoringSectionMultiResponseType.penaltyPointsDetailsSectionAllottedPointsLabel(), `Penalty points for each incorrect bar: ${penaltyPoints}`);
1308
1308
  },
1309
+
1310
+ verifyAnswerStatusBannerNotExist: () => {
1311
+ chartsBarPage.correctIncorrectAnswerTextWrapper()
1312
+ .should('not.exist');
1313
+ },
1314
+
1315
+ verifyAnswerStatusBannerExist: () => {
1316
+ chartsBarPage.correctIncorrectAnswerTextWrapper()
1317
+ .should('be.visible');
1318
+ },
1319
+
1320
+ verifyCorrectAnswerSectionExist: () => {
1321
+ chartsBarPage.correctAnswersLabel()
1322
+ .should('be.visible');
1323
+ },
1324
+
1325
+ verifyCorrectAnswerSectionNotExist: () => {
1326
+ chartsBarPage.correctAnswersLabel()
1327
+ .should('not.exist');
1328
+ },
1309
1329
  }
1310
1330
 
1311
1331
  const tests = {
@@ -23,8 +23,8 @@ const selectors = {
23
23
  return cy.get('[aria-labelledby*="Font-Size-dropdown-label"] [role="option"]')
24
24
  }
25
25
  },
26
- fontSizeListOptionLabels: () => cy.get('[aria-labelledby="Font-Size-dropdown-label Font-Size-placeholder"] li[role="option"] .dropdown-label-text'),
27
- fontSizesLabels: () => cy.get('[aria-labelledby="Font-Size-dropdown-label Font-Size-placeholder"] li[role="option"] .dropdown-post-label-text'),
26
+ fontSizeListOptionLabels: () => cy.get('[aria-labelledby*="Font-Size-dropdown-label"] li[role="option"] .dropdown-label-text'),
27
+ fontSizesLabels: () => cy.get('[aria-labelledby*="Font-Size-dropdown-label"] li[role="option"] .dropdown-post-label-text'),
28
28
  }
29
29
 
30
30
  const steps = {
@@ -69,6 +69,7 @@ const steps = {
69
69
 
70
70
  expandFontSizeDropdown: () => {
71
71
  additionalSettingsPanel.fontSizeDropdown()
72
+ .trigger('mouseover')
72
73
  .click();
73
74
  }
74
75
  }
@@ -76,6 +76,7 @@ const steps = {
76
76
 
77
77
  expandPenaltyScoringDropdown: () => {
78
78
  autoScoredScoringSectionMultiResponseType.penaltyScoringDropdown()
79
+ .trigger('mouseover')
79
80
  .click();
80
81
  cy.wait(500);
81
82
  utilities.verifyElementVisibilityState(autoScoredScoringSectionMultiResponseType.penaltyScoringDropdownListOptions(), 'visible');
@@ -147,6 +148,7 @@ const steps = {
147
148
 
148
149
  expandRoundingDropdown: () => {
149
150
  autoScoredScoringSectionMultiResponseType.roundingDropdown()
151
+ .trigger('mouseover')
150
152
  .click();
151
153
  },
152
154
 
@@ -92,7 +92,6 @@ const tests = {
92
92
  verifyImageUploadFunctionality: (questionType = null) => {
93
93
  it('When the user adds the image file and file upload is inprogress, file name and progress bar should be displayed below \'File name\' label. Progress bar should disappear once file is uploaded and uploaded image should be displayed', () => {
94
94
  backgroundImageUploadComponent.steps.uploadFile('highlightImage.jpg');
95
- utilities.verifyElementVisibilityState(backgroundImageUploadComponent.uploadImageProgressBar(), 'visible');
96
95
  backgroundImageUploadComponent.steps.verifyFileNameLabel('highlightImage.jpg');
97
96
  if (!['graphing', 'grid fill', 'image highlight', 'thinkSphere'].includes(questionType)) {
98
97
  imageCanvasComponent.steps.verifyImageIsUploaded();
@@ -45,15 +45,24 @@ const selectors = {
45
45
  createItemButtonTypography: () => browseItemsPage.buttonCreateItem().find('.ngie-btn-typography'),
46
46
  createQuestionCancelButtonTypography: () => browseItemsPage.buttonCancelCreateQuestion().find('.ngie-btn-typography'),
47
47
  tableColumnHeaderBrowseItemWrapperDiv: (count) => browseItemsPage.tableColumnHeader(count).find('div.browse-item-component-wrapper div'),
48
+ rowItemTitle: () => cy.get('.browse-item-styled-link'),
49
+ previewModeWrapper: () => cy.get('.preview-mode-wrapper'),
50
+ saveButton: () => cy.get('.ngie-btn-typography').contains('save',{matchCase: false}),
51
+ cancelButton: () => cy.get('.ngie-btn-typography').contains('cancel',{matchCase: false}),
52
+ radioGroup: () => cy.get('.ngie-radio-group'),
53
+ studentViewRadioButton: () => cy.get('[class*="RadioGroupMUI5styles__RadioOptionContainer"]').eq(0),
54
+ gradingViewRadioButton: () => cy.get('[class*="RadioGroupMUI5styles__RadioOptionContainer"]').eq(1),
55
+ browseItemQuestionItem: () => cy.get('.browse-item-question-item')
48
56
  };
49
57
 
50
58
  const searchBarSelectors = {
51
- searchBar: () => cy.get('input[placeholder="Search by title, tags and content"]'),
59
+ searchBar: () => cy.get('input[placeholder*="Search by"]'),
52
60
  buttonClearSearch: () => cy.get('[data-at="clear-button"]'),
53
61
  buttonSearch: () => cy.get('button[aria-label="Search"]'),
54
62
  buttonSearchSVG: () => cy.get('button[aria-label="Search"]').find('svg'),
55
- mobileViewSearchBar: () => cy.get('input[placeholder="Search by title, tags and content"]'),
63
+ mobileViewSearchBar: () => cy.get('input[placeholder*="Search by title"]'),
56
64
  searchInputField: () => cy.get('.ngie-search input'),
65
+ searchBarParent: () => cy.get('input[placeholder*="Search by"]').parent(),
57
66
  };
58
67
 
59
68
  const mobileViewBrowsePageSelectors = {
@@ -107,6 +116,7 @@ const mobileViewBrowsePageSelectors = {
107
116
  return utilities.getNthElement(cy.get(`.filter-chip[aria-label*="${chip}"] button[aria-label*="Remove"]`), 0);
108
117
  },
109
118
  filterChipClearAll: () => cy.get('.filter-chip-clearall'),
119
+ itemTitleCell: () => cy.get('[class*=ItemTitleCellstyles__ItemCellWrapper]'),
110
120
  };
111
121
 
112
122
  const steps = {
@@ -962,6 +972,103 @@ const tests = {
962
972
  });
963
973
  });
964
974
  },
975
+
976
+ verifyBrowseItemsRowContent: () => {
977
+ it('Browse review items list row should have title, reference id, and question type', () => {
978
+ browseItemsPage.itemTitleCell().each(($item) => {
979
+ cy.wrap($item).within(() => {
980
+ cy.get('button.browse-item-styled-link').invoke('text').should('not.be.empty');
981
+ cy.get('.browse-item-question-text-container').contains('Ref ID:').should('exist'); // safer
982
+ cy.get('[class*=ItemTitleCellstyles__ReferenceId]').invoke('text').should('not.be.empty');
983
+ cy.get('.browse-item-label-text').contains('Type:').should('exist');
984
+ cy.get('.browse-item-question-item').invoke('text').should('not.be.empty');
985
+ });
986
+ });
987
+ });
988
+ },
989
+
990
+ verifyItemOpening: () => {
991
+ it('When the author clicks on the title of the item in the \'check your math\' browse item list page then the question preview for that item should be displayed along with cancel and save button, and student and grading view radio buttons', () => {
992
+ browseItemsPage.rowItemTitle().eq(0).click();
993
+ utilities.verifyElementVisibilityState(browseItemsPage.previewModeWrapper(), 'visible');
994
+ utilities.verifyElementVisibilityState(browseItemsPage.saveButton(), 'visible');
995
+ utilities.verifyElementVisibilityState(browseItemsPage.cancelButton(), 'visible');
996
+ utilities.verifyElementVisibilityState(browseItemsPage.radioGroup(), 'visible');
997
+ })
998
+
999
+ it('student radio button should be checked by default and author should be able to toggle between student and grading view radio buttons', () => {
1000
+ utilities.verifyElementVisibilityState(browseItemsPage.studentViewRadioButton(), 'exist');
1001
+ utilities.verifyElementVisibilityState(browseItemsPage.gradingViewRadioButton(), 'exist');
1002
+ browseItemsPage.studentViewRadioButton().should('have.class', 'radio-option-checked');
1003
+ browseItemsPage.gradingViewRadioButton().should('have.class', 'radio-option-not-checked');
1004
+ browseItemsPage.gradingViewRadioButton().click();
1005
+ browseItemsPage.studentViewRadioButton().should('have.class', 'radio-option-not-checked');
1006
+ browseItemsPage.gradingViewRadioButton().should('have.class', 'radio-option-checked');
1007
+ browseItemsPage.studentViewRadioButton().click();
1008
+ browseItemsPage.studentViewRadioButton().should('have.class', 'radio-option-checked');
1009
+ browseItemsPage.gradingViewRadioButton().should('have.class', 'radio-option-not-checked');
1010
+ browseItemsPage.cancelButton().click();
1011
+ });
1012
+ },
1013
+
1014
+ verifyFilterSelectionInList: (categories) => {
1015
+ it('When the author checks the \'multiple choice selection\' checkbox then only multiple choice question (single selection and multiple selection) should be displayed on the question list.', () => {
1016
+ browseItemsPage.steps.clickOnFilterCategoryCheckbox(categories[0]);
1017
+ cy.pageLoadWait();
1018
+ const allowedTypes = ['multiple selection','single selection'];
1019
+ browseItemsPage.browseItemQuestionItem().each(($item) => {
1020
+ cy.wrap($item)
1021
+ .invoke('text')
1022
+ .then((text) => {
1023
+ const trimmedText = text.trim();
1024
+ if (trimmedText === '' || trimmedText === ',' || /^,+$/.test(trimmedText)) {
1025
+ cy.log('Skipped invalid/empty item text:', trimmedText);
1026
+ return;
1027
+ }
1028
+ expect(allowedTypes).to.include(trimmedText.toLowerCase());
1029
+ });
1030
+ });
1031
+ });
1032
+ },
1033
+
1034
+ verifySupportedQuestionsInItemsList: (allowedFilterCategories) => {
1035
+ it('The items list page should display items for only the supported question types', () => {
1036
+ const allowedTypes = Object.values(allowedFilterCategories).flat();
1037
+ browseItemsPage.browseItemQuestionItem().each(($item) => {
1038
+ cy.wrap($item)
1039
+ .invoke('text')
1040
+ .then((text) => {
1041
+ const trimmedText = text.trim();
1042
+ if (trimmedText === '' || trimmedText === ',' || /^,+$/.test(trimmedText)) {
1043
+ cy.log('Skipped invalid/empty item text:', trimmedText);
1044
+ return;
1045
+ }
1046
+ expect(allowedTypes).to.include(trimmedText.toLowerCase());
1047
+ });
1048
+ });
1049
+ });
1050
+ },
1051
+
1052
+ verifyFirstPreviousNextPageButtons: () => {
1053
+ it('When user is on first page, previous button should be disabled and when the user is in last page, the next button should be disabled,', () => {
1054
+ browseItemsPage.buttonPrevious().should('have.attr', 'disabled');
1055
+ browseItemsPage.buttonNext().should('not.have.attr', 'disabled');
1056
+ utilities.getNthElement(browseItemsPage.paginationCountText(), 0)
1057
+ .invoke('text')
1058
+ .then((text) => {
1059
+ const totalItems = parseInt(text.split(' ').pop(), 10);
1060
+ const totalPages = Math.ceil(totalItems / 20);
1061
+
1062
+ Cypress._.times(totalPages - 1, () => {
1063
+ browseItemsPage.steps.clickOnNextPageButton();
1064
+ cy.wait(500);
1065
+ });
1066
+ });
1067
+
1068
+ browseItemsPage.buttonNext().should('have.attr', 'disabled');
1069
+ browseItemsPage.buttonPrevious().should('not.have.attr', 'disabled');
1070
+ });
1071
+ }
965
1072
  };
966
1073
 
967
1074
  export const browseItemsPage = {
@@ -8,8 +8,9 @@ const selectors = {
8
8
  //Basic
9
9
  equationEditorIcon: () => cy.get('.cke_button__nextgeneqneditor_icon:visible'),
10
10
  equationEditorLabel: () => cy.get('[class*="EquationEditorstyles__Heading"]'),
11
- okButton: () => cy.get('.action-button').eq(0),
12
- cancelButton: () => cy.get('.action-button').eq(1),
11
+ okButton: () => cy.get('[title="OK"]'),
12
+ audioPlayerOkButton: () => cy.get('.save-action-btn-wrapper button').eq(0),
13
+ editorCancelButton: () => cy.get('[title="Cancel"]'),
13
14
  equationEditorPopUp: () => cy.get('[class*="EquationEditorstyles__EquationEditorContainer"]'),
14
15
  equationWrapper: () => cy.get('.cke_widget_ngie_equation [class*="NGMathJax"]'),
15
16
  equationInInputField: () => cy.get('[class*="ngie_latex"]').eq(0),
@@ -84,8 +85,8 @@ const steps = {
84
85
  return null;
85
86
  },
86
87
 
87
- clickOnCancelButton: () => {
88
- ckEditorEquationEditorComponent.cancelButton()
88
+ closeEquationEditor: () => {
89
+ ckEditorEquationEditorComponent.editorCancelButton()
89
90
  .click();
90
91
  },
91
92
 
@@ -15,7 +15,7 @@ const selectors = {
15
15
  imageInfoButton: () => cy.get('[title="Image Info"]'),
16
16
  uploadButton: () => cy.get('[title="Upload"]'),
17
17
  //Image Info
18
- urlLabel: () => cy.get('.dialog-input-label').eq(0),
18
+ imageUrlLabel: () => cy.get('.dialog-input-label').eq(0),
19
19
  urlInputField: () => cy.get('.cke_dialog_ui_input_text').eq(1),
20
20
  alternateTextLabel: () => cy.get('.dialog-input-label').eq(1),
21
21
  alternateTextInputField: () => cy.get('.cke_dialog_ui_input_text').eq(3),
@@ -37,7 +37,7 @@ const selectors = {
37
37
  fixedRadioLabel: () => cy.get('[class*="image-responsiveness-radio-wrapper"]').eq(4),
38
38
  //Alignment
39
39
  alignmentLabel: () => cy.get('.dialog-input-label').eq(7),
40
- alignmentDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(1),
40
+ alignmentDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(3),
41
41
  alignmentOptions: (alignment = null) => {
42
42
  if (alignment) {
43
43
  return cy.get(`[class*="cke_dialog_ui_input_select"] option[value="${alignment}"]`)
@@ -26,7 +26,7 @@ const selectors = {
26
26
 
27
27
  //Table Style
28
28
  tableStyleLabel: () => cy.get('.table_styles_header .cke_dialog_ui_html'),
29
- borderLabel: () => cy.get('.cke_dialog_ui_vbox_child').eq(26),
29
+ tableBorderLabel: () => cy.get('.cke_dialog_ui_vbox_child').eq(26),
30
30
  clearAllTableStyle: () => cy.get('.clear_all_table_styles'),
31
31
 
32
32
  //Borders
@@ -90,7 +90,7 @@ const selectors = {
90
90
  heightPxInput: () => cy.get('.cke_dialog_ui_input_text').eq(7),
91
91
 
92
92
  //Alignment, Caption and Summary
93
- alignmentLabel: () => cy.get('.dialog-input-label').eq(9),
93
+ tableAlignmentLabel: () => cy.get('.dialog-input-label').eq(9),
94
94
  alignmentDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(2),
95
95
  captionLabel: () => cy.get('.dialog-input-label').eq(10),
96
96
  captionInputField: () => cy.get('.cke_dialog_ui_input_text').eq(15),
@@ -358,7 +358,7 @@ const steps = {
358
358
  },
359
359
 
360
360
  scrollingDownToAlignmentLabel: () => {
361
- ckEditorInsertTableComponent.alignmentLabel()
361
+ ckEditorInsertTableComponent.tableAlignmentLabel()
362
362
  .scrollIntoView()
363
363
  },
364
364
 
@@ -12,7 +12,7 @@ const selectors = {
12
12
  linkLabel: () => cy.get('.dialog-header-label'),
13
13
  linkPopUpWrapper: () => cy.get('.custom-link-wrapper'),
14
14
  urlInQuestionInstruction: () => cy.get('[data-cke-saved-href*="https"]'),
15
- foxImageLinkUrlValueCheck: () => cy.get('[data-cke-saved-href*="https://cdn.pixabay.com/photo/2016/11/29/03/28/fox-1867062_960_720.jpg"]'),
15
+ foxImageLinkUrlValueCheck: () => cy.get('[href*="https://cdn.pixabay.com/photo/2016/11/29/03/28/fox-1867062_960_720.jpg"]'),
16
16
  urlInputField: () => cy.get('input[class*="cke_dialog_ui_input_text"]').eq(1),
17
17
  OkButton: () => cy.get('[title="OK"]'),
18
18
  //Link Info
@@ -24,8 +24,8 @@ const selectors = {
24
24
  linkTypeDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(0),
25
25
  protocolLabel: () => cy.get('.dialog-input-label').eq(2),
26
26
  protocolDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(1),
27
- urlLabel: () => cy.get('.dialog-input-label').eq(3),
28
- urlInputField: () => cy.get('.cke_dialog_ui_input_text').eq(3),
27
+ urlLabel: () => cy.get('.cke_dialog_ui_text .dialog-input-label').eq(1),
28
+ urlInputField: () => cy.get('.cke_dialog_ui_input_text input').eq(1),
29
29
  //Protocol
30
30
  protocolDropDown: () => cy.get('.dialog-input-area').eq(2),
31
31
  selectProtocolOptionDropdown: (protocolType = null) => {
@@ -55,8 +55,7 @@ const steps = {
55
55
 
56
56
  addURLInLinkPopUp: (text) => {
57
57
  ckEditorLinkComponent.urlInputField()
58
- .type(text, { delay: 0 })
59
- .blur();
58
+ .type(text, { delay: 0 });
60
59
  },
61
60
 
62
61
  addTextInDisplayText: (text) => {
@@ -72,7 +71,7 @@ const steps = {
72
71
 
73
72
  expandProtocolDropDown: () => {
74
73
  ckEditorLinkComponent.protocolDropDown()
75
- .click({force: true});
74
+ .click({ force: true });
76
75
  },
77
76
 
78
77
  selectProtocolType: (protocolType) => {
@@ -122,12 +121,12 @@ const steps = {
122
121
  doc.addEventListener('click', () => {
123
122
  setTimeout(function () { doc.location.reload() }, 5000);
124
123
  });
125
- ckEditorLinkComponent.foxImageLinkUrlValueCheckPreviewTab()
124
+ ckEditorLinkComponent.foxImageLinkUrlValueCheckPreviewTab()
126
125
  .click();
127
- cy.verifyDownload(fileName);
126
+ cy.verifyDownload(fileName);
128
127
  });
129
128
  },
130
-
129
+
131
130
 
132
131
  clickSendItToServerButton: () => {
133
132
  ckEditorLinkComponent.sendItToServerButton()
@@ -97,6 +97,10 @@ const steps = {
97
97
  utilities.verifyElementVisibilityState(commonComponents.tooltipText(), 'notExist');
98
98
  },
99
99
 
100
+ verifyErrorMessageDoesNotHaveText: () => {
101
+ commonComponents.errorMessage()
102
+ .should('not.have.text', 'Error:');
103
+ }
100
104
  }
101
105
 
102
106
  const tests = {
@@ -147,9 +147,22 @@ const steps = {
147
147
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
148
148
  });
149
149
  }
150
+ else if (field === 'Please select a file type') {
151
+ // Upload Response Select File Type Accordion
152
+ cy.get('.edit-question-edit-tab-wrapper .ngie-accordion-summary')
153
+ .within(() => {
154
+ utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
155
+ });
156
+ } else if (field === 'Please enter text block') {
157
+ // Content Block Body Label
158
+ cy.get('.options-label')
159
+ .within(() => {
160
+ utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
161
+ });
162
+ }
150
163
  })
151
164
  },
152
-
165
+
153
166
 
154
167
  clickOnEditQuestionButton: () => {
155
168
  createQuestionBasePage.editButton()
@@ -32,7 +32,7 @@ const steps = {
32
32
 
33
33
  const tests = {
34
34
  verifyDefaultToolDropdown:(toolOptionsArray, defaultTool)=>{
35
- const defaultSelectedTool = defaultTool || toolOptionsArray[0];
35
+ const defaultSelectedTool = defaultTool || toolOptionsArray[1];
36
36
  it(`\'Default tool\' label and dropdown should be displayed with \'${defaultSelectedTool}\' option selected by default`, () => {
37
37
  utilities.verifyInnerText(defaultToolDropdown.defaultToolDropdownLabel(), 'Default tool');
38
38
  utilities.verifyInnerText(defaultToolDropdown.defaultToolDropdown(), defaultSelectedTool);
@@ -23,9 +23,9 @@ const selectors = {
23
23
  }
24
24
 
25
25
  const steps = {
26
- openEditCategoryFlyout: () => {
26
+ openEditCategoryFlyout: (categoryName = 'general') => {
27
27
  essayResponsePage.equationEditorSectionCategories()
28
- .contains(`${equationEditorCategoriesAndSymbols['general'].displayName}`)
28
+ .contains(`${equationEditorCategoriesAndSymbols[categoryName].displayName}`)
29
29
  .parents('[id*="DraggableItem"]')
30
30
  .within(() => {
31
31
  essayResponsePage.equationEditorSectionCategoriesEditIcon()
@@ -252,50 +252,35 @@ const tests = {
252
252
  equationEditorFlyout.steps.verifyCategoryIsDisplayedInEquationEditor(`${equationEditorCategoriesAndSymbols['greek'].displayName}`);
253
253
  });
254
254
 
255
- it('On deselecting all the categories an error message should be displayed \'Error: Please select a category.\' and the preview tab Equation Editor flyout should be empty', () => {
256
- cy.log('Pre step: Switching to Edit tab')
255
+ it('On deselecting all the categories, an error message "Error: Please select a category." should be displayed, and the preview tab Equation Editor flyout should be empty', () => {
256
+ cy.log('Pre step: Switching to Edit tab');
257
257
  equationEditorSectionCommonComponent.steps.switchToEditTab();
258
258
  if (questionType == 'essay response') {
259
- //Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
259
+ // Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
260
260
  equationEditorSectionCommonComponent.steps.expandCustomizeFormattingOptionsAccordion();
261
261
  }
262
262
  equationEditorSectionCommonComponent.steps.selectingCategories([`${equationEditorCategoriesAndSymbols['intermediate'].displayName}`, `${equationEditorCategoriesAndSymbols['primary'].displayName}`, `${equationEditorCategoriesAndSymbols['general'].displayName}`, `${equationEditorCategoriesAndSymbols['common'].displayName}`, `${equationEditorCategoriesAndSymbols['algebra'].displayName}`, `${equationEditorCategoriesAndSymbols['geo'].displayName}`, `${equationEditorCategoriesAndSymbols['compare'].displayName}`, `${equationEditorCategoriesAndSymbols['matrices'].displayName}`, `${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols['keyPad'].displayName}`]);
263
- utilities.verifyInnerText(equationEditorSectionCommonComponent.selectACategoryErrorMessage(), 'Error: Please select a category.');
264
- cy.log('Switching to Preview tab')
263
+ utilities.verifyElementVisibilityState(equationEditorSectionCommonComponent.selectACategoryErrorMessage(), 'notExist');
264
+ cy.log('Switching to Preview tab');
265
265
  equationEditorSectionCommonComponent.steps.switchToPreviewTab();
266
266
  if (questionType == 'essay response') {
267
267
  equationEditorSectionCommonComponent.steps.selectPreviewTabToolbarOption('Equation Editor');
268
- }
269
- else {
268
+ } else {
270
269
  equationEditorSectionCommonComponent.steps.focusInResponseAnswerInputFieldPreviewTab(0);
271
270
  }
272
271
  utilities.verifyElementVisibilityState(equationEditorFlyout.dialogBox(), 'visible');
273
272
  utilities.verifyElementVisibilityState(equationEditorFlyout.categoryTabTitle(), 'notExist');
274
273
  utilities.verifyElementVisibilityState(equationEditorFlyout.categoryCharactersWrapper(), 'notExist');
275
- cy.log('Post step: Switching to Edit tab')
274
+ cy.log('Post step: Switching to Edit tab');
276
275
  equationEditorSectionCommonComponent.steps.switchToEditTab();
277
276
  if (questionType == 'essay response') {
278
- //Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
277
+ // Need to remove this once https://redmine.zeuslearning.com/issues/577356 is resolved
279
278
  equationEditorSectionCommonComponent.steps.expandCustomizeFormattingOptionsAccordion();
280
- };
281
- });
282
-
283
- //https://redmine.zeuslearning.com/issues/530205
284
- it('CSS of error message', { tags: 'css' }, () => {
285
- utilities.verifyCSS(equationEditorSectionCommonComponent.selectACategoryErrorMessage(), {
286
- 'color': css.color.errorText,
287
- 'font-size': css.fontSize.small,
288
- 'font-weight': css.fontWeight.regular
289
- });
290
- });
291
-
292
- it('Accessibility of error message', { tags: 'a11y' }, () => {
293
- cy.checkAccessibility(equationEditorSectionCommonComponent.selectACategoryErrorMessage());
279
+ }
294
280
  });
295
281
 
296
- it('When user selects any category then the error message should disappear', () => {
282
+ it('User should be able to select any category', () => {
297
283
  equationEditorSectionCommonComponent.steps.selectACategoryInEquationEditorSectionEditTab(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`);
298
- utilities.verifyElementVisibilityState(equationEditorSectionCommonComponent.selectACategoryErrorMessage(), 'notExist');
299
284
  });
300
285
  },
301
286