itemengine-cypress-automation 1.0.341-e2eFixes18March-66a79d0.0 → 1.0.341-graphAndCharts-9d8e298.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 (237) hide show
  1. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +398 -0
  2. package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +329 -0
  3. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +260 -0
  4. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +368 -0
  5. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  6. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  7. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  11. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  12. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  13. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  14. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  15. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  16. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +1 -3
  17. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  18. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +0 -2
  19. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  20. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  21. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +1 -1
  22. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +84 -0
  23. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +3 -3
  24. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/checkAddAlternativeButton.js +33 -0
  25. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +2 -4
  26. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/draggableOptions.js +2 -4
  27. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +33 -0
  28. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +39 -6
  29. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  30. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  31. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  32. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  33. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  34. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  35. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  36. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  37. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  38. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  39. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  40. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  41. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  42. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  43. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  44. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  45. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  46. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  47. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  48. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  49. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +96 -0
  50. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  51. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  52. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/checkAddAlternative.js +37 -0
  53. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +4 -6
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabBasicSection.js +47 -0
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +38 -9
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  64. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  65. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  66. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +0 -1
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +2 -4
  70. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  71. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  72. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  73. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  74. package/cypress/e2e/ILC/Graphing/headerSection.js +1 -2
  75. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  76. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +11 -0
  77. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  78. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  79. package/cypress/e2e/ILC/GridFill/headerSection.js +2 -4
  80. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +1 -2
  81. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  82. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  83. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  84. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  85. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +2 -1
  86. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +226 -0
  87. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  88. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  89. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  90. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  91. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  92. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  93. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  94. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  95. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  96. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  97. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +4 -2
  98. package/cypress/e2e/ILC/NumberLine/headerSection.js +1 -2
  99. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  100. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +3 -4
  101. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  102. package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +10 -0
  103. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
  104. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -2
  105. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  106. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  107. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  108. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  109. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  110. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  111. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  112. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  113. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -2
  114. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -2
  115. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -2
  116. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -3
  117. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  118. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  119. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +3 -10
  120. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -4
  121. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -5
  122. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  123. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +0 -4
  124. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -2
  125. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +0 -2
  126. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +0 -2
  127. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -2
  128. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -2
  129. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +2 -8
  130. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
  131. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  132. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  133. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +0 -8
  134. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
  135. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  136. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  137. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +0 -1
  138. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +0 -2
  139. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +0 -8
  140. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +0 -2
  141. package/cypress/e2e/ILC/TextEntryMath/customSettings.js +4 -0
  142. package/cypress/e2e/ILC/TextEntryMath/equationEditor.smoke.js +8 -0
  143. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  144. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  145. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  146. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  147. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -2
  148. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodsWithoutSetResponse.smoke.js +1 -0
  149. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +10 -7
  150. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  151. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingAlternatePointsMoreThanCorrectPoints.js +80 -0
  152. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingCorrectPointsMoreThanAlternatePoints.js +30 -0
  153. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +109 -0
  154. package/cypress/e2e/ILC/TextSelection/checkAddAlternativeButton.js +46 -0
  155. package/cypress/e2e/ILC/TextSelection/editTabBasicSection.js +57 -0
  156. package/cypress/e2e/ILC/TextSelection/headerSection.js +38 -6
  157. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +1 -2
  158. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  159. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
  160. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
  161. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
  162. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +185 -0
  163. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  164. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +289 -0
  165. package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
  166. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +581 -0
  167. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  168. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
  169. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  170. package/cypress/e2e/Sessions/scores.js +9 -5
  171. package/cypress/e2e/applitools.config.js +3 -3
  172. package/cypress/fixtures/constants.js +5 -1
  173. package/cypress/fixtures/theme/ilc.json +16 -1
  174. package/cypress/fixtures/uploads/sample.webm +0 -0
  175. package/cypress/fixtures/uploads/sample.wmv +0 -0
  176. package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
  177. package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
  178. package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
  179. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  180. package/cypress/pages/audioPlayerPage.js +22 -22
  181. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  182. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  183. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  184. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  185. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +17 -51
  186. package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
  187. package/cypress/pages/components/browseItemsPage.js +998 -7
  188. package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
  189. package/cypress/pages/components/ckEditorEquationEditorComponent.js +4 -4
  190. package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
  191. package/cypress/pages/components/ckEditorLinkComponent.js +3 -3
  192. package/cypress/pages/components/commonComponents.js +8 -1
  193. package/cypress/pages/components/createQuestionBasePage.js +1 -1
  194. package/cypress/pages/components/defaultToolDropdown.js +7 -6
  195. package/cypress/pages/components/desmosToolComponent.js +1 -1
  196. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  197. package/cypress/pages/components/equationEditorSectionCommonComponent.js +13 -26
  198. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -70
  199. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -101
  200. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  201. package/cypress/pages/components/hideExpressionListComponent.js +53 -0
  202. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  203. package/cypress/pages/components/index.js +1 -0
  204. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  205. package/cypress/pages/components/optionsWrapperComponent.js +1 -1
  206. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  207. package/cypress/pages/components/scoringSectionBaseEditTab.js +12 -13
  208. package/cypress/pages/desmos3DGraphingPage.js +368 -0
  209. package/cypress/pages/desmosGeometryPage.js +308 -0
  210. package/cypress/pages/dialogBoxBase.js +2 -1
  211. package/cypress/pages/dragAndDropIntoCategoriesPage.js +26 -6
  212. package/cypress/pages/drawingResponsePage.js +16 -15
  213. package/cypress/pages/fillInTheGapsDragAndDropPage.js +1 -68
  214. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +4 -4
  215. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  216. package/cypress/pages/gradingViewPage.js +8 -0
  217. package/cypress/pages/graphingPage.js +5 -8
  218. package/cypress/pages/gridFillPage.js +7 -8
  219. package/cypress/pages/imageHighlightPage.js +0 -66
  220. package/cypress/pages/index.js +3 -1
  221. package/cypress/pages/multipleSelectionGridPage.js +1 -68
  222. package/cypress/pages/multipleSelectionPage.js +10 -106
  223. package/cypress/pages/numberLineLabelPage.js +5 -8
  224. package/cypress/pages/numberLinePage.js +4 -7
  225. package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
  226. package/cypress/pages/singleSelectionGridPage.js +1 -68
  227. package/cypress/pages/singleSelectionPage.js +0 -104
  228. package/cypress/pages/textSelectionPage.js +25 -6
  229. package/cypress/pages/thinkSpherePage.js +1874 -0
  230. package/cypress/support/commands.js +7 -4
  231. package/cypress/support/e2e.js +1 -0
  232. package/cypress/support/helpers/createItem.js +1181 -1
  233. package/cypress/support/helpers/utilities.js +75 -1
  234. package/deploy/smoke/deploy.yaml +2 -2
  235. package/package.json +3 -3
  236. package/scripts/dataApi.mjs +3 -0
  237. package/scripts/sorry-cypress.mjs +13 -0
