itemengine-cypress-automation 1.0.389-graphAndCharts-04d27f6.0 → 1.0.390-IEI-6314-testScriptForTextEntryMathValidations-dcad527.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 (319) hide show
  1. package/Dockerfile +1 -0
  2. package/cypress/e2e/GradingGridView/gradingGridView.js +156 -0
  3. package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +2 -0
  4. package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +4 -0
  5. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  6. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  7. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +3 -3
  8. package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +3 -3
  9. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +6 -6
  10. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +6 -6
  11. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/allOrNothingScoringForAllViews.smoke.js +356 -0
  12. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  13. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  14. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +27 -27
  15. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +37 -37
  16. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +37 -37
  17. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +37 -37
  18. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightBasic.js +26 -25
  19. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +39 -38
  20. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +31 -30
  21. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +35 -34
  22. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +247 -0
  23. package/cypress/e2e/ILC/ChartsBar/allOrNothingScoringForAllViews.smoke.js +287 -0
  24. package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +1 -1
  25. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  26. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  27. package/cypress/e2e/ILC/ChartsBar/specifyCorrectAnswerSection.js +92 -0
  28. package/cypress/e2e/ILC/ChartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePointsLocked.js +220 -0
  29. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +25 -26
  30. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +47 -47
  31. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +25 -25
  32. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +25 -25
  33. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightBasic.js +25 -25
  34. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +24 -23
  35. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +21 -20
  36. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +48 -46
  37. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +249 -0
  38. package/cypress/e2e/ILC/ChartsLine/allOrNothingScoringForAllViews.smoke.js +247 -0
  39. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
  40. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  41. package/cypress/e2e/ILC/ChartsLine/specifyCorrectAnswerSection.js +94 -0
  42. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -2
  43. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  44. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  45. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
  46. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  47. package/cypress/e2e/ILC/CkEditorEquationEditor/selectModeEditorBasic.js +4 -1
  48. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -3
  49. package/cypress/e2e/ILC/CkEditorInsertImage/insertImageBasicFile.js +2 -0
  50. package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +8 -8
  51. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
  52. package/cypress/e2e/ILC/CkEditorLink/linkPreview.js +2 -1
  53. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  54. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +63 -4
  55. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +116 -7
  56. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +3 -3
  57. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
  58. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +3 -3
  59. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
  60. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettingsForGroupedLayout.js +3 -0
  61. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +11 -3
  62. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  63. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -0
  64. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +1 -1
  65. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +3 -3
  66. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +7 -7
  67. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +15 -16
  68. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
  69. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +1 -1
  70. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +3 -3
  71. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  72. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabBasicSection.js +2 -2
  73. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +3 -3
  74. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
  75. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +1 -1
  76. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +4 -4
  77. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +4 -4
  78. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editQuestion.smoke.js +1 -1
  79. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +4 -0
  80. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  81. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +1 -1
  82. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +3 -3
  83. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  84. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  85. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  86. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  87. package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +213 -2
  88. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  89. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  90. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  91. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  92. package/cypress/e2e/ILC/Graphing/headerSection.js +37 -4
  93. package/cypress/e2e/ILC/Graphing/specifyCorrectAnswerSection.js +28 -0
  94. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  95. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +210 -0
  96. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +2 -2
  97. package/cypress/e2e/ILC/GridFill/headerSection.js +4 -4
  98. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  99. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  100. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  101. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  102. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  103. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  104. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  105. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +2 -1
  106. package/cypress/e2e/ILC/ImageHighlight/additionalSettingsBasic.js +1 -0
  107. package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +212 -0
  108. package/cypress/e2e/ILC/ImageHighlight/customiseHighlightStyle.js +29 -0
  109. package/cypress/e2e/ILC/ImageHighlight/editTabBasicSection.js +1 -1
  110. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +3 -3
  111. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  112. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  113. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  114. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  115. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +2 -4
  116. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  117. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +237 -1
  118. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  119. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +26 -0
  120. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  121. package/cypress/e2e/ILC/ListOrderingDropdown/manuallyAndNonScoredEditTab.js +2 -1
  122. package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +2 -4
  123. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +7 -12
  124. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +10 -14
  125. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  126. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +215 -0
  127. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  128. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +36 -9
  129. package/cypress/e2e/ILC/ListOrderingNew/manuallyAndNonScoredEditTab.js +2 -0
  130. package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +7 -23
  131. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  132. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  133. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  134. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  135. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +309 -0
  136. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  137. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  138. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  139. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +38 -3
  140. package/cypress/e2e/ILC/Matching/Scoring/blankResponseScoring.js +38 -41
  141. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  142. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  143. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  144. package/cypress/e2e/ILC/Matching/clickAndDrop.js +5 -5
  145. package/cypress/e2e/ILC/Matching/draggableOptions.js +7 -0
  146. package/cypress/e2e/ILC/Matching/editQuestion.smoke.js +3 -2
  147. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  148. package/cypress/e2e/ILC/Matching/headerSection.js +38 -12
  149. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  150. package/cypress/e2e/ILC/Matching/studentViewSettings.js +3 -1
  151. package/cypress/e2e/ILC/Matching/studentViewSettingsForGroupedLayout.js +1 -1
  152. package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +7 -6
  153. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsScoringBasic.js +6 -6
  154. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  155. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +2 -1
  156. package/cypress/e2e/ILC/MultipleSelection/editTabBasicSection.js +1 -1
  157. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +3 -3
  158. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  159. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabBasicSection.js +2 -2
  160. package/cypress/e2e/ILC/MultipleSelectionGridNew/headerSection.js +3 -3
  161. package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +100 -69
  162. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +1 -0
  163. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  164. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  165. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  166. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  167. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +213 -0
  168. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  169. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  170. package/cypress/e2e/ILC/NumberLine/headerSection.js +34 -4
  171. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +249 -0
  172. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  173. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  174. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  175. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  176. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +0 -1
  177. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +266 -0
  178. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  179. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  180. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -4
  181. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  182. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +268 -0
  183. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  184. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +186 -0
  185. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +4 -3
  186. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  187. package/cypress/e2e/ILC/SingleSelection/editTabBasicSection.js +1 -1
  188. package/cypress/e2e/ILC/SingleSelection/headerSection.js +2 -2
  189. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabBasicSection.js +2 -2
  190. package/cypress/e2e/ILC/SingleSelectionGridNew/headerSection.js +3 -3
  191. package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +101 -70
  192. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  193. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  194. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  195. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  196. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  197. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  198. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +9 -2
  199. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  200. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -1
  201. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  202. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  203. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  204. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  205. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  206. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  207. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  208. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +2 -2
  209. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  210. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  211. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  212. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  213. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  214. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  215. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  216. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  217. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  218. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +263 -0
  219. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +219 -0
  220. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  221. package/cypress/e2e/ILC/TextEntryMath/equationEditor.smoke.js +1 -1
  222. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +3 -3
  223. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +310 -1
  224. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +205 -1
  225. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  226. package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +263 -0
  227. package/cypress/e2e/ILC/TextEntryMathWithImage/backgroundImageAndCanvasProperties.js +0 -1
  228. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  229. package/cypress/e2e/ILC/TextSelection/additionalSettings.js +1 -0
  230. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +231 -0
  231. package/cypress/e2e/ILC/TextSelection/editTabBasicSection.js +2 -2
  232. package/cypress/e2e/ILC/TextSelection/headerSection.js +3 -3
  233. package/cypress/e2e/ILC/TextSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -0
  234. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +1 -0
  235. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +1 -1
  236. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +1 -1
  237. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
  238. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +2 -0
  239. package/cypress/e2e/ILC/ThinkSphere/gradingViewPlanTabSection.js +334 -0
  240. package/cypress/e2e/ILC/ThinkSphere/gradingViewReviewTabSection.js +140 -0
  241. package/cypress/e2e/ILC/ThinkSphere/gradingViewSolveTabSection.js +65 -0
  242. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +45 -5
  243. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +8 -8
  244. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +102 -0
  245. package/cypress/e2e/ILC/ThinkSphere/previewTabSolveSection.js +41 -0
  246. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +3 -3
  247. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  248. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +146 -0
  249. package/cypress/e2e/ILC/ThinkSphere/studentViewSolveSection.js +53 -0
  250. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  251. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  252. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  253. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
  254. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  255. package/cypress/e2e/ILC/chartsDotsPlot/allOrNothingForAllViews.smoke.js +248 -0
  256. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  257. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +27 -28
  258. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  259. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +24 -24
  260. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +39 -37
  261. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsBasic.js +22 -23
  262. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  263. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +25 -24
  264. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +31 -31
  265. package/cypress/e2e/ILC/chartsDotsPlot/scoring/toleranceThresholdScoring.js +18 -19
  266. package/cypress/e2e/ILC/chartsDotsPlot/specifyCorrectAnswerSection.js +96 -0
  267. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  268. package/cypress/e2e/Sessions/saveResponseScores.js +2 -2
  269. package/cypress/fixtures/thinkSphereWhiteboardTools.js +66 -0
  270. package/cypress/pages/audioPlayerPage.js +25 -0
  271. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  272. package/cypress/pages/chartsBarPage.js +45 -0
  273. package/cypress/pages/chartsDotPlotPage.js +25 -0
  274. package/cypress/pages/chartsLinePage.js +29 -2
  275. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -1
  276. package/cypress/pages/components/chartsCommonComponent.js +21 -2
  277. package/cypress/pages/components/ckEditorEquationEditorComponent.js +1 -0
  278. package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
  279. package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
  280. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  281. package/cypress/pages/components/colorPopupComponent.js +6 -0
  282. package/cypress/pages/components/createQuestionBasePage.js +19 -6
  283. package/cypress/pages/components/desmosToolComponent.js +1 -1
  284. package/cypress/pages/components/draggableOptionsSectionComponent.js +2 -0
  285. package/cypress/pages/components/equationEditorSectionCommonComponent.js +4 -4
  286. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +31 -3
  287. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +1 -1
  288. package/cypress/pages/components/gridQuestionCommonComponent.js +55 -2
  289. package/cypress/pages/components/imageCanvasComponent.js +11 -5
  290. package/cypress/pages/components/playbackControlsBaseComponent.js +6 -3
  291. package/cypress/pages/components/questionInstructionsComponent.js +2 -0
  292. package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
  293. package/cypress/pages/components/specifyRowsAndColumnsComponent.js +16 -0
  294. package/cypress/pages/contentBlocksPage.js +2 -0
  295. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  296. package/cypress/pages/desmosGeometryPage.js +184 -4
  297. package/cypress/pages/drawingResponsePage.js +9 -2
  298. package/cypress/pages/fillInTheGapsDragAndDropPage.js +3 -8
  299. package/cypress/pages/gradingGridViewPage.js +64 -0
  300. package/cypress/pages/graphingPage.js +28 -5
  301. package/cypress/pages/gridFillPage.js +24 -9
  302. package/cypress/pages/imageHighlightPage.js +115 -15
  303. package/cypress/pages/index.js +1 -0
  304. package/cypress/pages/listOrderingPage.js +46 -2
  305. package/cypress/pages/matchingPage.js +29 -10
  306. package/cypress/pages/numberLineLabelPage.js +26 -0
  307. package/cypress/pages/numberLinePage.js +15 -0
  308. package/cypress/pages/singleSelectionPage.js +30 -1
  309. package/cypress/pages/textEntryMathPage.js +29 -10
  310. package/cypress/pages/textSelectionPage.js +2 -2
  311. package/cypress/pages/thinkSpherePage.js +1118 -87
  312. package/cypress/pages/uploadResponsePage.js +17 -1
  313. package/cypress/pages/videoResponsePage.js +3 -0
  314. package/cypress/support/commands.js +9 -0
  315. package/cypress/support/helpers/createItem.js +22 -3
  316. package/cypress/support/helpers/utilities.js +14 -1
  317. package/package.json +1 -1
  318. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/checkAnswerFunctionalityForAllViews.js +0 -0
  319. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/editQuestion.smoke.js +0 -0
