itemengine-cypress-automation 1.0.382 → 1.0.383-FixesPR3-c328a98.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 (305) 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/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 +25 -25
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +37 -36
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +37 -36
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +37 -36
  13. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  14. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightBasic.js +26 -25
  15. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +39 -38
  16. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +31 -30
  17. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +35 -34
  18. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +247 -0
  19. package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +1 -1
  20. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  21. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  22. package/cypress/e2e/ILC/ChartsBar/specifyCorrectAnswerSection.js +92 -0
  23. package/cypress/e2e/ILC/ChartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePointsLocked.js +220 -0
  24. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +25 -25
  25. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +47 -46
  26. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +25 -24
  27. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +25 -24
  28. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  29. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightBasic.js +25 -25
  30. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +24 -23
  31. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +21 -20
  32. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +48 -46
  33. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +249 -0
  34. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
  35. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  36. package/cypress/e2e/ILC/ChartsLine/specifyCorrectAnswerSection.js +94 -0
  37. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -2
  38. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  39. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  40. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
  41. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  42. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +3 -3
  43. package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
  44. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
  45. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  46. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +63 -4
  47. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +116 -7
  48. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +1 -1
  49. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
  50. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +3 -3
  51. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
  52. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettingsForGroupedLayout.js +3 -0
  53. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  54. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  55. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  56. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +1 -3
  57. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  58. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  59. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -0
  60. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +1 -1
  61. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +3 -3
  62. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +7 -7
  63. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +11 -11
  64. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
  65. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +1 -1
  66. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +3 -3
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +3 -3
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
  70. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +1 -1
  71. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +4 -4
  72. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +4 -4
  73. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editQuestion.smoke.js +1 -1
  74. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +4 -0
  75. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  76. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +1 -1
  77. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +3 -3
  78. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  79. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  80. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  81. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  82. package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +2 -2
  83. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  84. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  85. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  86. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  87. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  88. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  89. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  90. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +210 -0
  91. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +2 -2
  92. package/cypress/e2e/ILC/GridFill/headerSection.js +4 -4
  93. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  94. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  95. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  96. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  97. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  98. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  99. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  100. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +2 -1
  101. package/cypress/e2e/ILC/ImageHighlight/additionalSettingsBasic.js +1 -0
  102. package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +212 -0
  103. package/cypress/e2e/ILC/ImageHighlight/customiseHighlightStyle.js +29 -0
  104. package/cypress/e2e/ILC/ImageHighlight/editTabBasicSection.js +1 -1
  105. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +3 -3
  106. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  107. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  108. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  109. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  110. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +2 -4
  111. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  112. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +237 -1
  113. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  114. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +26 -0
  115. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  116. package/cypress/e2e/ILC/ListOrderingDropdown/manuallyAndNonScoredEditTab.js +2 -1
  117. package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +2 -4
  118. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +7 -12
  119. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +10 -14
  120. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  121. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +215 -0
  122. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  123. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +36 -9
  124. package/cypress/e2e/ILC/ListOrderingNew/manuallyAndNonScoredEditTab.js +2 -0
  125. package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +7 -23
  126. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  127. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  128. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  129. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  130. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +309 -0
  131. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  132. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  133. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  134. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +38 -3
  135. package/cypress/e2e/ILC/Matching/Scoring/blankResponseScoring.js +38 -41
  136. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  137. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  138. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  139. package/cypress/e2e/ILC/Matching/clickAndDrop.js +5 -5
  140. package/cypress/e2e/ILC/Matching/draggableOptions.js +7 -0
  141. package/cypress/e2e/ILC/Matching/editQuestion.smoke.js +3 -2
  142. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  143. package/cypress/e2e/ILC/Matching/headerSection.js +38 -12
  144. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  145. package/cypress/e2e/ILC/Matching/studentViewSettings.js +3 -1
  146. package/cypress/e2e/ILC/Matching/studentViewSettingsForGroupedLayout.js +1 -1
  147. package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +7 -6
  148. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsScoringBasic.js +6 -6
  149. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  150. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +2 -1
  151. package/cypress/e2e/ILC/MultipleSelection/editTabBasicSection.js +1 -1
  152. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +3 -3
  153. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  154. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabBasicSection.js +2 -2
  155. package/cypress/e2e/ILC/MultipleSelectionGridNew/headerSection.js +3 -3
  156. package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +100 -69
  157. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +1 -0
  158. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  159. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  160. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  161. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  162. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +213 -0
  163. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  164. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  165. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  166. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +249 -0
  167. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  168. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  169. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  170. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  171. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  172. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +266 -0
  173. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  174. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  175. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  176. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  177. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +268 -0
  178. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  179. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +186 -0
  180. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +33 -49
  181. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  182. package/cypress/e2e/ILC/SingleSelection/editTabBasicSection.js +1 -1
  183. package/cypress/e2e/ILC/SingleSelection/headerSection.js +2 -2
  184. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabBasicSection.js +2 -2
  185. package/cypress/e2e/ILC/SingleSelectionGridNew/headerSection.js +3 -3
  186. package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +101 -70
  187. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  188. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  189. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  190. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  191. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  192. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  193. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +9 -2
  194. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  195. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -1
  196. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  197. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  198. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  199. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  200. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  201. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  202. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  203. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +2 -2
  204. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  205. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  206. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  207. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  208. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  209. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  210. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  211. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  212. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  213. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +263 -0
  214. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +219 -0
  215. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  216. package/cypress/e2e/ILC/TextEntryMath/equationEditor.smoke.js +1 -1
  217. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +3 -3
  218. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  219. package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +263 -0
  220. package/cypress/e2e/ILC/TextEntryMathWithImage/backgroundImageAndCanvasProperties.js +0 -1
  221. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  222. package/cypress/e2e/ILC/TextSelection/additionalSettings.js +1 -0
  223. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +231 -0
  224. package/cypress/e2e/ILC/TextSelection/editTabBasicSection.js +2 -2
  225. package/cypress/e2e/ILC/TextSelection/headerSection.js +3 -3
  226. package/cypress/e2e/ILC/TextSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -0
  227. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +1 -0
  228. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +1 -1
  229. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +1 -1
  230. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
  231. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +2 -0
  232. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +45 -5
  233. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +8 -8
  234. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  235. package/cypress/e2e/ILC/ThinkSphere/previewTabSolveSection.js +36 -0
  236. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +3 -3
  237. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  238. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  239. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  240. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  241. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  242. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
  243. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  244. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  245. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +27 -28
  246. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  247. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +24 -24
  248. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +39 -37
  249. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsBasic.js +22 -23
  250. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  251. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +25 -24
  252. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +31 -31
  253. package/cypress/e2e/ILC/chartsDotsPlot/scoring/toleranceThresholdScoring.js +18 -19
  254. package/cypress/e2e/ILC/chartsDotsPlot/specifyCorrectAnswerSection.js +96 -0
  255. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  256. package/cypress/e2e/Sessions/saveResponseScores.js +2 -2
  257. package/cypress/fixtures/thinkSphereWhiteboardTools.js +66 -0
  258. package/cypress/pages/audioPlayerPage.js +27 -2
  259. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  260. package/cypress/pages/chartsBarPage.js +45 -0
  261. package/cypress/pages/chartsDotPlotPage.js +25 -0
  262. package/cypress/pages/chartsLinePage.js +28 -3
  263. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -1
  264. package/cypress/pages/components/chartsCommonComponent.js +6 -2
  265. package/cypress/pages/components/ckEditorEquationEditorComponent.js +1 -0
  266. package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
  267. package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
  268. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  269. package/cypress/pages/components/colorPopupComponent.js +6 -0
  270. package/cypress/pages/components/createQuestionBasePage.js +19 -6
  271. package/cypress/pages/components/desmosToolComponent.js +1 -1
  272. package/cypress/pages/components/draggableOptionsSectionComponent.js +2 -0
  273. package/cypress/pages/components/equationEditorSectionCommonComponent.js +14 -29
  274. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +31 -3
  275. package/cypress/pages/components/gridQuestionCommonComponent.js +55 -2
  276. package/cypress/pages/components/imageCanvasComponent.js +11 -5
  277. package/cypress/pages/components/questionInstructionsComponent.js +2 -0
  278. package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
  279. package/cypress/pages/components/specifyRowsAndColumnsComponent.js +16 -0
  280. package/cypress/pages/contentBlocksPage.js +2 -0
  281. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  282. package/cypress/pages/desmosGeometryPage.js +184 -4
  283. package/cypress/pages/drawingResponsePage.js +10 -1
  284. package/cypress/pages/fillInTheGapsDragAndDropPage.js +3 -8
  285. package/cypress/pages/gradingGridViewPage.js +64 -0
  286. package/cypress/pages/graphingPage.js +27 -8
  287. package/cypress/pages/gridFillPage.js +27 -9
  288. package/cypress/pages/imageHighlightPage.js +115 -15
  289. package/cypress/pages/index.js +1 -0
  290. package/cypress/pages/listOrderingPage.js +46 -2
  291. package/cypress/pages/matchingPage.js +29 -10
  292. package/cypress/pages/numberLineLabelPage.js +31 -8
  293. package/cypress/pages/numberLinePage.js +19 -7
  294. package/cypress/pages/singleSelectionPage.js +30 -1
  295. package/cypress/pages/textEntryMathPage.js +27 -8
  296. package/cypress/pages/textSelectionPage.js +2 -2
  297. package/cypress/pages/thinkSpherePage.js +928 -87
  298. package/cypress/pages/uploadResponsePage.js +17 -1
  299. package/cypress/pages/videoResponsePage.js +3 -0
  300. package/cypress/support/commands.js +9 -0
  301. package/cypress/support/helpers/createItem.js +22 -3
  302. package/cypress/support/helpers/utilities.js +14 -1
  303. package/package.json +2 -2
  304. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/checkAnswerFunctionalityForAllViews.js +0 -0
  305. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/editQuestion.smoke.js +0 -0
