itemengine-cypress-automation 1.0.376-IEI-5742-and-IEI-5816-manualAndNonScoredScript-83d9dd2.0 → 1.0.376-resourceAndTools-fbbcf92.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 (279) 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 +39 -7
  8. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +25 -25
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +37 -36
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +37 -36
  13. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +37 -36
  14. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  15. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightBasic.js +26 -25
  16. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +39 -38
  17. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +31 -30
  18. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +35 -34
  19. package/cypress/e2e/ILC/ChartsBar/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +247 -0
  20. package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +1 -1
  21. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  22. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  23. package/cypress/e2e/ILC/ChartsBar/specifyCorrectAnswerSection.js +92 -0
  24. package/cypress/e2e/ILC/ChartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePointsLocked.js +220 -0
  25. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +25 -25
  26. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +47 -46
  27. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +25 -24
  28. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +25 -24
  29. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  30. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightBasic.js +25 -25
  31. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +24 -23
  32. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +21 -20
  33. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +48 -46
  34. package/cypress/e2e/ILC/ChartsLine/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePointsLocked.js +249 -0
  35. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
  36. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  37. package/cypress/e2e/ILC/ChartsLine/specifyCorrectAnswerSection.js +94 -0
  38. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  39. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
  40. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  41. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  42. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  43. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
  44. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  45. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  46. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -4
  47. package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
  48. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
  49. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  50. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +63 -4
  51. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +116 -7
  52. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
  53. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
  54. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettingsForGroupedLayout.js +3 -0
  55. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  56. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  57. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  58. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  59. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +1 -3
  60. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +2 -2
  61. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  62. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  63. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  64. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -0
  65. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +7 -7
  66. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +3 -0
  70. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  71. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  72. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  73. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  74. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  75. package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +2 -2
  76. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  77. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  78. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  79. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  80. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  81. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  82. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  83. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +210 -0
  84. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  85. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  86. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  87. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  88. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  89. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  90. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  91. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  92. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  93. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  94. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  95. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +2 -1
  96. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  97. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  98. package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +212 -0
  99. package/cypress/e2e/ILC/ImageHighlight/customiseHighlightStyle.js +29 -0
  100. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  101. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  102. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  103. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  104. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  105. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  106. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +2 -4
  107. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  108. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +237 -1
  109. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  110. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  111. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  112. package/cypress/e2e/ILC/ListOrderingDropdown/manuallyAndNonScoredEditTab.js +2 -1
  113. package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +2 -4
  114. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +7 -12
  115. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +10 -14
  116. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  117. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +215 -0
  118. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  119. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +36 -9
  120. package/cypress/e2e/ILC/ListOrderingNew/manuallyAndNonScoredEditTab.js +2 -0
  121. package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +7 -23
  122. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  123. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  124. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  125. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  126. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +309 -0
  127. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  128. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  129. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  130. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +36 -1
  131. package/cypress/e2e/ILC/Matching/Scoring/blankResponseScoring.js +38 -41
  132. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  133. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  134. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  135. package/cypress/e2e/ILC/Matching/clickAndDrop.js +5 -5
  136. package/cypress/e2e/ILC/Matching/draggableOptions.js +7 -0
  137. package/cypress/e2e/ILC/Matching/editQuestion.smoke.js +3 -2
  138. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  139. package/cypress/e2e/ILC/Matching/headerSection.js +38 -12
  140. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  141. package/cypress/e2e/ILC/Matching/studentViewSettings.js +2 -0
  142. package/cypress/e2e/ILC/Matching/studentViewSettingsForGroupedLayout.js +1 -1
  143. package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +6 -6
  144. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  145. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +2 -1
  146. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  147. package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +100 -69
  148. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +1 -0
  149. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  150. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  151. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  152. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  153. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  154. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  155. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  156. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  157. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  158. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  159. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  160. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  161. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  162. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  163. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  164. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  165. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  166. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +186 -0
  167. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +35 -51
  168. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  169. package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +101 -70
  170. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  171. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  172. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  173. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  174. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  175. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  176. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  177. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  178. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  179. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  180. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  181. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  182. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  183. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  184. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  185. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  186. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  187. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  188. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  189. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  190. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  191. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  192. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  193. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  194. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  195. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  196. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  197. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  198. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  199. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +231 -0
  200. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  201. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +54 -1
  202. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +53 -2
  203. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
  204. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  205. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
  206. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +91 -9
  207. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +12 -12
  208. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  209. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +35 -2
  210. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  211. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  212. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  213. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  214. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  215. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
  216. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  217. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  218. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsBasic.js +27 -28
  219. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  220. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +24 -24
  221. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +39 -37
  222. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsBasic.js +22 -23
  223. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +31 -30
  224. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +25 -24
  225. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +31 -31
  226. package/cypress/e2e/ILC/chartsDotsPlot/scoring/toleranceThresholdScoring.js +18 -19
  227. package/cypress/e2e/ILC/chartsDotsPlot/specifyCorrectAnswerSection.js +96 -0
  228. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  229. package/cypress/e2e/Sessions/saveResponseScores.js +2 -2
  230. package/cypress/pages/audioPlayerPage.js +47 -22
  231. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  232. package/cypress/pages/chartsBarPage.js +45 -0
  233. package/cypress/pages/chartsDotPlotPage.js +25 -0
  234. package/cypress/pages/chartsLinePage.js +28 -3
  235. package/cypress/pages/components/additionalSettingsPanel.js +1 -0
  236. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -1
  237. package/cypress/pages/components/browseItemsPage.js +109 -2
  238. package/cypress/pages/components/chartsCommonComponent.js +6 -2
  239. package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
  240. package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
  241. package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
  242. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  243. package/cypress/pages/components/colorPopupComponent.js +6 -0
  244. package/cypress/pages/components/commonComponents.js +4 -0
  245. package/cypress/pages/components/createQuestionBasePage.js +14 -1
  246. package/cypress/pages/components/draggableOptionsSectionComponent.js +2 -0
  247. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  248. package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
  249. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +28 -0
  250. package/cypress/pages/components/gridQuestionCommonComponent.js +55 -2
  251. package/cypress/pages/components/imageCanvasComponent.js +4 -4
  252. package/cypress/pages/components/questionInstructionsComponent.js +2 -0
  253. package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
  254. package/cypress/pages/components/specifyRowsAndColumnsComponent.js +7 -1
  255. package/cypress/pages/contentBlocksPage.js +2 -0
  256. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  257. package/cypress/pages/desmosGeometryPage.js +184 -4
  258. package/cypress/pages/drawingResponsePage.js +2 -0
  259. package/cypress/pages/fillInTheGapsDragAndDropPage.js +3 -4
  260. package/cypress/pages/gradingGridViewPage.js +64 -0
  261. package/cypress/pages/graphingPage.js +27 -8
  262. package/cypress/pages/gridFillPage.js +15 -6
  263. package/cypress/pages/imageHighlightPage.js +32 -0
  264. package/cypress/pages/index.js +1 -0
  265. package/cypress/pages/listOrderingPage.js +40 -1
  266. package/cypress/pages/matchingPage.js +26 -7
  267. package/cypress/pages/numberLineLabelPage.js +31 -8
  268. package/cypress/pages/numberLinePage.js +19 -7
  269. package/cypress/pages/singleSelectionPage.js +30 -1
  270. package/cypress/pages/textEntryMathPage.js +24 -1
  271. package/cypress/pages/thinkSpherePage.js +674 -48
  272. package/cypress/pages/uploadResponsePage.js +17 -1
  273. package/cypress/pages/videoResponsePage.js +3 -0
  274. package/cypress/support/commands.js +9 -0
  275. package/cypress/support/helpers/createItem.js +22 -3
  276. package/cypress/support/helpers/utilities.js +14 -1
  277. package/package.json +2 -2
  278. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/checkAnswerFunctionalityForAllViews.js +0 -0
  279. /package/cypress/e2e/ILC/{ChartsDotsPlot → chartsDotsPlot}/editQuestion.smoke.js +0 -0