@@ -1649,6 +1649,31 @@ const steps = {
1649
1649
  utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'visible');
1650
1650
  }
1651
1651
  },
1652
+ /**
1653
+ * @param {Object<number, number>} responsePointsObject - An object where keys are indexes of the points fields and values are the points to be allotted.
1654
+ * @description Allots points to the enabled points input fields for each option in the scoring section based on the provided object.
1655
+ */
1656
+ allotPartialDifferentWeightsPoints: (responsePointsObject) => {
1657
+ Object.entries(responsePointsObject).forEach(([index, points]) => {
1658
+ const indexNumber = parseInt(index);
1659
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
1660
+ .eq(indexNumber)
1661
+ .should('not.be.disabled')
1662
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
1663
+ .eq(indexNumber)
1664
+ .clear()
1665
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
1666
+ .eq(indexNumber)
1667
+ .focus()
1668
+ .click()
1669
+ .type(`${points}`, { delay: 1000 });
1670
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
1671
+ .eq(indexNumber)
1672
+ .click()
1673
+ .blur()
1674
+ .should('have.value', points);
1675
+ });
1676
+ },
1652
1677
  }
1653
1678
 
1654
1679
  const tests = {
@@ -107,7 +107,7 @@ const steps = {
107
107
  * @param {number} pointIndex Index of the point to be locked
108
108
  */
109
109
  lockPoint: (pointIndex) => {
110
- utilities.hoverOverElement(utilities.getNthElement(chartsLinePage.selectChartTypePoint(), pointIndex))
110
+ utilities.triggerMouseover(utilities.getNthElement(chartsLinePage.selectChartTypePoint(), pointIndex))
111
111
  barAndLineChartComponent.barAndPointTooltipLockUnlockButton()
112
112
  .click();
113
113
  barAndLineChartComponent.barAndPointTooltipLockUnlockButton()
@@ -116,7 +116,9 @@ const steps = {
116
116
  .within(() => {
117
117
  utilities.verifyElementVisibilityState(chartsLinePage.pointLockIcon(), 'visible');
118
118
  });
119
+ // Instead of triggerMouseout (which is flaky due to overlays), use hoverAwayFromElement utility for reliability
119
120
  utilities.hoverAwayFromElement();
121
+ cy.wait(300); // Give time for tooltip to disappear
120
122
  },
121
123
 
122
124
  /**
@@ -545,7 +547,32 @@ const steps = {
545
547
  .clear()
546
548
  .type(text)
547
549
  .should('have.value', text);
548
- }
550
+ },
551
+ /**
552
+ * @param {Object<number, number>} responsePointsObject - An object where keys are indexes of the points fields and values are the points to be allotted.
553
+ * @description Allots points to the enabled points input fields for each option in the scoring section based on the provided object.
554
+ */
555
+ allotPartialDifferentWeightsPoints: (responsePointsObject) => {
556
+ Object.entries(responsePointsObject).forEach(([index, points]) => {
557
+ const indexNumber = parseInt(index);
558
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
559
+ .eq(indexNumber)
560
+ .should('not.be.disabled')
561
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
562
+ .eq(indexNumber)
563
+ .clear()
564
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
565
+ .eq(indexNumber)
566
+ .focus()
567
+ .click()
568
+ .type(`${points}`, { delay: 1000 });
569
+ autoScoredScoringSectionMultiResponseType.pointsInputField()
570
+ .eq(indexNumber)
571
+ .click()
572
+ .blur()
573
+ .should('have.value', points);
574
+ });
575
+ },
549
576
  }
550
577
 
551
578
  const tests = {
@@ -327,7 +327,11 @@ const tests = {
327
327
  });
328
328
 
329
329
  it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in disabled state', () => {
330
- utilities.verifyElementDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
330
+ if (questionType === 'list ordering') {
331
+ utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
332
+ } else {
333
+ utilities.verifyElementDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
334
+ }
331
335
  });