@@ -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'];
@@ -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
 
@@ -317,7 +302,7 @@ const tests = {
317
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`, () => {
318
303
  equationEditorFlyout.steps.verifyCategoryTileSelectedInEquationEditor(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`);
319
304
  cy.log('Adding this to focus out of input field')
320
- equationEditorFlyout.steps.selectEquationEditorCategoryPreviewTab(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`)
305
+ equationEditorFlyout.steps.selectEquationEditorCategoryPreviewTab(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`);
321
306
  utilities.verifyTextContent(equationEditorFlyout.previewInputField(), 'x+5=1​');
322
307
  });
323
308
 
@@ -327,7 +312,7 @@ const tests = {
327
312
  equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationText(0, 'x+5=1');
328
313
  }
329
314
  else {
330
- equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5=1');
315
+ equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5=1');
331
316
  }
332
317
  });
333
318
 
@@ -345,7 +330,7 @@ const tests = {
345
330
  equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationText(0, 'x+5×0');
346
331
  }
347
332
  else {
348
- equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5×0');
333
+ equationEditorSectionCommonComponent.steps.verifyResponseFieldEquationTextNew(0, 'x+5×0');
349
334
  }
350
335
  });
351
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
 
@@ -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
  });
@@ -9,6 +9,8 @@ const selectors = {
9
9
  questionInstructionsText: () => cy.get('.question-instruction'),
10
10
  questionInstructionsWrapper: () => cy.get('.edit-question-instruction-wrapper'),
11
11
  questionInstructionsTextPreviewTab: () => cy.get('.question-instruction:visible'),
12
+ questionNumberPrintPreviewText: () => cy.get('[data-testid="print-preview-question-number"]'),
13
+ questionInstructionsPrintPreviewText: () => cy.get('[data-testid="question-instruction-element"]').first(),
12
14
  }
