itemengine-cypress-automation 1.0.342-regressionFixes18thMarch-b97f3ea.0 → 1.0.342

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 (259) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  3. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +398 -0
  4. package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +329 -0
  5. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +260 -0
  6. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +368 -0
  7. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  13. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  14. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  15. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  16. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  17. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  18. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  19. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  20. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  21. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  22. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +0 -2
  23. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  24. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  25. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +1 -1
  26. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +3 -3
  27. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  28. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  29. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  30. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  31. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  32. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  33. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  34. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  35. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  36. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  37. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  38. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  39. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  40. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  41. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  42. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  43. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  44. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  45. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  46. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  47. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  48. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  49. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  50. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +1 -0
  51. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  52. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  53. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +1 -1
  64. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  65. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  66. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  67. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  68. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +72 -0
  69. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  70. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  71. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  72. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  73. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  74. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  75. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  76. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  77. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  78. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  79. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  80. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  81. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  82. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  83. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  84. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  85. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  86. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  87. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  88. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  89. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  90. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  91. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  92. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  93. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  94. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  95. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  96. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  97. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  98. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  99. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  100. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  101. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  102. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  103. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  104. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  105. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +2 -1
  106. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  107. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  108. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  109. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  110. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  111. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  112. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  113. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  114. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  115. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  116. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  117. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  118. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  119. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  120. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  121. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  122. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  123. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +226 -0
  124. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  125. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  126. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  127. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  128. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  129. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  130. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  131. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  132. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  133. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  134. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +4 -2
  135. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  136. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  137. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  138. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +73 -0
  139. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  140. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  141. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  142. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  143. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  144. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  145. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  146. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  147. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  148. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  149. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  150. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  151. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
  152. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  153. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  154. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  155. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  156. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  157. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  158. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  159. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  160. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  161. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +84 -0
  162. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +84 -0
  163. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +63 -0
  164. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +62 -0
  165. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +62 -0
  166. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +63 -0
  167. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +2 -8
  168. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +0 -8
  169. package/cypress/e2e/ILC/TextEntryMath/customSettings.js +4 -0
  170. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  171. package/cypress/e2e/ILC/TextEntryMath/equationEditor.smoke.js +8 -0
  172. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  173. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  174. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  175. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  176. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -2
  177. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodsWithoutSetResponse.smoke.js +1 -0
  178. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  179. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +10 -7
  180. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  181. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  182. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  183. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
  184. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
  185. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
  186. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +185 -0
  187. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  188. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +289 -0
  189. package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
  190. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +581 -0
  191. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  192. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
  193. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +1 -1
  194. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  195. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  196. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  197. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  198. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  199. package/cypress/e2e/Sessions/scores.js +9 -5
  200. package/cypress/e2e/applitools.config.js +3 -3
  201. package/cypress/fixtures/theme/ilc.json +14 -1
  202. package/cypress/fixtures/uploads/sample.webm +0 -0
  203. package/cypress/fixtures/uploads/sample.wmv +0 -0
  204. package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
  205. package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
  206. package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
  207. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  208. package/cypress/pages/audioPlayerPage.js +22 -22
  209. package/cypress/pages/chartsBarPage.js +20 -0
  210. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  211. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  212. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  213. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +16 -28
  214. package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
  215. package/cypress/pages/components/browseItemsPage.js +998 -7
  216. package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
  217. package/cypress/pages/components/ckEditorEquationEditorComponent.js +4 -4
  218. package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
  219. package/cypress/pages/components/ckEditorLinkComponent.js +3 -3
  220. package/cypress/pages/components/commonComponents.js +8 -1
  221. package/cypress/pages/components/createQuestionBasePage.js +8 -1
  222. package/cypress/pages/components/defaultToolDropdown.js +7 -6
  223. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  224. package/cypress/pages/components/equationEditorSectionCommonComponent.js +13 -26
  225. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -3
  226. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -35
  227. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  228. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  229. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  230. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  231. package/cypress/pages/components/scoringSectionBaseEditTab.js +14 -12
  232. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  233. package/cypress/pages/desmosGeometryPage.js +184 -4
  234. package/cypress/pages/dialogBoxBase.js +2 -1
  235. package/cypress/pages/drawingResponsePage.js +16 -15
  236. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  237. package/cypress/pages/gradingViewPage.js +8 -0
  238. package/cypress/pages/graphingPage.js +27 -8
  239. package/cypress/pages/gridFillPage.js +15 -6
  240. package/cypress/pages/index.js +2 -1
  241. package/cypress/pages/listOrderingPage.js +32 -1
  242. package/cypress/pages/matchingPage.js +26 -7
  243. package/cypress/pages/multipleSelectionPage.js +10 -39
  244. package/cypress/pages/numberLineLabelPage.js +31 -8
  245. package/cypress/pages/numberLinePage.js +19 -7
  246. package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
  247. package/cypress/pages/singleSelectionPage.js +0 -37
  248. package/cypress/pages/textEntryMathPage.js +21 -0
  249. package/cypress/pages/thinkSpherePage.js +1874 -0
  250. package/cypress/pages/uploadResponsePage.js +2 -1
  251. package/cypress/pages/videoResponsePage.js +3 -0
  252. package/cypress/support/commands.js +7 -4
  253. package/cypress/support/e2e.js +1 -0
  254. package/cypress/support/helpers/createItem.js +1181 -1
  255. package/cypress/support/helpers/utilities.js +75 -1
  256. package/deploy/smoke/deploy.yaml +2 -2
  257. package/package.json +4 -4
  258. package/scripts/dataApi.mjs +3 -0
  259. package/scripts/sorry-cypress.mjs +13 -0