@@ -13,6 +13,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
13
13
  abortEarlySetup();
14
14
  before(() => {
15
15
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
16
+ cy.barsPreLoaderWait();
17
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
18
20
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -119,6 +121,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
119
121
  abortEarlySetup();
120
122
  before(() => {
121
123
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
124
+ cy.barsPreLoaderWait();
125
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
122
126
  textEntryMathPage.steps.addResponseArea();
123
127
  textEntryMathPage.steps.addResponseArea();
124
128
  textEntryMathPage.steps.addResponseArea();
@@ -204,6 +208,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
204
208
  abortEarlySetup();
205
209
  before(() => {
206
210
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
211
+ cy.barsPreLoaderWait();
212
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
207
213
  textEntryMathPage.steps.addResponseArea();
208
214
  textEntryMathPage.steps.addResponseArea();
209
215
  textEntryMathPage.steps.addResponseArea();
@@ -321,6 +327,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
321
327
  abortEarlySetup();
322
328
  before(() => {
323
329
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
330
+ cy.barsPreLoaderWait();
331
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
324
332
  textEntryMathPage.steps.addResponseArea();
325
333
  textEntryMathPage.steps.addResponseArea();
326
334
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -13,6 +13,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
13
13
  abortEarlySetup();
14
14
  before(() => {
15
15
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
16
+ cy.barsPreLoaderWait();
17
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
18
20
  textEntryMathPage.steps.addResponseArea();
@@ -13,6 +13,7 @@ describe('Create item page - Text Entry Math: Partial equal weights', () => {
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
15
  cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
17
  textEntryMathPage.steps.addResponseArea();
17
18
  textEntryMathPage.steps.addResponseArea();
18
19
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
@@ -19,6 +19,8 @@ describe('Create Item page - Text entry math: All or nothing ', () => {
19
19
  switch (view) {
20
20
  case 'Question preview':
21
21
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
22
+ cy.barsPreLoaderWait();
23
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
22
24
  textEntryMathPage.steps.addResponseArea();
23
25
  textEntryMathPage.steps.addResponseArea();
24
26
  textEntryMathPage.steps.addResponseArea();
@@ -92,11 +92,9 @@ describe('Create item page - Text entry math: Question instructions, Add structu
92
92
  textEntryMathPage.steps.switchToEditTab();
93
93
  textEntryMathPage.steps.deleteAResponseArea(0);
94
94
  textEntryMathPage.steps.deleteAResponseArea(0);
95
- utilities.verifyElementVisibilityState(textEntryMathPage.errorMessage(), 'exist');
95
+ utilities.verifyElementVisibilityState(textEntryMathPage.errorMessage(), 'notExist');
96
96
  });
97
97
 
98
- textEntryMathPage.tests.verifyErrorMessageCSSAndA11y();
99
-
100
98
  textEntryMathPage.tests.addResponseAreaAndVerifyMinimumOneAreaRequiredErrorMessageNotExist();
101
99
 
102
100
  textEntryMathPage.tests.verifyQuestionInputFieldPlaceholderText();
@@ -200,4 +198,30 @@ describe('Create item page - Text entry math: Question instructions, Add structu
200
198
  utilities.verifyElementCount(textEntryMathPage.responseFieldPreviewTab(), 1);
201
199
  });
202
200
  });
201
+
202
+ describe('User should be able to edit incomplete authored question', () => {
203
+ abortEarlySetup();
204
+ before(() => {
205
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
206
+ cy.barsPreLoaderWait();
207
+ textEntryMathPage.steps.saveAQuestionWithIncompleteAuthoring();
208
+ textEntryMathPage.steps.editItem();
209
+ });
210
+
211
+ it('Warning icons should be displayed on the required input fields', () => {
212
+ utilities.verifyElementVisibilityState(textEntryMathPage.questionWarningIcon(), 'exist');
213
+ utilities.verifyElementVisibilityState(textEntryMathPage.warningIcon(), 'exist');
214
+ });
215
+
216
+ it('When required input fields are filled then warning icons should disappear', () => {
217
+ textEntryMathPage.steps.addResponseArea();
218
+ textEntryMathPage.steps.allotPoints(10);
219
+ textEntryMathPage.steps.verifyErrorMessageIsNotDisplayed();
220
+ textEntryMathPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
221
+ });
222
+
223
+ it('Warning icon should not be visible', () => {
224
+ textEntryMathPage.steps.verifyWarningIconNotExist();
225
+ });
226
+ });
203
227
  });
@@ -0,0 +1,43 @@
1
+ import { textEntryMathPage } from "../../../pages";
2
+ import { browseItemsPage } from "../../../pages/components";
3
+ import { itemPreviewPage } from "../../../pages";
4
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
5
+ import utilities from "../../../support/helpers/utilities";
6
+
7
+ var itemReferenceID = "";
8
+
9
+ describe('Create Item page - Text Entry Math: Header section and Saving question', () => {
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ });
13
+
14
+ describe('Saving a question with incomplete authoring', () => {
15
+ abortEarlySetup();
16
+ before(() => {
17
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
18
+ cy.barsPreLoaderWait();
19
+ });
20
+
21
+ it('User should be able to save the question with incomplete authoring and snackbar with the text "Saved successfully!" should be displayed', () => {
22
+ textEntryMathPage.steps.saveAQuestionWithIncompleteAuthoring();
23
+ });
24
+ textEntryMathPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
25
+ });
26
+
27
+ describe('Save as you go - Browse item page contents', () => {
28
+ abortEarlySetup();
29
+ before(() => {
30
+ cy.log('Navigating to Text Entry Math question type');
31
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
32
+ cy.barsPreLoaderWait();
33
+ textEntryMathPage.steps.saveAQuestionWithIncompleteAuthoring();
34
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
35
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
36
+ browseItemsPage.steps.navigateToBrowseItemsPage();
37
+ });
38
+
39
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
40
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
41
+ });
42
+ });
43
+ });
@@ -94,7 +94,6 @@ describe('Create Item page - Text Selection', () => {
94
94
  textSelectionPage.steps.clickOnOptionInSpecifyPossibleOptionsSection(paragraphTextArray[0]);
95
95
  textSelectionPage.steps.clickOnOptionInSpecifyPossibleOptionsSection(paragraphTextArray[1]);
96
96
  textSelectionPage.steps.clickOnOptionInSpecifyPossibleOptionsSection(paragraphTextArray[2]);
97
- textSelectionPage.steps.switchToPreviewTab();
98
97
  });
99
98
 
100
99
  it('When the user selects \'Grading\' view without setting the answer, correct answers section and answer status banner should not be displayed', () => {
@@ -239,6 +239,237 @@ describe('Create item page - Text selection: All or nothing ', () => {
239
239
  });
240
240
  });
241
241
 
242
+ views.forEach((view) => {
243
+ describe(`${view}: Text selection - Manually scored`, { tags: 'smoke' }, () => {
244
+ abortEarlySetup();
245
+ before(() => {
246
+ switch (view) {
247
+ case 'Question preview':
248
+ textSelectionPage.steps.navigateToCreateQuestion('text selection');
249
+ cy.barsPreLoaderWait();
250
+ textSelectionPage.steps.addTextInQuestionInstructionsInputField('Highlight the correct statements.');
251
+ textSelectionPage.steps.clearQuestionInputField();
252
+ paragraphTextArray.forEach((paragraphText) => {
253
+ textSelectionPage.steps.addInputToQuestionInputField(`${paragraphText}{enter}`);
254
+ });
255
+ textSelectionPage.steps.addInputToQuestionInputField('{backspace}');
256
+ textSelectionPage.steps.expandScoringTypeDropdown();
257
+ textSelectionPage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
258
+ textSelectionPage.steps.allotPoints(20);
259
+ textSelectionPage.steps.switchTextSelectionMode('Paragraph');
260
+ paragraphTextArray.forEach((text) => {
261
+ textSelectionPage.steps.clickOnOptionInSpecifyPossibleOptionsSection(text);
262
+ });
263
+ textSelectionPage.steps.switchToPreviewTab();
264
+ break;
265
+ case 'Item preview':
266
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
267
+ itemPreviewPage.steps.switchToPreviewTab();
268
+ break;
269
+ case 'Grading view':
270
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
271
+ break;
272
+ };
273
+ });
274
+
275
+ beforeEach(() => {
276
+ switch (view) {
277
+ case 'Question preview':
278
+ textSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
279
+ textSelectionPage.steps.resetQuestionPreview();
280
+ break;
281
+ case 'Item preview':
282
+ textSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
283
+ itemPreviewPage.steps.resetQuestionPreview();
284
+ break;
285
+ case 'Grading view':
286
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
287
+ break;
288
+ }
289
+ });
290
+
291
+ if (view === 'Question preview') {
292
+ after(() => {
293
+ textSelectionPage.steps.clickOnSaveQuestionButton();
294
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
295
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
296
+ });
297
+ };
298
+
299
+ it('Question instructions should be visible', () => {
300
+ textSelectionPage.steps.verifyQuestionInstructionsTextPreviewTab('Highlight the correct statements.');
301
+ textSelectionPage.steps.verifyVisibityOfQuestionInstructionsText();
302
+ });
303
+
304
+ it('User should be able to attempt the question in student view, and correct/incorrect icons, "Your answer is correct/incorrect" label, and correct answer section should not be displayed in grading view', () => {
305
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[0]);
306
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[1]);
307
+ if (view === 'Grading view') {
308
+ studentViewPage.steps.submitResponse();
309
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
310
+ studentViewPage.steps.clickOnGoToGradingViewButton();
311
+ gradingViewPage.steps.verifyGradingViewScore('', 20);
312
+ };
313
+ if (view === 'Question preview' || view === 'Item preview') {
314
+ textSelectionPage.steps.checkManuallyScoredScoringLabel();
315
+ };
316
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[0]);
317
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[1]);
318
+ textSelectionPage.steps.verifyCorrectAnswerSectionNotExist();
319
+ });
320
+ });
321
+ });
322
+
323
+ views.forEach((view) => {
324
+ describe(`${view}: Text selection - Non scored`, { tags: 'smoke' }, () => {
325
+ abortEarlySetup();
326
+ before(() => {
327
+ switch (view) {
328
+ case 'Question preview':
329
+ textSelectionPage.steps.navigateToCreateQuestion('text selection');
330
+ cy.barsPreLoaderWait();
331
+ textSelectionPage.steps.addTextInQuestionInstructionsInputField('Highlight the correct statements.');
332
+ textSelectionPage.steps.clearQuestionInputField();
333
+ paragraphTextArray.forEach((paragraphText) => {
334
+ textSelectionPage.steps.addInputToQuestionInputField(`${paragraphText}{enter}`);
335
+ });
336
+ textSelectionPage.steps.addInputToQuestionInputField('{backspace}');
337
+ textSelectionPage.steps.switchTextSelectionMode('Paragraph');
338
+ paragraphTextArray.forEach((text) => {
339
+ textSelectionPage.steps.clickOnOptionInSpecifyPossibleOptionsSection(text);
340
+ });
341
+ textSelectionPage.steps.expandScoringTypeDropdown();
342
+ textSelectionPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
343
+ textSelectionPage.steps.selectOptionInSpecifyCorrectAnswerSection(paragraphTextArray[0]);
344
+ textSelectionPage.steps.selectOptionInSpecifyCorrectAnswerSection(paragraphTextArray[1]);
345
+ textSelectionPage.steps.switchToPreviewTab();
346
+ break;
347
+ case 'Item preview':
348
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
349
+ itemPreviewPage.steps.switchToPreviewTab();
350
+ break;
351
+ case 'Grading view':
352
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
353
+ break;
354
+ };
355
+ });
356
+
357
+ beforeEach(() => {
358
+ switch (view) {
359
+ case 'Question preview':
360
+ textSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
361
+ textSelectionPage.steps.resetQuestionPreview();
362
+ break;
363
+ case 'Item preview':
364
+ textSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
365
+ itemPreviewPage.steps.resetQuestionPreview();
366
+ break;
367
+ case 'Grading view':
368
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
369
+ break;
370
+ }
371
+ });
372
+
373
+ if (view === 'Question preview') {
374
+ after(() => {
375
+ textSelectionPage.steps.clickOnSaveQuestionButton();
376
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
377
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
378
+ });
379
+ };
380
+
381
+ it('When the user selects "Grading" view without attempting the question non-scoring label should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label "Correct answers:" should be displayed with correct answers and correct/incorrect icons should not be displayed', () => {
382
+ if (view === 'Grading view') {
383
+ studentViewPage.steps.submitResponse();
384
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
385
+ studentViewPage.steps.clickOnGoToGradingViewButton();
386
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
387
+ };
388
+ if (view === 'Question preview' || view === 'Item preview') {
389
+ textSelectionPage.steps.checkNonScoredScoringLabel();
390
+ textSelectionPage.steps.switchToGradingView();
391
+ };
392
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[0]);
393
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[1]);
394
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[2]);
395
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[3]);
396
+ textSelectionPage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
397
+ utilities.verifyInnerText(textSelectionPage.correctAnswersLabel(), 'Correct answers:');
398
+ textSelectionPage.steps.verifyCorrectIconForOptionCorrectAnswerSection(paragraphTextArray[0]);
399
+ textSelectionPage.steps.verifyCorrectIconForOptionCorrectAnswerSection(paragraphTextArray[1]);
400
+ });
401
+
402
+ it('When the user attempts the question incorrectly then non-scoring label should be displayed and on switching to "Grading" view, incorrect icons should be displayed beside all incorrect responses, a status message with text "Your answer is incorrect" and correct answer section with all correct answers should be displayed', () => {
403
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[2]);
404
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[3]);
405
+ if (view === 'Grading view') {
406
+ studentViewPage.steps.submitResponse();
407
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
408
+ studentViewPage.steps.clickOnGoToGradingViewButton();
409
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
410
+ };
411
+ if (view === 'Question preview' || view === 'Item preview') {
412
+ textSelectionPage.steps.checkNonScoredScoringLabel();
413
+ textSelectionPage.steps.switchToGradingView();
414
+ };
415
+ textSelectionPage.steps.verifyIncorrectIconForOption(paragraphTextArray[2]);
416
+ textSelectionPage.steps.verifyIncorrectIconForOption(paragraphTextArray[3]);
417
+ textSelectionPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
418
+ textSelectionPage.steps.verifyCorrectIconForOptionCorrectAnswerSection(paragraphTextArray[0]);
419
+ textSelectionPage.steps.verifyCorrectIconForOptionCorrectAnswerSection(paragraphTextArray[1]);
420
+ });
421
+
422
+ it('When the user attempts the question partially correct (some correct and some incorrect), non-scoring label should be displayed and on switching to "Grading" view, correct icon should be displayed beside the correct answer response, incorrect icon should be displayed beside the incorrect answer response, a status message with text "Your answer is incorrect" and correct answer section with all correct answers should be displayed', () => {
423
+ if (view === 'Grading view') {
424
+ studentViewPage.steps.clearResponses();
425
+ };
426
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[0]);
427
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[2]);
428
+ if (view === 'Grading view') {
429
+ studentViewPage.steps.submitResponse();
430
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
431
+ studentViewPage.steps.clickOnGoToGradingViewButton();
432
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
433
+ };
434
+ if (view === 'Question preview' || view === 'Item preview') {
435
+ textSelectionPage.steps.checkNonScoredScoringLabel();
436
+ textSelectionPage.steps.switchToGradingView();
437
+ };
438
+ textSelectionPage.steps.verifyCorrectIconForOption(paragraphTextArray[0]);
439
+ textSelectionPage.steps.verifyIncorrectIconForOption(paragraphTextArray[2]);
440
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[1]);
441
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[3]);
442
+ textSelectionPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
443
+ textSelectionPage.steps.verifyCorrectIconForOptionCorrectAnswerSection(paragraphTextArray[0]);
444
+ textSelectionPage.steps.verifyCorrectIconForOptionCorrectAnswerSection(paragraphTextArray[1]);
445
+ });
446
+
447
+ it('When the user attempts the question correctly, and on switching to "Grading" view, non-scoring label should be displayed, correct icons should be displayed beside the correct responses, a status message with text "Your answer is correct" should be displayed and correct answer section should not be displayed', () => {
448
+ if (view === 'Grading view') {
449
+ studentViewPage.steps.clearResponses();
450
+ };
451
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[0]);
452
+ textSelectionPage.steps.selectOptionInPreviewTab(paragraphTextArray[1]);
453
+ if (view === 'Grading view') {
454
+ studentViewPage.steps.submitResponse();
455
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
456
+ studentViewPage.steps.clickOnGoToGradingViewButton();
457
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
458
+ };
459
+ if (view === 'Question preview' || view === 'Item preview') {
460
+ textSelectionPage.steps.checkNonScoredScoringLabel();
461
+ textSelectionPage.steps.switchToGradingView();
462
+ };
463
+ textSelectionPage.steps.verifyCorrectIconForOption(paragraphTextArray[0]);
464
+ textSelectionPage.steps.verifyCorrectIconForOption(paragraphTextArray[1]);
465
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[2]);
466
+ textSelectionPage.steps.verifyCorrectIncorrectIconForOptionNotExist(paragraphTextArray[3]);
467
+ textSelectionPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
468
+ textSelectionPage.steps.verifyCorrectAnswerSectionNotExist();
469
+ });
470
+ });
471
+ });
472
+
242
473
  if (!grepTags || !grepTags.includes('smoke')) {
243
474
  describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
244
475
  abortEarlySetup();
@@ -71,7 +71,7 @@ describe('Create Item page - Text selection: Text selection modes in specify pos
71
71
  textSelectionPage.steps.verifyOptionCounterTextAndValue(1);
72
72
  });