13
15
 
14
16
  const steps = {
@@ -29,6 +29,8 @@ const selectors = {
29
29
  }
30
30
  },
31
31
  minimumPointsLabel: () => cy.get('[class*="min-score-points-label"]'),
32
+ questionLabel: () => cy.get('[class*="addResponseCKEditorstyles__TitleWrapper"]'),
33
+ questionWarningIcon: () => cy.get('[class*="addResponseCKEditorstyles__IconWrapper"]'),
32
34
  minimumPointsInputField: () => cy.get('.min-score-points-input-field input'),
33
35
  }
34
36
 
@@ -81,6 +83,7 @@ const steps = {
81
83
  scoringSectionBaseEditTab.scoringTypeDropdownListOptions(convertedString)
82
84
  .should('be.visible') // Ensure the dropdown option is visible
83
85
  .click();
86
+ cy.wait(2000); // Wait for the dropdown to close
84
87
  utilities.verifyElementVisibilityState(commonComponents.dropdownList(), 'notExist');
85
88
  },
86
89
 
@@ -114,6 +114,9 @@ const steps = {
114
114
  specifyRowsAndColumnsComponent.inputStepperCountInputField()
115
115
  .eq(0)
116
116
  .type(`{selectAll}${numberOfColumns}`);
117
+ specifyRowsAndColumnsComponent.inputStepperCountInputField()
118
+ .eq(0)
119
+ .should('have.value', numberOfColumns);
117
120
  },