@@ -0,0 +1,84 @@
1
+ import { dragAndDropIntoCategoriesPage } from "../../../../pages";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+
4
+ describe('Create Item page - Drag and Drop into Categories', () => {
5
+ before(() => {
6
+ cy.loginAs('admin');
7
+ });
8
+
9
+ describe('Question Preview: Auto Scored With Points', () => {
10
+ abortEarlySetup();
11
+ before(() => {
12
+ dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
13
+ cy.barsPreLoaderWait();
14
+ dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct categories');
15
+ dragAndDropIntoCategoriesPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
16
+ dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
17
+ });
18
+
19
+ it('In Preview tab, when an answer is not set then manually scored scoring label should be displayed', () => {
20
+ dragAndDropIntoCategoriesPage.steps.checkManuallyScoredScoringLabel();
21
+ });
22
+
23
+ it('In Preview tab, when user switches to grading view then no banner and correct answer should be displayed', () => {
24
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 0, 'Option 2': 1 });
25
+ dragAndDropIntoCategoriesPage.steps.switchToGradingView();
26
+ dragAndDropIntoCategoriesPage.steps.verifyAnswerStatusBannerNotExist();
27
+ dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswerSectionNotExist();
28
+ });
29
+
30
+ 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', () => {
31
+ dragAndDropIntoCategoriesPage.steps.switchToEditTab();
32
+ dragAndDropIntoCategoriesPage.steps.allotPoints(2);
33
+ dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
34
+ dragAndDropIntoCategoriesPage.steps.checkManuallyScoredScoringLabel();
35
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 0, 'Option 2': 1 });
36
+ dragAndDropIntoCategoriesPage.steps.switchToGradingView();
37
+ dragAndDropIntoCategoriesPage.steps.verifyAnswerStatusBannerNotExist();
38
+ dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswerSectionNotExist();
39
+ });
40
+ });
41
+
42
+ describe('Question Preview: Auto Scored Without Points', () => {
43
+ abortEarlySetup();
44
+ before(() => {
45
+ dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
46
+ cy.barsPreLoaderWait();
47
+ dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct categories');
48
+ dragAndDropIntoCategoriesPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
49
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Option 1': 0, 'Option 2': 1 });
50
+ dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
51
+ });
52
+
53
+ it('In Preview tab, when points are not set then manually scored scoring label should be displayed', () => {
54
+ dragAndDropIntoCategoriesPage.steps.checkManuallyScoredScoringLabel();
55
+ });
56
+
57
+ it('In Preview tab, when user switches to grading view then banner and correct answer should be displayed', () => {
58
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 1, 'Option 2': 0 });
59
+ dragAndDropIntoCategoriesPage.steps.switchToGradingView();
60
+ dragAndDropIntoCategoriesPage.steps.verifyAnswerStatusBannerExist();
61
+ dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswerSectionExist();
62
+ });
63
+ });
64
+
65
+ describe('Question Preview: Non Scored', () => {
66
+ abortEarlySetup();
67
+ before(() => {
68
+ dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
69
+ cy.barsPreLoaderWait();
70
+ dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct categories');
71
+ dragAndDropIntoCategoriesPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
72
+ });
73
+
74
+ it('When the user selects \'Grading\' view without setting the answer, correct answers section and answer status banner should not be displayed', () => {
75
+ dragAndDropIntoCategoriesPage.steps.expandScoringTypeDropdown();
76
+ dragAndDropIntoCategoriesPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
77
+ dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
78
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 0, 'Option 2': 1 });
79
+ dragAndDropIntoCategoriesPage.steps.switchToGradingView();
80
+ dragAndDropIntoCategoriesPage.steps.verifyAnswerStatusBannerNotExist();
81
+ dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswerSectionNotExist();
82
+ });
83
+ });
84
+ });
@@ -26,9 +26,6 @@ describe('Create item page - Drag and drop into categories: All or nothing ', ()
26
26
  dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
27
27
  cy.barsPreLoaderWait();
28
28
  dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Navigating to drag and drop into categories');
29
- dragAndDropIntoCategoriesPage.steps.setRowsAndColumnsForQuestion();
30
- dragAndDropIntoCategoriesPage.steps.addMultipleOptionFields(2);
31
- dragAndDropIntoCategoriesPage.steps.addInputToOptionsInputField(['Bat', 'Eagle', 'Parrot', 'Whale']);
32
29
  dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
33
30
  });