73
73
 
74
- it('When user clears all selected options with the \'Clear\' button, then all the selected options should be deselected and the specify possible options field should be in errored state with the error message \'Error: Minimum one highlight option is required.\'', () => {
74
+ it('When user clears all selected options with the \'Clear\' button, then all the selected options should be deselected and the specify possible options field should not be in errored state with the error message', () => {
75
75
  cy.log('Pre-step: Selecting multiple texts to create options');
76
76
  textSelectionPage.steps.selectOptionInSpecifyPossibleOptionsSection('Custom', customTextArray[0]);
77
77
  textSelectionPage.steps.selectOptionInSpecifyPossibleOptionsSection('Custom', customTextArray[1]);
@@ -211,19 +211,16 @@ describe('Create Item page - Text selection: Text selection modes in specify pos
211
211
  textSelectionPage.steps.verifyOptionIsNotSelectedInSpecifyPossibleOptionsSection(paragraphTextArray[2]);
212
212
  });
213
213
 
214
- it('When user clicks on \'Confirm\' button of the Clear popup, then the popup should be closed and all the selected options should be deselected and the specify possible options field should be in errored state with the error message \'Error: Minimum one highlight option is required.\'', () => {
214
+ it('When user clicks on \'Confirm\' button of the Clear popup, then the popup should be closed and all the selected options should be deselected and the specify possible options field should not be in errored state with the error message', () => {
215
215
  cy.log('Pre-step: Again clicking on Clear button to open Clear popup');
216
216
  textSelectionPage.steps.clickOnClearOptionsButtonInSpecifyPossibleOptionSection();
217
217
  textSelectionPage.steps.clickOnAcceptButtonInDialogBox();
218
218
  for (let arrayIndex = 0; arrayIndex < paragraphTextArray.length; arrayIndex++) {
219
219
  textSelectionPage.steps.verifyOptionIsNotSelectedInSpecifyPossibleOptionsSection(paragraphTextArray[arrayIndex]);
220
220
  }
221
- utilities.verifyInnerText(textSelectionPage.errorMessage(), 'Error: Minimum one highlight option is required.');
222
- textSelectionPage.steps.verifyErroredStateOfSpecifyPossibleOptionsSection();
221
+ textSelectionPage.steps.verifyErrorMessageIsNotDisplayed();
223
222
  });
224
223
 
225
- textSelectionPage.tests.verifyErrorMessageCSSAndA11y();
226
-
227
224
  it('When user click on a deselected option, the option should be selected and the error message should disappear and option counter should display 1 count', () => {
228
225
  textSelectionPage.steps.selectOptionInSpecifyPossibleOptionsSection('Paragraph', paragraphTextArray[0]);
229
226
  utilities.verifyElementVisibilityState(textSelectionPage.errorMessage(), 'notExist');
@@ -286,8 +283,7 @@ describe('Create Item page - Text selection: Text selection modes in specify pos
286
283
  it('When user clears all selected options with the \'Clear\' button, then all the selected options should be deselected and the specify possible options field should be in errored state with the error message \'Error: Minimum one highlight option is required.\'', () => {
287
284
  textSelectionPage.steps.clearSelectedOptionsInSpecifyPossibleOptionSection();
288
285
  utilities.verifyElementVisibilityState(textSelectionPage.selectedOptionSpecifyPossibleOptions(), 'notExist');
289
- utilities.verifyInnerText(textSelectionPage.errorMessage(), 'Error: Minimum one highlight option is required.');
290
- textSelectionPage.steps.verifyErroredStateOfSpecifyPossibleOptionsSection();
286
+ textSelectionPage.steps.verifyErrorMessageIsNotDisplayed();
291
287
  });
292
288
 
293
289
  textSelectionPage.tests.verifyErrorMessageCSSAndA11y();
@@ -355,18 +351,17 @@ describe('Create Item page - Text selection: Text selection modes in specify pos
355
351
  textSelectionPage.steps.verifyHoverStateOfDeselectedOptionInSpecifyPossibleOptionsSection(wordTextArray[2], 'blue');
356
352
  });
357
353
 
358
- it('When user clears all selected options with the \'Clear\' button, then all the selected options should be deselected and the specify possible options field should be in errored state with the error message \'Error: Minimum one highlight option is required.\'', () => {
354
+ it('When user clears all selected options with the \'Clear\' button, then all the selected options should be deselected and the specify possible options field should not be in errored state with the error message', () => {
359
355
  textSelectionPage.steps.clearSelectedOptionsInSpecifyPossibleOptionSection();
360
356
  for (let arrayIndex = 0; arrayIndex < sentenceTextArray.length; arrayIndex++) {
361
357
  textSelectionPage.steps.verifyOptionIsNotSelectedInSpecifyPossibleOptionsSection(wordTextArray[arrayIndex]);
362
358
  }
363
- utilities.verifyInnerText(textSelectionPage.errorMessage(), 'Error: Minimum one highlight option is required.');
364
- textSelectionPage.steps.verifyErroredStateOfSpecifyPossibleOptionsSection();
359
+ textSelectionPage.steps.verifyErrorMessageIsNotDisplayed();
365
360
  });
366
361
 
367
362
  textSelectionPage.tests.verifyErrorMessageCSSAndA11y();
368
363
 
369
- it('When user click on a deselected option, the option should be selected and the error message should disappear and option counter should display 1 count', () => {
364
+ it('When user click on a deselected option, the option should be selected and the error message should not be displayed and option counter should display 1 count', () => {
370
365
  textSelectionPage.steps.selectOptionInSpecifyPossibleOptionsSection('Word', wordTextArray[0]);
371
366
  utilities.verifyElementVisibilityState(textSelectionPage.errorMessage(), 'notExist');
372
367
  textSelectionPage.steps.verifyOptionCounterTextAndValue(1);
@@ -12,6 +12,16 @@ const allowedQuestions = [
12
12
  'short text response',
13
13
  'Text Entry Math',
14
14
  ]
15
+
16
+ const dropDownArray = [
17
+ 'All question types',
18
+ 'Multiple choice selection',
19
+ 'Fill in the gaps',
20
+ 'Drag and drop',
21
+ 'List',
22
+ 'Constructed response',
23
+ 'Math response',
24
+ ]
15
25
  describe("Create Review Item", () => {
16
26
  abortEarlySetup();
17
27
  before(() => {
@@ -19,7 +29,7 @@ describe("Create Review Item", () => {
19
29
  cy.deleteThinkSphereItem('~zzz item name');
20
30
  cy.createThinkSphereItem('~zzz item name');
21
31
  thinkSpherePage.steps.navigateToReviewItemsPage();
22
- })
32
+ });
23
33
 
24
34
  after(() => {
25
35
  cy.deleteThinkSphereItem('~zzz item name');
@@ -42,6 +52,49 @@ describe("Create Review Item", () => {
42
52
  utilities.verifyElementVisibilityState(thinkSpherePage.browseItemPageHeader(), 'visible');
43
53
  });
44
54
 
55
+ it('When user clicks on create question, search bar should appear with placeholder, \'Search by question and tool tip \'Search\'', () => {
56
+ thinkSpherePage.steps.clickOnCreateItemButton();
57
+ thinkSpherePage.steps.verifySearchBarComponent();
58
+ thinkSpherePage.steps.verifySearchIcon();
59
+ thinkSpherePage.steps.verifyCloseIcon();
60
+ thinkSpherePage.steps.verifyReviewItemSearchBarPlaceholder();
61
+ thinkSpherePage.steps.hoverOnSearchBarComponent();
62
+ thinkSpherePage.searchBarParent().verifyTooltip('Search');
63
+ });
64
+
65
+ it('The author should be able to type in letters numbers, special character, alpha numeric characters in the search input field.', () => {
66
+ const testInputs = [
67
+ 'abc', // letters
68
+ '123', // numbers
69
+ '!@#$%^&*()', // special characters
70
+ 'abc123XYZ', // alphanumeric
71
+ 'test@123.com' // mixed
72
+ ];
73
+
74
+ testInputs.forEach((input) => {
75
+ thinkSpherePage.steps.typeInSearchBar(input);
76
+ });
77
+ });
78
+
79
+ it('When the author types the question type in search bar, only that particular question card should be present', () => {
80
+ thinkSpherePage.steps.searchInSearchBar('single selection');
81
+ thinkSpherePage.steps.verifyLength(thinkSpherePage.cardWrapper(), 1);
82
+ utilities.verifyInnerText(thinkSpherePage.cardLabel(), 'Single selection');
83
+ });
84
+
85
+ it('Create review item page should have a categories dropdown with default value as \'All question types\'', () => {
86
+ utilities.verifyElementVisibilityState(thinkSpherePage.categoriesDropDown(), 'visible');
87
+ utilities.verifyInnerText(thinkSpherePage.categoriesDropDownLabelText(), 'All question types');
88
+ });
89
+
90
+ it(`The category dropdown should contain the following dropdown options and when any question type is clicked the cards should have those question types only `, () => {
91
+ thinkSpherePage.steps.expandDropdown();
92
+ thinkSpherePage.steps.verifyDropdownOptions(dropDownArray);
93
+ thinkSpherePage.steps.clickOnDropDownCategory(3);
94
+ utilities.verifyInnerText(thinkSpherePage.cardLabel(), 'Drag and drop into categories');
95
+ thinkSpherePage.steps.clickOnCancelButton();
96
+ });
97
+
45
98
  it('When the user creates a new review item and then saves it, it should be displayed in the thinkSphere item page', () => {
46
99
  thinkSpherePage.steps.createReviewQuestion();
47
100
  utilities.verifyElementCount(thinkSpherePage.widgetHeaderQuestionTitle(), 2);