118
121
 
119
122
  /**
@@ -124,7 +127,20 @@ const steps = {
124
127
  specifyRowsAndColumnsComponent.inputStepperCountInputField()
125
128
  .eq(1)
126
129
  .type(`{selectAll}${numberOfRows}`);
130
+ specifyRowsAndColumnsComponent.inputStepperCountInputField()
131
+ .eq(1)
132
+ .should('have.value', numberOfRows);
127
133
  },
134
+
135
+ /**
136
+ * @description Add input to column input stepper input field
137
+ * @param {number} numberOfRows Number of rows for the specify columns and rows section table
138
+ */
139
+ enterInputToRowInputStepper: (numberOfRows) => {
140
+ specifyRowsAndColumnsComponent.inputStepperCountInputField()
141
+ .eq(1)
142
+ .type(`{selectAll}${numberOfRows}`);
143
+ }
128
144
  }
129
145
 
130
146
  const tests = {
@@ -67,6 +67,8 @@ const selectors = {
67
67
 
68
68
  const steps = {
69
69
  ...createQuestionBasePage.steps,
70
+ ...createItemPage.steps,
71
+ ...commonComponents.steps,
70
72
 
71
73
  addGroupDivider: () => {
72
74
  contentBlocksPage.addGroupDividerButton()
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent } from "./components";
2
+ import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent, toolSettingsComponent } from "./components";
3
3
  import { desmosToolComponent } from "./components/desmosToolComponent";
4
4
  const css = Cypress.env('css');
5
5
 
@@ -10,12 +10,13 @@ const selectors = {
10
10
  ...additionalSettingsPanel,
11
11
  ...questionInstructionsComponent,
12
12
  desmosGraphingTool: () => cy.get('[id*="desmos-graph-tool"]'),
13
- desmosGraphingToolExpressionPanel: () => cy.get('[id*="desmos-graph-tool"] .dcg-exppanel-container.dcg-add-shadow'),
13
+ desmosGraphingToolExpressionPanel: () => cy.get('.dcg-exppanel-container'),
14
14
  studentViewSettingsLabel: () => cy.get('[class*="StudentViewWrapper"]'),
15
15
  hideExpressionListLabel: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] .MuiFormControlLabel-label'),
16
16
  hideExpressionListCheckbox: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] input'),
17
17
  showHideListButton: () => cy.get('.dcg-show-expressions-tab[role="button"]'),
18
18
  desmosGraphingWidthLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(0),
19
+ desmosComponentGradingView: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosWrapper"]'),
19
20
  desmosGraphingWidthInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(0),
20
21
  desmosGraphingHeightLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(1),
21
22
  desmosGraphingHeightInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(1),
@@ -38,6 +39,16 @@ const selectors = {
38
39
  errorMessage: () => cy.get('.error-text-message'),
39
40
  resourceLinkPreviewTitle: () => cy.get('[class*="DesmosGraphingstyles__ResourceLinkPreviewLabel"]'),
40
41
  desmosComponent: () => cy.get('[class*="DesmosGraphingstyles__DesmosComponentWrapper"]'),
42
+ widthLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(0),
43
+ heightLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(1),
44
+ lockUnlockAspectRatioButton: () => cy.get('[class*="StudentViewSettingsstyles__LockIconWrapper"] button'),
45
+ resetButton: () => cy.get('[class*="StudentViewSettingsstyles__ResetIconWrapper"] button'),
46
+ desmosResourceCanvasEditTab: () => cy.get('[id*="desmos-3d-graph-tool"]'),
47
+ desmosResourceCanvasPreviewTab: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosPreview"]'),
48
+ addIconDesmos: () => cy.get('.dcg-add-expression-container .dcg-icon-plus'),
49
+ expressionInputField: () => cy.get('.dcg-action-newmath'),
50
+ editIconPencil: () => cy.get('.icon-pencil'),
51
+ teacherGuidelinesInputField: () => cy.get('[class*="TeacherGuidelinesstyles__TextField"] input'),
41
52
  }
42
53
 
43
54
  const steps = {
@@ -47,6 +58,7 @@ const steps = {
47
58
  ...additionalSettingsPanel.steps,
48
59
  ...questionInstructionsComponent.steps,
49
60
  ...commonComponents.steps,
61
+ ...toolSettingsComponent.steps,
50
62
  verifyHideExpressionListCheckboxUnchecked: () => {
51
63
  desmos3DGraphingPage.hideExpressionListCheckbox()
52
64
  .should('not.be.checked');
@@ -322,10 +334,128 @@ const steps = {
322
334
  },
323
335
  clearInputToInsertResourceLinkInputField: () => {
324
336
  desmos3DGraphingPage.insertResourceLinkInputField()
325
- .clear();
337
+ .click()
338
+ desmos3DGraphingPage.insertResourceLinkInputField()
339
+ .type('{selectall}{backspace}')
326
340
  cy.get('body')
327
341
  .click();
328
342
  },
343
+ verifyLockedStateOfLockUnlockAspectRatioButton: () => {
344
+ desmos3DGraphingPage.lockUnlockAspectRatioButton()
345
+ .should('have.attr', 'aria-label', 'Locked aspect ratio');
346
+ },
347
+ verifyUnlockedStateOfLockUnlockAspectRatioButton: () => {
348
+ desmos3DGraphingPage.lockUnlockAspectRatioButton()
349
+ .should('have.attr', 'aria-label', 'Unlocked aspect ratio');
350
+ },
351
+ /**
352
+ * @description add input to width input field
353
+ * @param {number} width Width to be set for geoGebra resource
354
+ */
355
+ addInputToWidthInputField: (width) => {
356
+ desmos3DGraphingPage.widthInputField()
357
+ .clear()
358
+ .type(width)
359
+ .blur();
360
+ utilities.verifyInputFieldValue(desmos3DGraphingPage.widthInputField(), width);
361
+ },
362
+ /**
363
+ * @description add input to height input field
364
+ * @param {number} height Height to be set for geoGebra resource
365
+ */
366
+ addInputToHeightInputField: (height) => {
367
+ desmos3DGraphingPage.heightInputField()
368
+ .clear()
369
+ .type(height)
370
+ .blur();
371
+ utilities.verifyInputFieldValue(desmos3DGraphingPage.heightInputField(), height);
372
+ },
373
+ /**
374
+ * Verify width of geoGebra resource canvas in edit tab
375
+ * @param {number} width Width of geoGebra resource canvas in edit tab
376
+ */
377
+ verifyCanvasWidthEditTab: (width) => {
378
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasEditTab(), {
379
+ 'width': `${width}px`
380
+ });
381
+ },
382
+ /**
383
+ * Verify height of geoGebra resource canvas in edit tab
384
+ * @param {number} height Height of geoGebra resource canvas in edit tab
385
+ */
386
+ verifyCanvasHeightEditTab: (height) => {
387
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasEditTab(), {
388
+ 'height': `${height}px`
389
+ });
390
+ },
391
+ clickOnResetButton: () => {
392
+ desmos3DGraphingPage.resetButton()
393
+ .click();
394
+ },
395
+ clickOnLockUnlockAspectRatioButton: () => {
396
+ desmos3DGraphingPage.lockUnlockAspectRatioButton()
397
+ .click();
398
+ },
399
+ /**
400
+ * Verify width of geoGebra resource canvas in preview tab
401
+ * @param {number} width Width of geoGebra resource canvas in preview tab
402
+ */
403
+ verifyCanvasWidthPreviewTab: (width) => {
404
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasPreviewTab(), {
405
+ 'width': `${width}px`
406
+ });
407
+ },
408
+ /**
409
+ * Verify height of geoGebra resource canvas in preview tab
410
+ * @param {number} height Height of geoGebra resource canvas in preview tab
411
+ */
412
+ verifyCanvasHeightPreviewTab: (height) => {
413
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasPreviewTab(), {
414
+ 'height': `${height}px`
415
+ });
416
+ },
417
+ /**
418
+ * @description Types a mathematical expression in the Desmos expression input field
419
+ * @param {string} expression The mathematical expression to type
420
+ */
421
+ typeExpression: (expression) => {
422
+ desmos3DGraphingPage.expressionInputField()
423
+ .click();
424
+ desmos3DGraphingPage.expressionInputField()
425
+ .type(expression);
426
+ },
427
+ /**
428
+ * @description Verifies that the specified expression is not present in the Desmos expression field
429
+ * @param {string} expression The expression that should not be present
430
+ */
431
+ verifyExpressionNotPresent: (expression) => {
432
+ desmos3DGraphingPage.expressionInputField()
433
+ .should('not.contain', expression);
434
+ },
435
+ editQuestionItemView: () => {
436
+ desmos3DGraphingPage.editIconPencil()
437
+ .click();
438
+ },
439
+ verifyFontSizeDropdown: (fontSize) => {
440
+ desmos3DGraphingPage.fontSizeDropdown()
441
+ .should('have.text', fontSize);
442
+ },
443
+ verifyTeacherGuidelinesInputField: (text) => {
444
+ desmos3DGraphingPage.additionalSettingsTeacherGuidelinesInputField()
445
+ .should('have.text', text);
446
+ },
447
+ verifySampleAnswerInputField: (text) => {
448
+ desmos3DGraphingPage.additionalSettingsSampleAnswerInputField()
449
+ .should('have.text', text);
450
+ },
451
+ verifyAcknowledgementsInputField: (text) => {
452
+ desmos3DGraphingPage.additionalSettingsAcknowledgementsInputField()
453
+ .should('have.text', text);
454
+ },
455
+ verifyFlagThisItemNonAccessibleCheckboxIsChecked: () => {
456
+ desmos3DGraphingPage.flagNonAccessibleCheckbox()
457
+ .should('be.checked');
458
+ },
329
459
  }