@@ -227,4 +227,54 @@ describe('Create Item page - List ordering: All or nothing scoring with alternat
227
227
  cy.checkAccessibility(listOrderingPage.previewTabQuestionWrapper());
228
228
  });
229
229
  });
230
+
231
+ describe('Question Preview: AutoScored - All or Nothing with blank scoring: When correct answer points are greater than alternative answer points', () => {
232
+ abortEarlySetup();
233
+ before(() => {
234
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
235
+ cy.barsPreLoaderWait();
236
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
237
+ listOrderingPage.steps.addInputToOptionsInputField(options);
238
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
239
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
240
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
241
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
242
+ listOrderingPage.steps.allotPoints(21);
243
+ listOrderingPage.steps.addAlternativeAnswerAccordion(1);
244
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
245
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
246
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
247
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
248
+ listOrderingPage.steps.allotPoints(12);
249
+ listOrderingPage.steps.expandCorrectAnswerAccordion();
250
+ listOrderingPage.steps.clickAndResetDropOptionSeperateList('seed');
251
+ listOrderingPage.steps.clickAndResetDropOptionSeperateList('flower');
252
+ listOrderingPage.steps.clickAndResetDropOptionSeperateList('sprout');
253
+ listOrderingPage.steps.clickAndResetDropOptionSeperateList('plant');
254
+ listOrderingPage.steps.switchToPreviewTab();
255
+ });
256
+
257
+ it('When user attempts the question with responses from the alternative accordion then the user should be awarded points specified for correct points accordion (less than full points) and on switching to \'Grading\' view, correct icons should be displayed beside all the correct responses, a status message with text \'Your answer is correct\' should be displayed and correct answer section should not be displayed', () => {
258
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
259
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
260
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
261
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
262
+ listOrderingPage.steps.verifyPreviewScore(12, 21);
263
+ listOrderingPage.steps.switchToGradingView();
264
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExist();
265
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
266
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
267
+ });
268
+
269
+ it('When user attempts the question with responses from the correct accordion i.e select an option, then the user should be awarded full points specified for correct points accordion and on switching to \'Grading\' view, correct icons should be displayed beside all the correct responses, a status message with text \'Your answer is correct\' should be displayed and correct answer section should not be displayed', () => {
270
+ listOrderingPage.steps.resetQuestionPreview();
271
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
272
+ listOrderingPage.steps.clickAndResetDropOptionSeperateList('seed');
273
+ listOrderingPage.steps.verifyPreviewScore(21, 21);
274
+ listOrderingPage.steps.switchToGradingView();
275
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExist();
276
+ listOrderingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
277
+ listOrderingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
278
+ });
279
+ });
230
280
  });