34
31
 
@@ -37,6 +34,9 @@ describe('Create item page - Drag and drop into categories: All or nothing ', ()
37
34
  it('When the user sets correct answer responses and allots points, then the alloted points should be displayed in the preview tab', () => {
38
35
  dragAndDropIntoCategoriesPage.steps.switchToEditTab();
39
36
  dragAndDropIntoCategoriesPage.steps.allotPoints(20);
37
+ dragAndDropIntoCategoriesPage.steps.setRowsAndColumnsForQuestion();
38
+ dragAndDropIntoCategoriesPage.steps.addMultipleOptionFields(2);
39
+ dragAndDropIntoCategoriesPage.steps.addInputToOptionsInputField(['Bat', 'Eagle', 'Parrot', 'Whale']);
40
40
  dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Bat': 0, 'Whale': 4 });
41
41
  dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
42
42
  dragAndDropIntoCategoriesPage.steps.verifyPreviewScore(0, 20);
@@ -0,0 +1,33 @@
1
+ import { dragAndDropIntoCategoriesPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+
4
+ describe('Create question page - Drag and Drop into Categories', () => {
5
+ before(() => {
6
+ cy.loginAs('admin');
7
+ });
8
+
9
+ describe('Check Alternative Answer Button', () => {
10
+ abortEarlySetup();
11
+ before(() => {
12
+ dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
13
+ cy.barsPreLoaderWait();
14
+ dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct categories');
15
+ dragAndDropIntoCategoriesPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
16
+ });
17
+
18
+ it('When correct answer is not set then alternative answer should be disabled', () => {
19
+ dragAndDropIntoCategoriesPage.steps.checkAlternativeButtonDisabled();
20
+ });
21
+
22
+ it('When correct answer is set then alternative answer should be enabled', () => {
23
+ dragAndDropIntoCategoriesPage.steps.allotPoints(20);
24
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Option 1': 0, 'Option 2': 1 });
25
+ dragAndDropIntoCategoriesPage.steps.checkAlternativeButtonEnabled();
26
+ });
27
+
28
+ 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', () => {
29
+ dragAndDropIntoCategoriesPage.steps.clickOnAddAlternativeAnswerButton();
30
+ dragAndDropIntoCategoriesPage.steps.expandCorrectAnswerAccordion();
31
+ });
32
+ });
33
+ });
@@ -154,8 +154,7 @@ describe('Create Item Page: Drag and drop into categories: Click and drop cases
154
154
  dragAndDropIntoCategoriesPage.steps.clickAndDropOptionFromDropzoneToOptionContainerSpecifyCorrectAnswerSection('Bat');
155
155
  dragAndDropIntoCategoriesPage.steps.clickAndDropOptionFromDropzoneToOptionContainerSpecifyCorrectAnswerSection('Eagle');
156
156
  dragAndDropIntoCategoriesPage.steps.verifyDraggableOptionInOptionsContainerSpecifyCorrectAnswerSection(['Bat', 'Eagle', 'Parrot', 'Whale']);
157
- utilities.verifyInnerText(dragAndDropIntoCategoriesPage.errorMessage(), 'Error: Please set a correct answer.');
158
- utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.errorMessage(), 'visible');
157
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.errorMessage(), 'notExist');
159
158
  });
160
159
 
161
160
  dragAndDropIntoCategoriesPage.tests.verifyErrorMessageCSSAndA11y();
@@ -482,8 +481,7 @@ describe('Create Item Page: Drag and drop into categories: Click and drop cases
482
481
  dragAndDropIntoCategoriesPage.steps.clickAndDropOptionFromDropzoneToOptionContainerSpecifyCorrectAnswerSection('Eagle');
483
482
  dragAndDropIntoCategoriesPage.steps.verifyGroupedContainerContentsInSpecifyCorrectAnswerSection(0, groupedOptions[0]);
484
483
  dragAndDropIntoCategoriesPage.steps.verifyGroupedContainerContentsInSpecifyCorrectAnswerSection(1, groupedOptions[1]);
485
- utilities.verifyInnerText(dragAndDropIntoCategoriesPage.errorMessage(), 'Error: Please set a correct answer.');
486
- utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.errorMessage(), 'visible');
484
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.errorMessage(), 'notExist');
487
485
  });