330
460
 
331
461
  const tests = {
@@ -337,7 +467,7 @@ const tests = {
337
467
  ...additionalSettingsAccessibilitySectionComponent.tests,
338
468
  ...studentViewSettingsLabelComponent.tests,
339
469
  ...hideExpressionListComponent.tests,
340
-
470
+
341
471
  verifyGraphingQuestionSpecifyPredefinedExpressionContent: () => {
342
472
  it('When user selects a scoring type the contents of the Specify predefined expression should be displayed', () => {
343
473
  utilities.verifyElementVisibilityState(desmos3DGraphingPage.desmosGraphingTool(), 'exist');
@@ -358,6 +488,21 @@ const tests = {
358
488
  it('Accessibility of error message', { tags: 'a11y' }, () => {
359
489
  cy.checkAccessibility(commonComponents.nextGenCreateItemWrapper());
360
490
  });
491
+ },
492
+
493
+ verifyQuestionInstructionsInputFieldPreviewTab: () => {
494
+ it('When user has not entered any text in the Question instructions input field in the \'Edit\' tab then nothing should be displayed in the \'Preview\' tab', () => {
495
+ createQuestionBasePage.steps.switchToPreviewTab();
496
+ //Failing due to https://redmine.zeuslearning.com/issues/553382
497
+ utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsText(), '')
498
+ });
499
+
500
+ it('When the user specifies question instructions, then the added question instructions should be displayed in the \'Preview\' tab', () => {
501
+ createQuestionBasePage.steps.switchToEditTab();
502
+ questionInstructionsComponent.steps.addTextInQuestionInstructionsInputField('Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
503
+ createQuestionBasePage.steps.switchToPreviewTab();
504
+ utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsTextPreviewTab(), 'Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
505
+ });
361
506
  }
362
507
  }
363
508