@@ -0,0 +1,101 @@
1
+ import { listOrderingPage } from "../../../../pages/listOrderingPage";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+
4
+ const options = ['sprout', 'plant', 'flower', 'seed'];
5
+
6
+ describe('Create Item page - List ordering', () => {
7
+ before(() => {
8
+ cy.loginAs('admin');
9
+ });
10
+
11
+ describe('Question Preview: Auto Scored With Points', () => {
12
+ abortEarlySetup();
13
+ before(() => {
14
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
15
+ cy.barsPreLoaderWait();
16
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
17
+ listOrderingPage.steps.addInputToOptionsInputField(options);
18
+ listOrderingPage.steps.switchToPreviewTab();
19
+ });
20
+
21
+ it('In Preview tab, when an answer is not set then manually scored scoring label should be displayed', () => {
22
+ listOrderingPage.steps.checkManuallyScoredScoringLabel();
23
+ });
24
+
25
+ it('In Preview tab, when user switches to grading view then no banner and correct answer should be displayed', () => {
26
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
27
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
28
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
29
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
30
+ listOrderingPage.steps.switchToGradingView();
31
+ listOrderingPage.steps.verifyAnswerStatusBannerNotExist();
32
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExist();
33
+ });
34
+
35
+ it('When user allocates points to the question then the scoring label should be displayed as manually scored and banner and correct answer status should not exist', () => {
36
+ listOrderingPage.steps.switchToEditTab();
37
+ listOrderingPage.steps.allotPoints(10);
38
+ listOrderingPage.steps.switchToPreviewTab();
39
+ listOrderingPage.steps.checkManuallyScoredScoringLabel();
40
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
41
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
42
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
43
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
44
+ listOrderingPage.steps.switchToGradingView();
45
+ listOrderingPage.steps.verifyAnswerStatusBannerNotExist();
46
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExist();
47
+ });
48
+ });
49
+
50
+ describe('Question Preview: Auto Scored Without Points', () => {
51
+ abortEarlySetup();
52
+ before(() => {
53
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
54
+ cy.barsPreLoaderWait();
55
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
56
+ listOrderingPage.steps.addInputToOptionsInputField(options);
57
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
58
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
59
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
60
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
61
+ listOrderingPage.steps.switchToPreviewTab();
62
+ });
63
+
64
+ it('In Preview tab, when points are not set then manually scored scoring label should be displayed', () => {
65
+ listOrderingPage.steps.checkManuallyScoredScoringLabel();
66
+ });
67
+
68
+ it('In Preview tab, when user switches to grading view then banner and correct answer should be displayed', () => {
69
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
70
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
71
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
72
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
73
+ listOrderingPage.steps.switchToGradingView();
74
+ listOrderingPage.steps.verifyAnswerStatusBannerExist();
75
+ listOrderingPage.steps.verifyCorrectAnswerSectionExist();
76
+ });
77
+ });
78
+
79
+ describe('Question Preview: Non Scored', () => {
80
+ abortEarlySetup();
81
+ before(() => {
82
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
83
+ cy.barsPreLoaderWait();
84
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
85
+ });
86
+
87
+ it('When the user selects \'Grading\' view without setting the answer, correct answers section and answer status banner should not be displayed', () => {
88
+ listOrderingPage.steps.addInputToOptionsInputField(options);
89
+ listOrderingPage.steps.expandScoringTypeDropdown();
90
+ listOrderingPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
91
+ listOrderingPage.steps.switchToPreviewTab();
92
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
93
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
94
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
95
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
96
+ listOrderingPage.steps.switchToGradingView();
97
+ listOrderingPage.steps.verifyAnswerStatusBannerNotExist();
98
+ listOrderingPage.steps.verifyCorrectAnswerSectionNotExist();
99
+ });
100
+ });
101
+ });
@@ -0,0 +1,38 @@
1
+ import { listOrderingPage } from "../../../pages/listOrderingPage";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+
4
+ const options = ['sprout', 'plant', 'flower', 'seed'];
5
+
6
+ describe('Create question page - List ordering : Reorder as a separate list', () => {
7
+ before(() => {
8
+ cy.loginAs('admin');
9
+ });
10
+
11
+ describe('Check Alternative Answer Button', () => {
12
+ abortEarlySetup();
13
+ before(() => {
14
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
15
+ cy.barsPreLoaderWait();
16
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
17
+ listOrderingPage.steps.addInputToOptionsInputField(options);
18
+ });
19
+
20
+ it('When correct answer is not set then alternative answer should be disabled', () => {
21
+ listOrderingPage.steps.checkAlternativeButtonDisabled();
22
+ });
23
+
24
+ it('When correct answer is set then alternative answer should be enabled', () => {
25
+ listOrderingPage.steps.allotPoints(10);
26
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
27
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
28
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
29
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
30
+ listOrderingPage.steps.checkAlternativeButtonEnabled();
31
+ });
32
+
33
+ it('User should be able to add \'Alternative\' answer using the \'Add alternative\' button, when user has not set any answer in the \'Alternative\' accordion and clicks on the \'Correct\' accordion then \'Correct\' accordion should be expanded', () => {
34
+ listOrderingPage.steps.clickOnAddAlternativeAnswerButton();
35
+ listOrderingPage.steps.expandCorrectAnswerAccordion();
36
+ });
37
+ });
38
+ });
@@ -164,4 +164,28 @@ describe('Create Item page - List ordering : Question instructions and prompt se
164
164
  utilities.verifyElementCount(listOrderingPage.optionsSeperateList(), 4);
165
165
  });