332
336
  },
333
337
 
@@ -21,6 +21,7 @@ const selectors = {
21
21
 
22
22
  //specify correct answer
23
23
  pointsInputField: () => cy.get('.ngie-accordion-detail .points-input-field input[type="text"]'),
24
+ pointsInputFieldForManualScoring: () => cy.get('.points-input-field input[type="text"]'),
24
25
  graphTitleSpecifyCorrectAnswer: () => cy.get('.ngie-accordion-detail .chart-top-wrapper .title-container'),
25
26
  xAxisLabelSpecifyCorrectAnswer: () => cy.get('.ngie-accordion-detail .chart-bottom-wrapper .title-container'),
26
27
 
@@ -31,7 +32,7 @@ const selectors = {
31
32
  previewTabGraphTitle: () => cy.get('[class*="question-preview-wrapper"] [class*="ChartsPreviewstyles__PreviewWrapper"] [class*="ChartsPreviewstyles__TopWrapper"] .title-container'),
32
33
  previewTabXAxisLabelButton: () => cy.get('[class*="question-preview-wrapper"] [class*="ChartsPreviewstyles__PreviewWrapper"] [class*="ChartsPreviewstyles__BottomWrapper"] .title-container'),
33
34
  tickIconWrapper: () => cy.get('[class*="tick-icon-wrapper"] svg'),
34
- chartsContainerPreviewTab: () => cy.get('[class*="question-preview-wrapper"] .chart-container'),
35
+ chartsContainerPreviewTab: () => cy.get('[class*="question-preview-wrapper"] .chart-container'),
35
36
  graphTitleCorrectAnswerSection: () => cy.get('[class*="question-preview-wrapper"] .chart-top-wrapper .title-container').eq(1),
36
37
  xAxisLabelCorrectAnswerSection: () => cy.get('[class*="question-preview-wrapper"] .chart-bottom-wrapper .title-container').eq(1),
37
38
  partialDifferentWeightsPointsInputFieldLabel: () => cy.get('[class*="Chartsstyles__PartialPointsWrapper"] .partial-points-input-label'),
@@ -122,6 +123,20 @@ const steps = {
122
123
  .blur();
123
124
  },
124
125
 
126
+ /**
127
+ * @description - Allots points in the scoring section for manual scoring.
128
+ * \@param {number} points - The points to be allotted.
129
+ */
130
+ allotPointsForManualScoring: (points) => {
131
+ chartsCommonComponent.pointsInputFieldForManualScoring()
132
+ .clear()
133
+ .type(`${points}`)
134
+ .wait(1000);
135
+ chartsCommonComponent.pointsInputFieldForManualScoring()
136
+ .should('have.value', points)
137
+ .blur();
138
+ },
139
+
125
140
  //Preview tab
126
141
  /**
127
142
  * @description edit x axis label in preview tab
@@ -257,7 +272,11 @@ const steps = {
257
272
  */
258
273
  verifyPartialEqualWeightsPointsPerResponseScore: (points) => {
259
274
  utilities.verifyInnerText(autoScoredScoringSectionMultiResponseType.partialEqualWeightsPointsPerResponseScore(), points);
260
- }
275
+ },
276
+ verifyPoints: (points) => {
277
+ chartsCommonComponent.pointsInputField()
278
+ .should('have.value', points);
279
+ },
261
280
  }