488
486
 
489
487
  dragAndDropIntoCategoriesPage.tests.verifyErrorMessageCSSAndA11y();
@@ -122,10 +122,8 @@ describe('Create Item page - Drag and drop into categories: Draggable options se
122
122
  dragAndDropIntoCategoriesPage.steps.verifyDeleteOptionButtonDisabledState();
123
123
  });
124
124
 
125
- it('When the user clicks on \'Add group\' button without entering text in the option input fields, error message \'Error: Option is required\' should be displayed', () => {
126
- dragAndDropIntoCategoriesPage.steps.addGroup();
127
- dragAndDropIntoCategoriesPage.steps.verifyOptionsInputFieldErrorMessage(0);
128
- dragAndDropIntoCategoriesPage.steps.verifyOptionsInputFieldErrorMessage(1);
125
+ it('\'Add group\' button should be disabled', () => {
126
+ utilities.verifyElementDisabled(draggableOptionsSectionComponent.addGroupButton());
129
127
  });
130
128
 
131
129
  it('When the user enters text in the options input field, the error messages should disappear', () => {
@@ -759,4 +759,37 @@ describe('Create item page - Drag and drop into categories: Question instruction
759
759
  dragAndDropIntoCategoriesPage.steps.verifyCellLabelInPreviewTabTable(2, 'New text');
760
760
  });
761
761
  });
762
+
763
+ describe('User should be able to edit incomplete authored question', () => {
764
+ before(() => {
765
+ dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
766
+ cy.barsPreLoaderWait();
767
+ dragAndDropIntoCategoriesPage.steps.saveAQuestionWithIncompleteAuthoring();
768
+ dragAndDropIntoCategoriesPage.steps.editItem();
769
+ });
770
+
771
+ it('Warning icons should be displayed on the required input fields', () => {
772
+ dragAndDropIntoCategoriesPage.steps.verifyWarningIconOnRequiredFields(
773
+ [
774
+ "Please enter all option values",
775
+ "Please set points"
776
+ ]);
777
+ });
778
+
779
+ it('When required input fields are filled then warning icons should disappear', () => {
780
+ dragAndDropIntoCategoriesPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
781
+ dragAndDropIntoCategoriesPage.steps.allotPoints(10);
782
+ dragAndDropIntoCategoriesPage.steps.verifyErrorMessageIsNotDisplayed();
783
+ dragAndDropIntoCategoriesPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
784
+ });
785
+
786
+ it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
787
+ dragAndDropIntoCategoriesPage.steps.saveAQuestionAndVerifySnackbar();
788
+ });
789
+
790
+ it('Warning icon should not be visible', () => {
791
+ dragAndDropIntoCategoriesPage.steps.verifyWarningIconNotExist();
792
+ });
793
+ });
794
+
762
795
  });
@@ -1,6 +1,10 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { dialogBoxBase, dragAndDropIntoCategoriesPage } from "../../../pages";
2
+ import { dialogBoxBase, dragAndDropIntoCategoriesPage, itemPreviewPage } from "../../../pages";
3
+ import { browseItemsPage } from "../../../pages/components";
4
+ import utilities from "../../../support/helpers/utilities";
5
+
3
6
  const options = ['Bat', 'Eagle'];
7
+ var itemReferenceID = "";
4
8
 
5
9
  describe('Create item page - Drag and drop into categories: Header section and Saving question', () => {
6
10
  before(() => {
@@ -39,17 +43,16 @@ describe('Create item page - Drag and drop into categories: Header section and S
39
43
  before(() => {
40
44
  dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
41
45
  cy.barsPreLoaderWait();
46
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.questionInstructionsInputField(), 'visible');
47
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.optionsInputField(), 2);
42
48
  });
43
49
 
44
50
  describe('Validation error messages', () => {
45
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
51
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all option values', 'Please set points']);
46
52
 
47
53
  it('Validation error messages should be displayed below required input fields', () => {
48
54
  dragAndDropIntoCategoriesPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
49
- dragAndDropIntoCategoriesPage.steps.verifyPointsFieldErrorMessageIsNotDisplayed();
50
- dragAndDropIntoCategoriesPage.steps.verifyOptionsInputFieldErrorMessageDoesNotExist(0);
51
- dragAndDropIntoCategoriesPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
52
- dragAndDropIntoCategoriesPage.steps.verifySpecifyCorrectAnswerErrorMessage();
55
+ dragAndDropIntoCategoriesPage.steps.verifyWarningIconOnRequiredFields(['Please enter all option values', 'Please set points']);
53
56
  });
54
57
 
55
58
  it('Validation error messages should disappear when required input fields are filled', () => {
@@ -69,5 +72,35 @@ describe('Create item page - Drag and drop into categories: Header section and S
69
72
  });
70
73
  dragAndDropIntoCategoriesPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
71
74
  });
75
+
76
+ describe('Saving a question with incomplete authoring', () => {
77
+ abortEarlySetup();
78
+ before(() => {
79
+ dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
80
+ cy.barsPreLoaderWait();
81
+ });
82
+
83
+ 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', () => {
84
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all option values', 'Please set points']);
85
+ dragAndDropIntoCategoriesPage.steps.saveAQuestionWithIncompleteAuthoring();
86
+ });
87
+ dragAndDropIntoCategoriesPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
88
+ });
89
+ });
90
+
91
+ describe('Save as you go - Browse item page contents', () => {
92
+ abortEarlySetup();
93
+ before(() => {
94
+ dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
95
+ cy.barsPreLoaderWait();
96
+ dragAndDropIntoCategoriesPage.steps.saveAQuestionWithIncompleteAuthoring();
97
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
98
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
99
+ browseItemsPage.steps.navigateToBrowseItemsPage();
100
+ });
101
+
102
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
103
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
104
+ });
72
105
  });