166
166
  });
167
+
168
+ describe('User should be able to edit incomplete authored question', () => {
169
+ abortEarlySetup();
170
+ before(() => {
171
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
172
+ cy.barsPreLoaderWait();
173
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
174
+ listOrderingPage.steps.saveAQuestionWithIncompleteAuthoring();
175
+ listOrderingPage.steps.editItem();
176
+ });
177
+
178
+ it('Warning icons should be displayed on the required input fields', () => {
179
+ listOrderingPage.steps.verifyWarningIconOnRequiredFields([
180
+ 'Please enter all option values', 'Please set points',
181
+ ]);
182
+ });
183
+
184
+ it('When required input fields are filled then warning icons should disappear', () => {
185
+ listOrderingPage.steps.addInputToOptionsInputField(options);
186
+ listOrderingPage.steps.allotPoints(10);
187
+ listOrderingPage.steps.verifyErrorMessageIsNotDisplayed();
188
+ listOrderingPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
189
+ });
190
+ });
167
191
  });
@@ -164,9 +164,12 @@ describe('Create item page - List ordering: Scoring section', () => {
164
164
  listOrderingPage.steps.addTextInQuestionInstructionsInputField('Arrange options in correct order.');
165
165
  listOrderingPage.steps.addInputToOptionsInputField(options);
166
166
  listOrderingPage.steps.selectAutoScoredScoringSubtype('Partial different weights');
167
+ listOrderingPage.steps.clickAndDropOptionSeperateList('sprout');
168
+ listOrderingPage.steps.clickAndDropOptionSeperateList('plant');
169
+ listOrderingPage.steps.clickAndDropOptionSeperateList('flower');
170
+ listOrderingPage.steps.clickAndDropOptionSeperateList('seed');
167
171
  });
168
172
 
169
- listOrderingPage.tests.verifyContentsOfSpecifyCorrectAnswerSectionSeperateList();
170
173
 
171
174
  it('When the user has switched to \'Partial - different weights\' scoring, then \'Points\' label should be displayed and a points input field should be displayed besides each option', () => {
172
175
  utilities.verifyInnerText(listOrderingPage.partialDifferentWeightsPointsLabelSeparateList(), 'Points');
@@ -1,7 +1,9 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { dialogBoxBase, listOrderingPage } from "../../../pages";
2
+ import { dialogBoxBase, itemPreviewPage, listOrderingPage } from "../../../pages";
3
3
  import utilities from "../../../support/helpers/utilities";
4
+ import { browseItemsPage } from "../../../pages/components";
4
5
  const options = ['sprout', 'plant', 'flower', 'seed'];
6
+ let itemReferenceID = "";
5
7
 
6
8
  describe('Create item page - Matching : Header section and Saving question', () => {
7
9
  before(() => {
@@ -72,5 +74,37 @@ describe('Create item page - Matching : Header section and Saving question', ()
72
74
  });
73
75
  listOrderingPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
74
76
  });
77
+
78
+ describe('Saving a question with incomplete authoring', () => {
79
+ abortEarlySetup();
80
+ before(() => {
81
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
82
+ cy.barsPreLoaderWait();
83
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
84
+ });
85
+
86
+ it('User should be able to save the question with incomplete authoring and display a snackbar with the text "Saved successfully!" when the Save Question button is clicked', () => {
87
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all option values', 'Please set points']);
88
+ listOrderingPage.steps.saveAQuestionWithIncompleteAuthoring();
89
+ });
90
+ listOrderingPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
91
+ });
92
+ });
93
+
94
+ describe('Save as you go - Browse item page contents', () => {
95
+ abortEarlySetup();
96
+ before(() => {
97
+ listOrderingPage.steps.navigateToCreateQuestion('list ordering');
98
+ cy.barsPreLoaderWait();
99
+ listOrderingPage.steps.selectOrderingLayoutOption('Reorder as a separate list');
100
+ listOrderingPage.steps.saveAQuestionWithIncompleteAuthoring();
101
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
102
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
103
+ browseItemsPage.steps.navigateToBrowseItemsPage();
104
+ });
105
+
106
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
107
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
108
+ });
75
109
  });