262
281
 
263
282
  const tests = {
@@ -9,6 +9,7 @@ const selectors = {
9
9
  equationEditorIcon: () => cy.get('.cke_button__nextgeneqneditor_icon:visible'),
10
10
  equationEditorLabel: () => cy.get('[class*="EquationEditorstyles__Heading"]'),
11
11
  okButton: () => cy.get('[title="OK"]'),
12
+ audioPlayerOkButton: () => cy.get('.save-action-btn-wrapper button').eq(0),
12
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,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),
@@ -23,7 +23,7 @@ const selectors = {
23
23
  widthInputField: () => cy.get('.cke_dialog_ui_input_text').eq(5),
24
24
  heightLabel: () => cy.get('.dialog-input-label').eq(3),
25
25
  heightInputField: () => cy.get('.cke_dialog_ui_input_text').eq(7),
26
- borderLabel: () => cy.get('[class="cke_dialog_ui_html"]').eq(2),
26
+ borderLabel: () => cy.get('.dialog-input-label').eq(4),
27
27
  borderInputField: () => cy.get('.cke_dialog_ui_input_text').eq(9),
28
28
  hSpaceLabel: () => cy.get('.dialog-input-label').eq(5),
29
29
  hSpaceInputField: () => cy.get('.cke_dialog_ui_input_text').eq(11),
@@ -36,7 +36,7 @@ const selectors = {
36
36
  fixedRadioButton: () => cy.get('[class*="image-responsiveness-radio-wrapper"]').eq(3),
37
37
  fixedRadioLabel: () => cy.get('[class*="image-responsiveness-radio-wrapper"]').eq(4),
38
38
  //Alignment
39
- alignmentLabel: () => cy.get('.dialog-input-label').eq(9),
39
+ alignmentLabel: () => cy.get('.dialog-input-label').eq(7),
40
40
  alignmentDropDown: () => cy.get('.cke_dialog_ui_input_select').eq(3),
41
41
  alignmentOptions: (alignment = null) => {
42
42
  if (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('[src*="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(0),
28
- urlInputField: () => cy.get('.cke_dialog_ui_input_text').eq(0),
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()
@@ -6,6 +6,7 @@ const selectors = {
6
6
  ...dialogBoxBase,
7
7
  colorBlock: () => cy.get('.color-picker-block'),
8
8
  colorSaturationPalette: () => cy.get('.react-colorful__saturation'),
9
+ alphaPicker : () => cy.get('.react-colorful__alpha'),
9
10
  colorSaturationPicker: () => cy.get('.react-colorful__saturation-pointer .react-colorful__pointer-fill'),
10
11
  colorHuePalette: () => cy.get('.react-colorful__hue'),
11
12
  colorHuePicker: () => cy.get('.react-colorful__hue-pointer .react-colorful__pointer-fill'),
@@ -97,6 +98,11 @@ const steps = {
97
98
  .click();
98
99
  },
99
100
 
101
+ clickInAlphaPicker: () => {
102
+ colorPopupComponent.alphaPicker()
103
+ .click();
104
+ },
105
+
100
106
  clickInColorHuePalette: () => {
101
107
  colorPopupComponent.colorHuePalette()
102
108
  .click();
@@ -120,36 +120,49 @@ const steps = {
120
120
  */
121
121
  verifyWarningIconOnRequiredFields: (requiredFieldsArray) => {
122
122
  requiredFieldsArray.forEach((field) => {
123
- if (field === 'Please set points') {
123
+ if (field === 'Please set points.') {
124
124
  scoringSectionBaseEditTab.pointsWrapper()
125
125
  .within(() => {
126
126
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
127
127
  });
128
- } else if (field === 'Please enter all option values') {
128
+ } else if (field === 'Please enter all option values.') {
129
129
  optionsWrapperComponent.optionsLabel()
130
130
  .within(() => {
131
131
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
132
132
  });
133
- } else if (field === 'Please upload an image') {
133
+ } else if (field === 'Please upload an image.') {
134
134
  createQuestionBasePage.backgroundImageLabel()
135
135
  .within(() => {
136
136
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
137
137
  });
138
- } else if (field === 'Please insert a dropzone' || field === 'Please insert a text container') {
138
+ } else if (field === 'Please insert a dropzone' || field === 'Please insert a text container.') {
139
139
  createQuestionBasePage.canvasLabel()
140
140
  .parents('[class*="CanvasLabelWrapper"]')
141
141
  .within(() => {
142
142
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'notExist');
143
143
  });
144
- } else if (field === 'Please enter all questions' || field === 'Please enter all prompts') {
144
+ } else if (field === 'Please enter all questions.' || field === 'Please enter all prompts.') {
145
145
  gridQuestionCommonComponent.specifyRowsAndColumnsTableHelpText()
146
146
  .within(() => {
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()
@@ -21,7 +21,7 @@ const selectors = {
21
21
  previewTabDesmosToolKeypad: () => cy.get('[class*="DesmosToolstyles__DesmosToolViewWrapper"] .dcg-basic-keypad-container'),
22
22
  previewTabDesmosToolKeypadKeys: (ariaLabel = null) => {
23
23
  if (ariaLabel) {
24
- return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]:visible`)
24
+ return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]`)
25
25
  } else {
26
26
  return cy.get('.dcg-basic-keypad .dcg-keypad-btn')
27
27
  }
@@ -26,6 +26,7 @@ const selectors = {
26
26
  const steps = {
27
27
  expandDraggableOptionsLayoutDropdown: () => {
28
28
  draggableOptionsSectionComponent.draggableOptionsLayoutDropdown()
29
+ .trigger('mouseover')
29
30
  .click();
30
31
  },
31
32
 
@@ -35,6 +36,7 @@ const steps = {
35
36
  */
36
37
  selectOptionFromDraggableOptionsLayoutDropdown: (listOption) => {
37
38
  draggableOptionsSectionComponent.draggableOptionsLayoutDropdownListOptions(listOption)
39
+ .trigger('mouseover')
38
40
  .click();
39
41
  },
40
42
 
@@ -1,6 +1,6 @@
1
1
  import utilities from "../../support/helpers/utilities";
2
2
  import { equationEditorCategoriesAndSymbols } from "../../fixtures/equationEditorCategoriesAndSymbols ";
3
- import { equationEditorFlyout, commonComponents, essayResponseCommonComponents, createQuestionBasePage } from "../components";
3
+ import { equationEditorFlyout, commonComponents, essayResponseCommonComponents, createQuestionBasePage, autoScoredScoringPreviewTab } from "../components";
4
4
  const css = Cypress.env('css');
5
5
  const allCategories = Object.values(equationEditorCategoriesAndSymbols)
6
6
  const defaultSelectedCategories = ['Numpad', 'Keypad', 'Intermediate', 'Primary', 'General', 'Common', 'Algebra', 'Geo', 'Compare', 'Matrices'];
@@ -302,7 +302,7 @@ const tests = {
302
302
  it(`In the equation editor flyout the ${allCategories[0].displayName} should be selected by default and the Equation editor input field should be prefilled with the added equation`, () => {
303
303
  equationEditorFlyout.steps.verifyCategoryTileSelectedInEquationEditor(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`);
304
304
  cy.log('Adding this to focus out of input field')
305
- equationEditorFlyout.steps.selectEquationEditorCategoryPreviewTab(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`)
305
+ equationEditorFlyout.steps.selectEquationEditorCategoryPreviewTab(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`);
306
306
  utilities.verifyTextContent(equationEditorFlyout.previewInputField(), 'x+5=1​');
307
307
  });
308
308
 
@@ -312,7 +312,7 @@ const tests = {
312
312
  equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationText(0, 'x+5=1');
313
313
  }
314
314
  else {
315
- equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5=1');
315
+ equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5=1');
316
316
  }
317
317
  });
318
318
 
@@ -330,7 +330,7 @@ const tests = {
330
330
  equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationText(0, 'x+5×0');
331
331
  }
332
332
  else {
333
- equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5×0');
333
+ equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5×0');
334
334
  }
335
335
  });
336
336
  },
@@ -718,17 +718,17 @@ const steps = {
718
718
 
719
719
  verifyWarningIconOnRequiredFields: (requiredFieldsArray) => {
720
720
  requiredFieldsArray.forEach((field) => {
721
- if (field === 'Please set points') {
721
+ if (field === 'Please set points.') {
722
722
  scoringSectionBaseEditTab.pointsWrapper()
723
723
  .within(() => {
724
724
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
725
725
  });
726
- } else if (field === 'Please enter all option values') {
726
+ } else if (field === 'Please enter all option values.') {
727
727
  fillInTheGapsDropdownCommonComponent.dropdownOptionsLabel()
728
728
  .within(() => {
729
729
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
730
730
  });
731
- } else if (field === 'Please upload an image') {
731
+ } else if (field === 'Please upload an image.') {
732
732
  createQuestionBasePage.backgroundImageLabel()
733
733
  .within(() => {
734
734
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
@@ -745,6 +745,34 @@ const steps = {
745
745
  const clientWidth = $dropdown[0].clientWidth;
746
746
  expect(scrollWidth).to.not.be.greaterThan(clientWidth);
747
747
  });
748
+ },
749
+
750
+ /**
751
+ * @description Verify the options of a dropdown in the specify correct answer section.
752
+ * @param {number} index Index of the dropdown.
753
+ * @param {string[]} optionsArray Array of expected options.
754
+ */
755
+ verifyDropdownOptionsSpecifyCorrectAnswerSection: (index, optionsArray) => {
756
+ fillInTheGapsDropdownCommonComponent.dropdownSpecifyCorrectAnswerSection()
757
+ .eq(index)
758
+ .click();
759
+ fillInTheGapsDropdownCommonComponent.dropdownListOptions()
760
+ .should('have.length', optionsArray.length)
761
+ .each(($option, optionIndex) => {
762
+ cy.wrap($option)
763
+ .should('have.text', optionsArray[optionIndex]);
764
+ });
765
+ },
766
+
767
+ /**
768
+ * Verifies the contents of option fields within the options section.
769
+ * @param {Array<string>} optionsTextArray - An array of strings representing the expected text content for each option field.
770
+ */
771
+ verifyOptionFieldContent: (optionsTextArray) => {
772
+ optionsTextArray.forEach((option, optionIndex) => {
773
+ utilities.getNthElement(fillInTheGapsDropdownCommonComponent.dropdownOptionsInputField(), optionIndex)
774
+ .should('have.value', option);
775
+ });
748
776
  }
749
777
  }
750
778
 
@@ -1421,7 +1421,7 @@ const tests = {
1421
1421
  it('When user has not entered text inside answer input field and clicks on \'Add alternate\' button, then the button should be disabled and \'Answer is required\' tooltip should be displayed', () => {
1422
1422
  utilities.verifyElementDisabled(utilities.getNthElement(fillInTheGapsTextCommonComponent.responseAccordionAddAlternateButton(), 0).find('button'));
1423
1423
  utilities.getNthElement(fillInTheGapsTextCommonComponent.responseAccordionAddAlternateButton(), 0)
1424
- .verifyTooltip('Answer is required');
1424
+ .verifyTooltip('select text containerAnswer is required');//Unable to hover out of the select text toolbar option
1425
1425
  });
1426
1426
 
1427
1427
  it('When user enters text inside answer input field, then error message should disappear', () => {
@@ -44,6 +44,7 @@ const selectors = {
44
44
  optionsButton: () => cy.get('[class*="PreviewSelectionButton"]'),
45
45
  optionsButtonPreviewTab: () => cy.get('.preview-selection-grid [class*="PreviewSelectionButton"]'),
46
46
  gridPreviewTab: () => cy.get('.single-selection-grid-wrapper:visible'),
47
+ gridPrintPreviewTab: () => cy.get('[data-testid="print-preview-selection-grid-table"]'),
47
48
  gridSpecifyCorrectAnswerSection: () => cy.get('.set-correct-ans-selection-grid'),
48
49
  tableCell: () => cy.get('[class*="CellContainer"]'),
49
50
  tableCellWrapperSpecifyCorrectAnswerSection: () => cy.get('.set-correct-ans-selection-grid [class*="TableCellWrapper"]'),
@@ -214,8 +215,11 @@ const steps = {
214
215
  gridQuestionCommonComponent.cellPropertyInputField()
215
216
  .click();
216
217
  gridQuestionCommonComponent.cellPropertyInputField()
217
- .clear()
218
- .type(text)
218
+ .clear();
219
+ gridQuestionCommonComponent.cellPropertyInputField()
220
+ .click()
221
+ gridQuestionCommonComponent.cellPropertyInputField()
222
+ .type(text);
219
223
  gridQuestionCommonComponent.cellPropertyInputField()
220
224
  .blur();
221
225
  });
@@ -351,6 +355,55 @@ const steps = {
351
355
  });
352
356
  },
353
357
 
358
+
359
+ /**
360
+ * Verifies the property of a cell in the print preview of a grid question component.
361
+ * @param {Object} cellPosition - The position of the cell to verify, containing row and column indices.
362
+ * @param {number} cellPosition.row - The row index of the cell.
363
+ * @param {number} cellPosition.column - The column index of the cell.
364
+ * @param {'None'|Heading'|'Subheading'|'Text'|'Radio button'|'Checkbox'|'Radio button with text'|'Checkbox with text'|'No radio button'|'No checkbox'} cellProperty - The property to verify for the cell.
365
+ * @throws {Error} If an invalid cellProperty is provided.
366
+ */
367
+ verifyTableCellPropertyPrintPreviewTab: ({ row, column }, cellProperty) => {
368
+ gridQuestionCommonComponent.gridPrintPreviewTab().within(() => {
369
+ utilities.getNthElement(gridQuestionCommonComponent.tableRow(), row)
370
+ .within(() => {
371
+ switch (cellProperty) {
372
+ case 'None':
373
+ utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
374
+ .should('have.class', 'cell-content-none');
375
+ break;
376
+ case 'Heading':
377
+ utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
378
+ .should('have.class', 'cell-content-heading');
379
+ break;
380
+ case 'Subheading':
381
+ utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
382
+ .should('have.class', 'cell-content-subeading');
383
+ break;
384
+ case 'Text':
385
+ case 'No radio button':
386
+ case 'No checkbox':
387
+ utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
388
+ .should('have.class', 'cell-content-text');
389
+ break;
390
+ case 'Radio button':
391
+ case 'Checkbox':
392
+ utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
393
+ .should('have.class', 'cell-content-radio');
394
+ break;
395
+ case 'Radio button with text':
396
+ case 'Checkbox with text':
397
+ utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
398
+ .should('have.class', 'cell-content-radio-text');
399
+ break;
400
+ default:
401
+ throw new Error('Invalid list option');
402
+ };
403
+ });
404
+ });
405
+ },
406
+
354
407
  /**
355
408
  * Verifies the property of a cell in the specify correct answer section of a grid question component.
356
409
  * @param {Object} cellPosition - The position of the cell to verify, containing row and column indices.
@@ -57,7 +57,8 @@ const selectors = {
57
57
  selectedColorBlockInTextColorPopup: () => cy.get('.color-library-selected'),
58
58
  textColorPopupWrapper: () => cy.get('[class*="Canvasstyle__TextColorPopupWrapper"]'),
59
59
  textColorLabelInTextColorPopup: () => cy.get('[class*="Canvasstyle__PopupText"]'),
60
- canvasWrapperPreviewTab: () => cy.get('.image-container')
60
+ canvasWrapperPreviewTab: () => cy.get('.image-container'),
61
+ canvasToolbar: () => cy.get('[class*="Canvasstyle__ButtonsWrapper"]')
61
62
  }
62
63
 
63
64
  const steps = {
@@ -730,6 +731,11 @@ const steps = {
730
731
  'border-style': styleName
731
732
  });
732
733
  },
734
+
735
+ clickOnCanvasToolbar: () => {
736
+ imageCanvasComponent.canvasToolbar()
737
+ .click();
738
+ }
733
739
  }
734
740
 
735
741
  const tests = {
@@ -803,17 +809,17 @@ const tests = {
803
809
  commonComponents.steps.verifyErrorMessageIsNotDisplayed();
804
810
  });
805
811
 
806
- it('User should be able to add maximum 20 multiple response containers inside canvas', () => {
812
+ it('User should be able to add multiple response containers inside canvas', () => {
807
813
  for (let i = 0; i < 21; i++) {
808
814
  imageCanvasComponent.steps.insertResponseArea(i * 2);
809
815
  }
810
- utilities.verifyElementCount(imageCanvasComponent.responseAreaWrapper(), 20);
816
+ utilities.verifyElementCount(imageCanvasComponent.responseAreaWrapper(), 22);
811
817
  });
812
818
 
813
819
  it('When user clicks on close button for a response container, then response container should disappear and numeration for existing response containers should be changed appropriately', () => {
814
820
  imageCanvasComponent.steps.removeResponseArea(0);
815
- utilities.verifyElementCount(imageCanvasComponent.responseAreaWrapper(), 19);
816
- for (let i = 0; i < 19; i++) {
821
+ utilities.verifyElementCount(imageCanvasComponent.responseAreaWrapper(), 21);
822
+ for (let i = 0; i < 21; i++) {
817
823
  utilities.verifyInnerText(utilities.getNthElement(imageCanvasComponent.responseAreaNumerationText(), i), `${i + 1}`);
818
824
  }
819
825
  });
@@ -20,6 +20,7 @@ const selectors = {
20
20
  return cy.get('.speed-option')
21
21
  }
22
22
  },
23
+ audioPlayerLoaderIcon: () => cy.get('.recording-icon')
23
24
  }
24
25
 
25
26
  const steps = {
@@ -35,7 +36,7 @@ const steps = {
35
36
 
36
37
  hoverOnVolumeControlButton: () => {
37
38
  playbackControlsBaseComponent.volumeControlButton()
38
- .realHover({ position: 'top' });
39
+ .realHover({ position: 'bottom' });
39
40
  },
40
41
 
41
42
  hoverOnMuteUnmuteButton: () => {
@@ -85,7 +86,7 @@ const steps = {
85
86
 
86
87
  clickOnVolumeButton: () => {
87
88
  playbackControlsBaseComponent.volumeControlButton()
88
- .realClick();
89
+ .click();
89
90
  },
90
91
 
91
92
  focusOutFromVolumeControlButton: () => {
@@ -221,6 +222,8 @@ const steps = {
221
222
  const tests = {
222
223
  verifyVolumeControlFunctionality: () => {
223
224
  it('When the user hovers over \'Volume control\' button, volume control settings should open and by default it should be set to full volume and on hovering away from the button, the volume slider should disappear', () => {
225
+ utilities.verifyElementVisibilityState(playbackControlsBaseComponent.audioPlayerLoaderIcon(), 'notExist');
226
+ cy.wait(3000); // Wait for the audio player to load
224
227
  playbackControlsBaseComponent.steps.hoverOnVolumeControlButton();
225
228
  utilities.verifyElementVisibilityState(playbackControlsBaseComponent.volumeControlSlider(), 'visible');
226
229
  playbackControlsBaseComponent.steps.verifyVolumeOfPlaybackPlayer('100');
@@ -287,7 +290,7 @@ const tests = {
287
290
  verifyPlaybackSpeedContents: (playbackSpeedOptions) => {
288
291
  it(`When the user hovers overs the playback button, a list of ${playbackSpeedOptions.length} playback speed options - ${playbackSpeedOptions.join(' ')} should be displayed and by default 1x should be in selected state`, () => {
289
292
  playbackControlsBaseComponent.playbackSpeedButton()
290
- .realHover();
293
+ .trigger('mouseover');
291
294
  utilities.verifyElementVisibilityState(playbackControlsBaseComponent.playbackSpeedOption(), 'visible');
292
295
  utilities.verifyElementCount(playbackControlsBaseComponent.playbackSpeedOption(), playbackSpeedOptions.length);
293
296
  playbackControlsBaseComponent.steps.verifyPlaybackSpeedListOptions(playbackSpeedOptions);