73
106
  });
@@ -48,6 +48,9 @@ describe('Create Item Page: drag and drop into categories: Edit tab scoring type
48
48
  cy.log('Navigate to fill in the gaps - dropdown question type');
49
49
  dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
50
50
  cy.barsPreLoaderWait();
51
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.questionInstructionsInputField(), 'visible');
52
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.optionsInputField(), 2);
53
+ dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Test question instructions');
51
54
  });
52
55
 
53
56
  it('User should be able to select \'Non scored\' scoring type from scoring type dropdown', () => {
@@ -79,7 +82,7 @@ describe('Create Item Page: drag and drop into categories: Edit tab scoring type
79
82
  dragAndDropIntoCategoriesPage.tests.verifyContentsOfSpecifyCorrectAnswerSection('Non scored');
80
83
 
81
84
  dragAndDropIntoCategoriesPage.tests.verifyPointsLabelAndInputFieldForNonScoredScoringType();
82
-
85
+
83
86
  it('User should able to save question with non scored scoring type', () => {
84
87
  dragAndDropIntoCategoriesPage.steps.saveAQuestionAndVerifySnackbar();
85
88
  });
@@ -30,6 +30,9 @@ describe('Create item page - Drag and drop into categories: Minimum scoring, Pen
30
30
  before(() => {
31
31
  dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
32
32
  cy.barsPreLoaderWait();
33
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.questionInstructionsInputField(), 'visible');
34
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.optionsInputField(), 2);
35
+ dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Test question instructions');
33
36
  });
34
37
 
35
38
  //Per dropzone
@@ -87,6 +87,9 @@ describe('Drag and drop into categories - Style and layout customization accordi
87
87
  dragAndDropIntoCategoriesPage.steps.navigateToCreateQuestion('drag and drop into categories');
88
88
  cy.barsPreLoaderWait();
89
89
  dragAndDropIntoCategoriesPage.steps.expandStyleAndLayoutCustomizationAccordion();
90
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.questionInstructionsInputField(), 'visible');
91
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.optionsInputField(), 2);
92
+ dragAndDropIntoCategoriesPage.steps.addTextInQuestionInstructionsInputField('Test question instructions');
90
93
  });
91
94
 