76
110
  });
@@ -0,0 +1,98 @@
1
+ import { matchingPage } from "../../../../pages";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+
4
+ describe('Create Item page - Matching', () => {
5
+ before(() => {
6
+ cy.loginAs('admin');
7
+ });
8
+
9
+ describe('Question Preview: Auto Scored With Points', () => {
10
+ abortEarlySetup();
11
+ before(() => {
12
+ matchingPage.steps.navigateToCreateQuestion('matching');
13
+ cy.barsPreLoaderWait();
14
+ matchingPage.steps.addTextInQuestionInstructionsInputField('Match the items correctly');
15
+ matchingPage.steps.enterTextInPromptInputField(['Prompt 1', 'Prompt 2', 'Prompt 3']);
16
+ matchingPage.steps.enterTextInOptionInputField(['Bear', 'Eagle', 'Fish']);
17
+ matchingPage.steps.switchToPreviewTab();
18
+ });
19
+
20
+ it('In Preview tab, when an answer is not set then manually scored scoring label should be displayed', () => {
21
+ matchingPage.steps.checkManuallyScoredScoringLabel();
22
+ });
23
+
24
+ it('In Preview tab, when user switches to grading view then no banner and correct answer should be displayed', () => {
25
+ matchingPage.steps.clickAndDropOptionInDropzonePreviewTab([
26
+ { optionText: 'Bear', dropzoneIndex: 0 }, { optionText: 'Eagle', dropzoneIndex: 1 }, { optionText: 'Fish', dropzoneIndex: 2 },
27
+ ]);
28
+ matchingPage.steps.switchToGradingView();
29
+ matchingPage.steps.verifyAnswerStatusBannerNotExist();
30
+ matchingPage.steps.verifyCorrectAnswerSectionNotExist();
31
+ });
32
+
33
+ it('When user allocates points to the question then the scoring label should be displayed as manually scored and banner and correct answer status should not exist', () => {
34
+ matchingPage.steps.switchToEditTab();
35
+ matchingPage.steps.allotPoints(2);
36
+ matchingPage.steps.switchToPreviewTab();
37
+ matchingPage.steps.checkManuallyScoredScoringLabel();
38
+ matchingPage.steps.clickAndDropOptionInDropzonePreviewTab([
39
+ { optionText: 'Bear', dropzoneIndex: 0 }, { optionText: 'Eagle', dropzoneIndex: 1 }, { optionText: 'Fish', dropzoneIndex: 2 },
40
+ ]);
41
+ matchingPage.steps.switchToGradingView();
42
+ matchingPage.steps.verifyAnswerStatusBannerNotExist();
43
+ matchingPage.steps.verifyCorrectAnswerSectionNotExist();
44
+ });
45
+ });
46
+
47
+ describe('Question Preview: Auto Scored Without Points', () => {
48
+ abortEarlySetup();
49
+ before(() => {
50
+ matchingPage.steps.navigateToCreateQuestion('matching');
51
+ cy.barsPreLoaderWait();
52
+ matchingPage.steps.addTextInQuestionInstructionsInputField('Match the items correctly');
53
+ matchingPage.steps.enterTextInPromptInputField(['Prompt 1', 'Prompt 2', 'Prompt 3']);
54
+ matchingPage.steps.enterTextInOptionInputField(['Bear', 'Eagle', 'Fish']);
55
+ matchingPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection([
56
+ { optionText: 'Bear', dropzoneIndex: 0 }, { optionText: 'Eagle', dropzoneIndex: 1 }, { optionText: 'Fish', dropzoneIndex: 2 },
57
+ ]);
58
+ matchingPage.steps.switchToPreviewTab();
59
+ });
60
+
61
+ it('In Preview tab, when points are not set then manually scored scoring label should be displayed', () => {
62
+ matchingPage.steps.checkManuallyScoredScoringLabel();
63
+ });
64
+
65
+ it('In Preview tab, when user switches to grading view then banner and correct answer should be displayed', () => {
66
+ matchingPage.steps.clickAndDropOptionInDropzonePreviewTab([
67
+ { optionText: 'Bear', dropzoneIndex: 0 }, { optionText: 'Eagle', dropzoneIndex: 1 }, { optionText: 'Fish', dropzoneIndex: 2 },
68
+ ]);
69
+ matchingPage.steps.switchToGradingView();
70
+ matchingPage.steps.verifyAnswerStatusBannerExist();
71
+ matchingPage.steps.verifyCorrectAnswerSectionExist();
72
+ });
73
+ });
74
+
75
+ describe('Question Preview: Non Scored', () => {
76
+ abortEarlySetup();
77
+ before(() => {
78
+ matchingPage.steps.navigateToCreateQuestion('matching');
79
+ cy.barsPreLoaderWait();
80
+ matchingPage.steps.addTextInQuestionInstructionsInputField('Match the items correctly');
81
+ matchingPage.steps.enterTextInPromptInputField(['Prompt 1', 'Prompt 2', 'Prompt 3']);
82
+ matchingPage.steps.enterTextInOptionInputField(['Bear', 'Eagle', 'Fish']);
83
+ matchingPage.steps.expandScoringTypeDropdown();
84
+ matchingPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
85
+ });
86
+
87
+ it('When the user selects \'Grading\' view without setting the answer, correct answers section and answer status banner should not be displayed', () => {
88
+ matchingPage.steps.switchToPreviewTab();
89
+ matchingPage.steps.clickAndDropOptionInDropzonePreviewTab([
90
+ { optionText: 'Bear', dropzoneIndex: 0 }, { optionText: 'Eagle', dropzoneIndex: 1 }, { optionText: 'Fish', dropzoneIndex: 2 },
91
+
92
+ ]);
93
+ matchingPage.steps.switchToGradingView();
94
+ matchingPage.steps.verifyAnswerStatusBannerNotExist();
95
+ matchingPage.steps.verifyCorrectAnswerSectionNotExist();
96
+ });
97
+ });
98
+ });
@@ -0,0 +1,38 @@
1
+ import { matchingPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+
4
+ describe('Create item page - Matching: Check Alternative Answer Button', () => {
5
+ before(() => {
6
+ cy.loginAs('admin');
7
+ });
8
+
9
+ describe('Check Alternative Answer Button', () => {
10
+ abortEarlySetup();
11
+ before(() => {
12
+ matchingPage.steps.navigateToCreateQuestion('matching');
13
+ cy.barsPreLoaderWait();
14
+ matchingPage.steps.addTextInQuestionInstructionsInputField('Match the prompts with the correct options.');
15
+ matchingPage.steps.enterTextInPromptInputField(['Prompt 1', 'Prompt 2', 'Prompt 3']);
16
+ matchingPage.steps.enterTextInOptionInputField(['Option 1', 'Option 2', 'Option 3']);
17
+ });
18
+
19
+ it('When correct answer is not set then alternative answer button should be disabled', () => {
20
+ matchingPage.steps.checkAlternativeButtonDisabled();
21
+ });
22
+
23
+ it('When correct answer is set then alternative answer button should be enabled', () => {
24
+ matchingPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection([
25
+ { optionText: 'Option 1', dropzoneIndex: 0 },
26
+ { optionText: 'Option 2', dropzoneIndex: 1 },
27
+ { optionText: 'Option 3', dropzoneIndex: 2 },
28
+ ]);
29
+
30
+ matchingPage.steps.checkAlternativeButtonEnabled();
31
+ });
32
+
33
+ it('User should be able to add an alternative answer using the "Add alternative" button, and when no answer is set in the "Alternative" accordion, clicking on the "Correct" accordion should expand it', () => {
34
+ matchingPage.steps.clickOnAddAlternativeAnswerButton();
35
+ matchingPage.steps.expandCorrectAnswerAccordion();
36
+ });
37
+ });
38
+ });
@@ -130,11 +130,10 @@ describe('Create Item Page: Matching: Click and drop cases for \'Standard\' and
130
130
  matchingPage.steps.verifyInactiveStateOfAllDropzoneInSpecifyCorrectAnswerSection();
131
131
  });