92
95
  rowColumnOptions.forEach((option) => {
@@ -137,6 +137,7 @@ describe('Drawing response - Additional settings', () => {
137
137
  before(() => {
138
138
  drawingResponsePage.steps.navigateToCreateQuestion('Drawing Response');
139
139
  cy.barsPreLoaderWait();
140
+ drawingResponsePage.steps.switchToEditTab();
140
141
  drawingResponsePage.steps.expandAdditionalSettings();
141
142
  });
142
143
 
@@ -273,7 +273,6 @@ describe('Create item page - Drawing response: Background: Blank canvas, Image,
273
273
 
274
274
  it('When the user adds an image file and file upload is inprogress, file name and progress bar should be displayed below \'File name\' label. Progress bar should disappear once file is uploaded', () => {
275
275
  drawingResponsePage.steps.uploadFile('uploads/image.png');
276
- utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'visible');
277
276
  utilities.verifyInnerText(drawingResponsePage.uploadedFileNameLabel(), 'image.png');
278
277
  utilities.verifyElementVisibilityState(drawingResponsePage.uploadedFileNameLabel(), 'visible');
279
278
  utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'notExist');
@@ -285,7 +284,6 @@ describe('Create item page - Drawing response: Background: Blank canvas, Image,
285
284
 
286
285
  //upload the same file again
287
286
  drawingResponsePage.steps.uploadFile('uploads/image.png');
288
- utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'visible');
289
287
  utilities.verifyInnerText(drawingResponsePage.uploadedFileNameLabel(), 'image.png');
290
288
  utilities.verifyElementVisibilityState(drawingResponsePage.uploadedFileNameLabel(), 'visible');
291
289
  utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'notExist');
@@ -307,17 +305,13 @@ describe('Create item page - Drawing response: Background: Blank canvas, Image,
307
305
  utilities.verifyElementVisibilityState(drawingResponsePage.uploadedFileNameLabel(), 'visible');
308
306
  });
309
307
 
310
- it('When the user uploads a file that is not supported, following error message should be displayed: \'Error: The file type is not supported. Please upload a file with the following supported formats: JPG, PNG, GIF, SVG.\'', () => {
308
+ it('When the user uploads a file that is not supported, following error message should not be displayed', () => {
311
309
  drawingResponsePage.steps.uploadFile('uploads/sample.mp4')
312
- utilities.verifyInnerText(drawingResponsePage.errorMessage(), 'Error: The file type is not supported. Please upload a file with the following supported formats: JPG, PNG, GIF, SVG.');
313
- utilities.verifyElementVisibilityState(drawingResponsePage.errorMessage(), 'visible');
310
+ utilities.verifyElementVisibilityState(drawingResponsePage.errorMessage(), 'notExist');
314
311
  });
315
312
 
316
- drawingResponsePage.tests.verifyErrorMessageCSSAndA11y();
317
-
318
313
  it('When the user uploads supported format of image file, error message should disappear', () => {
319
314
  drawingResponsePage.steps.uploadFile('uploads/sample2.jpg');
320
- utilities.verifyElementVisibilityState(drawingResponsePage.errorMessage(), 'notExist');
321
315
  });
322
316
 
323
317
  //Failing due to https://redmine.zeuslearning.com/issues/555227
@@ -585,6 +585,7 @@ describe('Create item page - Drawing response: Customize special characters, Cus
585
585
  it('When the user has modified contents in the \'Fill color\' section in the edit tab, the updates should be displayed in the \'Fill color\' popup in the preview tab', () => {
586
586
  drawingResponsePage.steps.switchToPreviewTab();
587
587
  drawingResponsePage.steps.selectPreviewTabToolbarOption(`${drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[11].displayName}`);
588
+ drawingResponsePage.steps.selectPreviewTabToolbarOption(`${drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[11].displayName}`);
588
589
  drawingResponsePage.steps.selectPreviewTabSecondaryToolbarOption('Fill color');
589
590
  drawingResponsePage.steps.verifyCSSOfSecondaryOptionPopupOptions(0, 'rgb(255, 0, 0)');
590
591
  drawingResponsePage.steps.verifyCSSOfSecondaryOptionPopupOptions(1, 'rgb(6, 255, 172)');
@@ -233,7 +233,7 @@ describe('Create item page - Drawing response: Question instructions, Customize
233
233
  utilities.verifyInnerText(drawingResponsePage.defaultStrokeFontColorLabel(), 'Default stroke/font colors');
234
234
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultStrokeColorsWrapper(), 'visible');
235
235
  drawingResponsePage.steps.verifyCSSOfDefaultFontStrokeFillColorBlockInEditTab(0, 'rgb(0, 112, 128)');
236
- } else if(!toolbarOption.additionalOptions.includes(' StrokeFontColor')) {
236
+ } else if (!toolbarOption.additionalOptions.includes(' StrokeFontColor')) {
237
237
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultStrokeColorsWrapper(), 'notExist');
238
238
  }
239
239
  else if (toolbarOption.additionalOptions.includes(' FillColor')) {
@@ -241,7 +241,7 @@ describe('Create item page - Drawing response: Question instructions, Customize
241
241
  utilities.verifyInnerText(drawingResponsePage.defaultFillColorsLabel(), 'Default fill colors');
242
242
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultFillColorsWrapper(), 'visible');
243
243
  drawingResponsePage.steps.verifyCSSOfDefaultFontStrokeFillColorBlockInEditTab(1, 'rgb(0, 224, 255)');
244
- } else if(!toolbarOption.additionalOptions.includes(' FillColor')) {
244
+ } else if (!toolbarOption.additionalOptions.includes(' FillColor')) {
245
245
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultNewFillColorsWrapper(), 'notExist');
246
246
  }
247
247
  else if (toolbarOption.additionalOptions.includes(' SpecialChar')) {
@@ -249,7 +249,7 @@ describe('Create item page - Drawing response: Question instructions, Customize
249
249
  utilities.verifyElementDisabledClass(drawingResponsePage.customizeSpecialCharactersLabel());
250
250
  utilities.verifyElementVisibilityState(drawingResponsePage.customizeSpecialCharactersCheckbox(), 'exist');
251
251
  utilities.verifyElementDisabled(drawingResponsePage.customizeSpecialCharactersCheckbox());
252
- } else if(!toolbarOption.additionalOptions.includes(' SpecialChar')) {
252
+ } else if (!toolbarOption.additionalOptions.includes(' SpecialChar')) {
253
253
  utilities.verifyElementVisibilityState(drawingResponsePage.customizeSpecialCharactersLabel(), 'notExist');
254
254
  utilities.verifyElementVisibilityState(drawingResponsePage.customizeSpecialCharactersCheckbox(), 'notExist');
255
255
  }
@@ -202,7 +202,8 @@ describe('Preview tab contents - primary toolbar options, secondary toolbar opti
202
202
  drawingResponsePage.steps.verifyInsertImageContainerNotExist();
203
203
  });
204
204
 
205
- it(`User should be able to attach multiple files at once among the supported file types`, () => {
205
+ //Failing due to https://weldnorthed.atlassian.net/browse/IEI-5743
206
+ it.skip(`User should be able to attach multiple files at once among the supported file types`, () => {
206
207
  drawingResponsePage.steps.resetQuestionPreview();
207
208
  drawingResponsePage.steps.selectPreviewTabToolbarOption(drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[5].displayName);
208
209
  drawingResponsePage.steps.uploadFile(['uploads/sample.jpg', 'uploads/sample.gif']);
@@ -265,9 +266,7 @@ describe('Preview tab contents - primary toolbar options, secondary toolbar opti
265
266
  });
266
267
 
267
268
  it('When user clicks on \'Capture Image\' then display Capture Image container should be visible', () => {
268
- drawingResponsePage.steps.selectPreviewTabToolbarOption(
269
- drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[4].displayName
270
- );
269
+ drawingResponsePage.steps.selectPreviewTabToolbarOption(drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[4].displayName);
271
270
  drawingResponsePage.steps.verifyCaptureImageContainerIsVisible();
272
271
  });
273
272
 
@@ -135,7 +135,7 @@ describe('Create question page - Essay Response: Create custom category', () =>
135
135
 
136
136
  allCategories.slice(2).forEach((categoryName) => {
137
137
  it(`On clicking the ${equationEditorCategoriesAndSymbols[categoryName].displayName} category accordion the category should be expanded`, () => {
138
- if (categoryName != 'Intermediate') {
138
+ if (categoryName != 'intermediate') {
139
139
  createCustomCategoryFlyout.steps.expandCategoryAccordion(`${equationEditorCategoriesAndSymbols[categoryName].displayName}`)
140
140
  }
141
141
  });
@@ -240,7 +240,6 @@ describe('Create question page - Essay Response: Edit category', () => {
240
240
  editCategoryFlyout.steps.openEditCategoryFlyout();
241
241
  utilities.verifyElementDisabled(editCategoryFlyout.buttonReset());
242
242
  editCategoryFlyout.steps.verifyCategoryCharacterNotSelected(`${equationEditorCategoriesAndSymbols.general.symbols.dollar.ariaLabel}`)
243
- editCategoryFlyout.steps.verifyCategoryCharacterNotSelected(`${equationEditorCategoriesAndSymbols.general.symbols.dollar.ariaLabel}`)
244
243
  });
245
244
  });
246
245
 
@@ -73,55 +73,45 @@ describe('Create question page - Essay Response: Question Instructions, Set limi
73
73
  essayResponsePage.steps.setMaximumLimit(500);
74
74
  });
75
75
 
76
- it('When the user clears the minimum word limit input field and focuses out of it, then error message \'Error: Minimum word limit is required\' should be displayed below the input field', () => {
76
+ it('When the user clears the minimum word limit input field and focuses out of it, then the error message should not be displayed', () => {
77
77
  essayResponsePage.steps.clearAndFocusOutOfMinimumLimitInputField();
78
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Minimum word limit is required.');
79
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
78
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
80
79
  });
81
80
 
82
- essayResponsePage.tests.verifyErrorMessageCSSAndA11y();
83
-
84
- it('When the user enters value in minimum word limit input field then the error message should disappear', () => {
81
+ it('When the user enters value 0 in the minimum word limit input field, it should be accepted', () => {
85
82
  essayResponsePage.steps.setMinimumLimit(0);
86
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
87
83
  });
88
84
 
89
- it('When the user clears the maximum word limit input field and focuses out of it, then error message \'Error: Maximum word limit is required.\' should be displayed below the input field', () => {
85
+ it('When the user clears the maximum word limit input field and focuses out of it, then the error message should not be displayed', () => {
90
86
  essayResponsePage.steps.clearAndFocusOutOfMaximumLimitInputField();
91
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Maximum word limit is required.');
92
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
87
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
93
88
  });
94
89
 
95
- it('When the user enters value in maximum word limit input field then the error message should disappear', () => {
90
+ it('When the user enters a value in the maximum word limit input field, it should be accepted', () => {
96
91
  essayResponsePage.steps.setMaximumLimit(500);
97
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
98
92
  });
99
93
 
100
- it('When the user sets minimum limit input field value greater than maximum limit input field value then error message \'Error: Minimum limit must be less than or equal to maximum limit.\' and \'Error: Maximum limit must be greater than or equal to minimum limit.\'should be displayed below the minimum and maximum input field respectively', () => {
94
+ it('When the user sets the minimum limit input field value greater than the maximum limit input field value, then error messages should not be displayed below both input fields', () => {
101
95
  essayResponsePage.steps.setMinimumLimit(700);
102
- essayResponsePage.steps.verifyMaximumLimitErrorMessage();
103
- essayResponsePage.steps.verifyMinimumLimitErrorMessage();
96
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
104
97
  });
105
98
 
106
- essayResponsePage.tests.verifyErrorMessageCSSAndA11y();
107
-
108
- it('When the user sets minimum limit input field value less than or equal to maximum limit input field value then error message should disappear', () => {
99
+ it('When the user sets the minimum limit input field value less than or equal to the maximum limit input field value, then the error messages should disappear', () => {
109
100
  essayResponsePage.steps.setMinimumLimit(500);
110
101
  utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
111
102
  });
112
103
 
113
- it('When the user sets maximum limit input field value less than minimum limit input field value then error message \'Error: Minimum limit must be less than or equal to maximum limit.\' and \'Error: Maximum limit must be greater than or equal to minimum limit.\'should be displayed below the minimum and maximum input field respectively', () => {
104
+ it('When the user sets the maximum limit input field value less than the minimum limit input field value, then error messages not be displayed below both input fields', () => {
114
105
  essayResponsePage.steps.setMaximumLimit(400);
115
- essayResponsePage.steps.verifyMaximumLimitErrorMessage();
116
- essayResponsePage.steps.verifyMinimumLimitErrorMessage();
106
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
117
107
  });
118
108
 
119
- it('When the user sets maximum limit input field value greater than or equal to minimum limit input field value then error message should disappear', () => {
109
+ it('When the user sets the maximum limit input field value greater than or equal to the minimum limit input field value, then the error messages should disappear', () => {
120
110
  essayResponsePage.steps.setMaximumLimit(800);
121
111
  utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
122
112
  });
123
113
 
124
- it('\'Always show maximum limit\' and \'Always show minimum limit\' labels and checkbox should be displayed and by default \'Always show maximum limit\' should be checked', () => {
114
+ it('\'Always show maximum limit\' and \'Always show minimum limit\' labels and checkboxes should be displayed, and by default, \'Always show maximum limit\' should be checked', () => {
125
115
  utilities.verifyInnerText(essayResponsePage.alwaysShowMaxLimitLabel(), 'Always show maximum limit');
126
116
  utilities.verifyElementVisibilityState(essayResponsePage.alwaysShowMaxLimitLabel(), 'visible');
127
117
  utilities.verifyInnerText(essayResponsePage.alwaysShowMinLimitLabel(), 'Always show minimum limit');
@@ -129,44 +119,40 @@ describe('Create question page - Essay Response: Question Instructions, Set limi
129
119
  essayResponsePage.steps.verifyAlwaysShowMaximumLimitCheckboxIsChecked();
130
120
  });
131
121
 
132
- it('When the user selects \'Character\' radio button then labels should change to \'Minimum character limit\' and \'Maximum character limit\'', () => {
122
+ it('When the user selects the \'Character\' radio button, the labels should change to \'Minimum character limit\' and \'Maximum character limit\'', () => {
133
123
  essayResponsePage.steps.checkCharacterRadioButton();
134
124
  utilities.verifyInnerText(essayResponsePage.minimumLimitLabel(), 'Minimum character limit');
135
125
  utilities.verifyInnerText(essayResponsePage.maximumLimitLabel(), 'Maximum character limit');
136
126
  });
137
127
 
138
128
  it('\'Minimum character limit\' and \'Maximum character limit\' input fields should be updated to 0 and 20000 by default', () => {
139
- essayResponsePage.steps.verifyMinimumLimitInputField(0)
140
- essayResponsePage.steps.verifyMaximumLimitInputField(20000)
129
+ essayResponsePage.steps.verifyMinimumLimitInputField(0);
130
+ essayResponsePage.steps.verifyMaximumLimitInputField(20000);
141
131
  });
142
132
 
143
- it('User should be able to update values in both the input fields', () => {
133
+ it('User should be able to update values in both the input fields for character limits', () => {
144
134
  essayResponsePage.steps.setMinimumLimit(750);
145
135
  essayResponsePage.steps.setMaximumLimit(12000);
146
136
  });
147
137
 
148
- it('When the user clears the minimum character limit input field and focuses out of it, then error message \'Error: Minimum character limit is required\' should be displayed below the input field', () => {
138
+ it('When the user clears the minimum character limit input field and focuses out of it, then the error message should not be displayed', () => {
149
139
  essayResponsePage.steps.clearAndFocusOutOfMinimumLimitInputField();
150
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Minimum character limit is required.');
151
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
140
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
152
141
  });
153
142
 
154
143
  essayResponsePage.tests.verifyErrorMessageCSSAndA11y();
155
144
 
156
- it('When the user enters value in minimum character limit input field then the error message should disappear', () => {
145
+ it('When the user enters a value in the minimum character limit input field, the error message should disappear', () => {
157
146
  essayResponsePage.steps.setMinimumLimit(0);
158
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
159
147
  });
160
148
 
161
- it('When the user clears the maximum character limit input field and focuses out of it, then error message \'Error: Maximum character limit is required.\' should be displayed below the input field', () => {
149
+ it('When the user clears the maximum character limit input field and focuses out of it, then the error message should not be displayed', () => {
162
150
  essayResponsePage.steps.clearAndFocusOutOfMaximumLimitInputField();
163
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Maximum character limit is required.');
164
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
151
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
165
152
  });
166
153
 
167
- it('When the user enters value in maximum character limit input field then the error message should disappear', () => {
154
+ it('When the user enters a value in the maximum character limit input field, the error message should disappear', () => {
168
155
  essayResponsePage.steps.setMaximumLimit(500);
169
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
170
156
  });
171
157
 
172
158
  it('CSS of \'Set word limit\' sections', { tags: 'css' }, () => {