132
132
 
133
- it('When the user selects a filled option and clicks in the options container, the selected option should get back in the options container and \'Error: Please set a correct answer\' error message should be displayed', () => {
133
+ it('When the user selects a filled option and clicks in the options container, the selected option should get back in the options container and \'Error: Please set a correct answer\' error message should not be displayed', () => {
134
134
  matchingPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Flower');
135
135
  matchingPage.steps.verifyDraggableOptionInOptionsContainerSpecifyCorrectAnswerSection(['Petals', 'Flower', 'Stem']);
136
- utilities.verifyInnerText(matchingPage.errorMessage(), 'Error: Please set a correct answer.');
137
- utilities.verifyElementVisibilityState(matchingPage.errorMessage(), 'visible');
136
+ matchingPage.steps.verifyErrorMessageIsNotDisplayed();
138
137
  });
139
138
 
140
139
 
@@ -442,8 +441,7 @@ describe('Create Item Page: Matching: Click and drop cases for \'Standard\' and
442
441
  matchingPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Flower');
443
442
  matchingPage.steps.verifyGroupedContainerContentsInSpecifyCorrectAnswerSection(0, groupedOptions);
444
443
  matchingPage.steps.verifyGroupedContainerContentsInSpecifyCorrectAnswerSection(1, groupedOptionsTwo);
445
- utilities.verifyInnerText(matchingPage.errorMessage(), 'Error: Please set a correct answer.');
446
- utilities.verifyElementVisibilityState(matchingPage.errorMessage(), 'visible');
444
+ matchingPage.steps.verifyErrorMessageIsNotDisplayed();
447
445
  });
448
446
 
449
447
  it('When the user fills a dropzone, the dropzone should get filled with the option and the \'Error: Please set a correct answer\' error message should disappear', () => {
@@ -137,6 +137,10 @@ describe('Create Item page - Matching: Draggable options section', () => {
137
137
  matchingPage.steps.verifyDeleteOptionButtonDisabledState();
138
138
  });
139
139
 
140
+ it('When the user not entering text in the option input fields, then the \'Add group\' button should be disable', () => {
141
+ utilities.verifyElementDisabled(matchingPage.addGroupButton());
142
+ });
143
+
140
144
  it('When the user enters text in the options input field, the error messages should disappear', () => {
141
145
  matchingPage.steps.enterTextInOneOptionInputField(0, 'option 1');
142
146
  matchingPage.steps.enterTextInOneOptionInputField(1, 'option 2');
@@ -0,0 +1,41 @@
1
+ import { matchingPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+
4
+ describe('Create item page - Matching', () => {
5
+ before(() => {
6
+ cy.loginAs('admin');
7
+ });
8
+
9
+ describe('User should be able to edit incomplete authored question', () => {
10
+ abortEarlySetup();
11
+ before(() => {
12
+ matchingPage.steps.navigateToCreateQuestion('matching');
13
+ cy.barsPreLoaderWait();
14
+ matchingPage.steps.saveAQuestionWithIncompleteAuthoring();
15
+ matchingPage.steps.editItem();
16
+ });
17
+
18
+ it('Warning icons should be displayed on the required input fields', () => {
19
+ matchingPage.steps.verifyWarningIconOnRequiredFields([
20
+ 'Please enter all prompt values',
21
+ 'Please enter all option values',
22
+ 'Please set points',
23
+ ]);
24
+ });
25
+
26
+ it('When required input fields are filled then warning icons should disappear', () => {
27
+ matchingPage.steps.enterTextInPromptInputField(['Prompt 1', 'Prompt 2', 'Prompt 3']);
28
+ matchingPage.steps.enterTextInOptionInputField(['Option 1', 'Option 2', 'Option 3']);
29
+ matchingPage.steps.allotPoints(10);
30
+ matchingPage.steps.verifyErrorMessageIsNotDisplayed();
31
+ });
32
+
33
+ it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
34
+ matchingPage.steps.saveAQuestionAndVerifySnackbar();
35
+ });
36
+
37
+ it('Warning icon should not be visible', () => {
38
+ matchingPage.steps.verifyWarningIconNotExist();
39
+ });
40
+ });
41
+ });
@@ -1,9 +1,12 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { dialogBoxBase, matchingPage } from "../../../pages";
2
+ import { dialogBoxBase, matchingPage, itemPreviewPage } from "../../../pages";
3
+ import { browseItemsPage } from "../../../pages/components";
3
4
  import utilities from "../../../support/helpers/utilities";
4
5
  const options = ['Flower', 'Leaves', 'Flowers'];
5
6
  const promptTextArray = ['Wild', 'Aquatic', 'Pet'];
6
7
 
8
+ var itemReferenceID = "";
9
+
7
10
  describe('Create item page - Matching : Header section and Saving question', () => {
8
11
  before(() => {
9
12
  cy.loginAs('admin');
@@ -44,19 +47,11 @@ describe('Create item page - Matching : Header section and Saving question', ()
44
47
  });
45
48
 
46
49
  describe('Validation error messages', () => {
47
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
50
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all prompt values', 'Please enter all option values', 'Please set points']);
48
51
 
49
52
  it('Validation error messages should be displayed below required input fields', () => {
50
53
  matchingPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
51
- matchingPage.steps.verifyPromptInputFieldErrorMessage(0);
52
- matchingPage.steps.verifyPromptInputFieldErrorMessage(1);
53
- matchingPage.steps.verifyPromptInputFieldErrorMessage(2);
54
- matchingPage.steps.verifyOptionsInputFieldErrorMessage(3);
55
- matchingPage.steps.verifyOptionsInputFieldErrorMessage(4);
56
- matchingPage.steps.verifyOptionsInputFieldErrorMessage(5);
57
- matchingPage.steps.verifyPointsFieldErrorMessageIsNotDisplayed();
58
- matchingPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
59
- matchingPage.steps.verifySpecifyCorrectAnswerErrorMessage();
54
+ matchingPage.steps.verifyWarningIconOnRequiredFields(['Please enter all prompt values', 'Please enter all option values', 'Please set points']);
60
55
  });
61
56
 
62
57
  it('Validation error messages should disappear when required input fields are filled', () => {
@@ -78,5 +73,35 @@ describe('Create item page - Matching : Header section and Saving question', ()
78
73
  });
79
74
  matchingPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
80
75
  });
76
+
77
+ describe('Saving a question with incomplete authoring', () => {
78
+ abortEarlySetup();
79
+ before(() => {
80
+ matchingPage.steps.navigateToCreateQuestion('matching');
81
+ cy.barsPreLoaderWait();
82
+ });
83
+
84
+ it('User should be able to save the question with incomplete authoring and display a snackbar with the text "Saved successfully!" when the Save Question button is clicked', () => {
85
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all prompt values', 'Please enter all option values', 'Please set points']);
86
+ matchingPage.steps.saveAQuestionWithIncompleteAuthoring();
87
+ });
88
+ matchingPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
89
+ });
90
+ });
91
+
92
+ describe('Save as you go - Browse item page contents', () => {
93
+ abortEarlySetup();
94
+ before(() => {
95
+ matchingPage.steps.navigateToCreateQuestion('matching');
96
+ cy.barsPreLoaderWait();
97
+ matchingPage.steps.saveAQuestionWithIncompleteAuthoring();
98
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
99
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
100
+ browseItemsPage.steps.navigateToBrowseItemsPage();
101
+ });
102
+
103
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
104
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
105
+ });
81
106
  });
82
107
  });
@@ -116,22 +116,9 @@ describe('Create Item page - Matching : Question Instructions and prompt section
116
116
  matchingPage.steps.verifyPromptContents(2);
117
117
  });
118
118
 
119
- it('When user focus in and out of any of the \'Prompt\' input field without typing anything, then an error message \'Error: Prompt is required\' error message should be displayed', () => {
119
+ it('When user focus in and out of any of the \'Prompt\' input field without typing anything, then an error message \'Error: Prompt is required\' error message should disappear', () => {
120
120
  matchingPage.steps.focusInAndFocusOutOfPromptInputField(1);
121
- utilities.verifyInnerText(matchingPage.errorMessage(), 'Error: Prompt is required');
122
- utilities.verifyElementVisibilityState(matchingPage.errorMessage(), 'visible');
123
- });
124
-
125
- it('CSS of error message', { tags: 'css' }, () => {
126
- utilities.verifyCSS(matchingPage.errorMessage(), {
127
- 'color': css.color.errorText,
128
- 'font-size': css.fontSize.small,
129
- 'font-weight': css.fontWeight.regular
130
- });
131
- });
132
-
133
- it('Accessibility of error message', { tags: 'a11y' }, () => {
134
- cy.checkAccessibility(matchingPage.errorMessage());
121
+ matchingPage.steps.verifyErrorMessageIsNotDisplayed();
135
122
  });
136
123
 
137
124
  it('When user enters text in question prompt input field then error message should disappear', () => {