itemengine-cypress-automation 1.0.341-e2eFixes18March-66a79d0.0 → 1.0.341-graphAndCharts-0a4e8d7.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 -0
  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
@@ -35,7 +35,6 @@ describe('Create Item page - Fill in the gaps with dropdown: Specify correct ans
35
35
  fillInTheGapsDropdownPage.tests.verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
36
36
 
37
37
  it('When user has added points and selected an option in dropdown in the \'Correct\' accordion, then the user should be able to add alternative answer for the question using \'Add alternative answer\' button', () => {
38
- dialogBoxBase.steps.closeWarningPopup();
39
38
  fillInTheGapsDropdownPage.steps.selectResponseFromDropdownSpecifyCorrectAnswerSection(0, optionsForDropdown[0]);
40
39
  fillInTheGapsDropdownPage.steps.selectResponseFromDropdownSpecifyCorrectAnswerSection(1, optionsForDropdown[1]);
41
40
  fillInTheGapsDropdownPage.steps.allotPoints(10);
@@ -23,29 +23,28 @@ describe('Create item page - Fill in the gaps over image with drag and drop: All
23
23
  fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
24
24
  });
25
25
 
26
- it('When the user has not set any answer in the \'Specify correct answer\' section and switches to the \'Grading\' view without attempting the question, dropzone numeration should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label \'Correct answers\' should be displayed with correct answers and respective option numeration', () => {
26
+ it('When the user has not set any answer in the \'Specify correct answer\' section and switches to the \'Grading\' view without attempting the question, dropzone numeration should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label \'Correct answers\' should not be displayed', () => {
27
27
  fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
28
- fillInTheGapsOverImageDragAndDropPage.steps.verifyPreviewScore(0, 24);
28
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
29
29
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(0);
30
30
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(1);
31
31
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(2);
32
32
  fillInTheGapsOverImageDragAndDropPage.steps.verifyDropzoneNumeration();
33
- fillInTheGapsOverImageDragAndDropPage.steps.verifyVisibilityOfCorrectAnswerLabel();
33
+ utilities.verifyElementVisibilityStateWithOption(fillInTheGapsOverImageDragAndDropPage.correctAnswersLabel(), 'notExist');
34
34
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
35
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([[''], [''], ['']]);
36
35
  });
37
36
 
38
- it('When the user has not set any answer in the \'Specify correct answer\' section and interacts with the question in the preview tab then correct icons should be displayed beside all the responses, full points should be allocated and correct answer section should not be displayed', () => {
37
+ it('When the user has not set any answer in the \'Specify correct answer\' section and interacts with the question in the preview tab then correct icons should not be displayed beside any responses, no points should be allocated, and correct answer section should not be displayed', () => {
39
38
  fillInTheGapsOverImageDragAndDropPage.steps.resetQuestionPreview();
40
39
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionWithIndexInDropzonePreviewTab({ 0: 0 });
41
40
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionOutsideDropzoneWithIndexPreviewTab(0);
42
41
  fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
43
- fillInTheGapsOverImageDragAndDropPage.steps.verifyPreviewScore(24, 24);
44
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(0);
45
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(1);
46
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(2);
47
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
48
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerSectionNotExists();
42
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
43
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(0);
44
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(1);
45
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(2);
46
+ utilities.verifyElementVisibilityStateWithOption(fillInTheGapsOverImageDragAndDropPage.correctAnswersLabel(), 'notExist');
47
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
49
48
  });
50
49
 
51
50
  it('When the user sets an answer in the \'Specify correct answer\' section then on switching to \'Grading\' view without attempting the question, dropzone numeration should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label \'Correct answers\' should be displayed with correct answers and respective option numeration', () => {
@@ -135,27 +134,26 @@ describe('Create item page - Fill in the gaps over image with drag and drop: All
135
134
  fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
136
135
  });
137
136
 
138
- it('When the user has not set any answer in the \'Specify correct answer\' section and switches to the \'Grading\' view without attempting the question, dropzone numeration should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label \'Correct answers\' should be displayed with correct answers and respective option numeration', () => {
137
+ it('When the user has not set any answer in the \'Specify correct answer\' section and switches to the \'Grading\' view without attempting the question, dropzone numeration should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label \'Correct answers\' should not be displayed', () => {
139
138
  fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
140
- fillInTheGapsOverImageDragAndDropPage.steps.verifyPreviewScore(0, 24);
139
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
141
140
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(0);
142
141
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(1);
143
142
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(2);
144
143
  fillInTheGapsOverImageDragAndDropPage.steps.verifyDropzoneNumeration();
145
- fillInTheGapsOverImageDragAndDropPage.steps.verifyVisibilityOfCorrectAnswerLabel();
144
+ utilities.verifyElementVisibilityStateWithOption(fillInTheGapsOverImageDragAndDropPage.correctAnswersLabel(), 'notExist');
146
145
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
147
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([[''], [''], ['']]);
148
146
  });
149
147
 
150
- it('When the user has not set any answer in the \'Specify correct answer\' section and interacts with the question in the preview tab then correct icons should be displayed beside all the responses, full points should be allocated and correct answer section should not be displayed', () => {
148
+ it('When the user has not set any answer in the \'Specify correct answer\' section and interacts with the question in the preview tab then correct icons should not be displayed beside any responses, no points should be allocated, and correct answer section should not be displayed', () => {
151
149
  fillInTheGapsOverImageDragAndDropPage.steps.resetQuestionPreview();
152
150
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionWithIndexInDropzonePreviewTab({ 0: 0 });
153
151
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionOutsideDropzoneWithIndexPreviewTab(0);
154
152
  fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
155
- fillInTheGapsOverImageDragAndDropPage.steps.verifyPreviewScore(24, 24);
156
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(0);
157
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(1);
158
- fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(2);
153
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
154
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(0);
155
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(1);
156
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(2);
159
157
  fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerSectionNotExists();
160
158
  });
161
159
 
@@ -0,0 +1,96 @@
1
+ import { fillInTheGapsOverImageDragAndDropPage } from "../../../../pages";
2
+ import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+
4
+ const dropzoneCoordinates = [{ x: 50, y: 50 }, { x: 100, y: 100 }];
5
+
6
+ describe('Create Item page - Fill In the Gaps Over Image Drag and Drop', () => {
7
+ before(() => {
8
+ cy.loginAs('admin');
9
+ });
10
+
11
+ describe('Question Preview: Auto Scored With Points', () => {
12
+ abortEarlySetup();
13
+ before(() => {
14
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
15
+ cy.barsPreLoaderWait();
16
+ fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
17
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyImageIsUploaded();
18
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(10);
19
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(40);
20
+ fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
21
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
22
+ });
23
+
24
+ it('In Preview tab, when an answer is not set then manually scored scoring label should be displayed', () => {
25
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
26
+ });
27
+
28
+ it('In Preview tab, when user switches to grading view then no banner and correct answer should be displayed', () => {
29
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 0, 'Option 2': 1 });
30
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
31
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyAnswerStatusBannerNotExist();
32
+ fillInTheGapsOverImageDragAndDropPage.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
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToEditTab();
37
+ fillInTheGapsOverImageDragAndDropPage.steps.allotPoints(2);
38
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
39
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
40
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 0, 'Option 2': 1 });
41
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
42
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyAnswerStatusBannerNotExist();
43
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerSectionNotExist();
44
+ })
45
+
46
+ });
47
+
48
+ describe('Question Preview: Auto Scored Without Points', () => {
49
+ abortEarlySetup();
50
+ before(() => {
51
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
52
+ cy.barsPreLoaderWait();
53
+ fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
54
+ fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
55
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyImageIsUploaded();
56
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(10);
57
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(40);
58
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Option 1': 0, 'Option 2': 1 });
59
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
60
+ });
61
+
62
+ it('In Preview tab, when points are not set then manually scored scoring label should be displayed', () => {
63
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
64
+ });
65
+
66
+ it('In Preview tab, when user switches to grading view then banner and correct answer should be displayed', () => {
67
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 1, 'Option 2': 0 });
68
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
69
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyAnswerStatusBannerExist();
70
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerSectionExist();
71
+ })
72
+ });
73
+
74
+ describe('Question Preview: Non Scored', () => {
75
+ abortEarlySetup();
76
+ before(() => {
77
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
78
+ cy.barsPreLoaderWait();
79
+ fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
80
+ fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
81
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyImageIsUploaded();
82
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(10);
83
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(40);
84
+ });
85
+
86
+ it('When the user selects \'Grading\' view without setting the answer, correct answers section and answer status banner should not be displayed', () => {
87
+ fillInTheGapsOverImageDragAndDropPage.steps.expandScoringTypeDropdown();
88
+ fillInTheGapsOverImageDragAndDropPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
89
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
90
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Option 1': 0, 'Option 2': 1 });
91
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
92
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyAnswerStatusBannerNotExist();
93
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerSectionNotExist();
94
+ });
95
+ });
96
+ });
@@ -209,6 +209,222 @@ describe('Create item page - Fill in the gaps over image - drag and drop: All or
209
209
  });
210
210
  });
211
211
 
212
+ views.forEach((view) => {
213
+ describe(`Fill in the Gaps over Image Drag and drop - Manually scored: ${view}`, { tags: 'smoke' }, () => {
214
+ abortEarlySetup();
215
+ before(() => {
216
+ switch (view) {
217
+ case 'Question preview':
218
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
219
+ cy.barsPreLoaderWait();
220
+ fillInTheGapsOverImageDragAndDropPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct dropzone over the image');
221
+ fillInTheGapsOverImageDragAndDropPage.steps.expandScoringTypeDropdown();
222
+ fillInTheGapsOverImageDragAndDropPage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
223
+ fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
224
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(10);
225
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(40);
226
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(80);
227
+ fillInTheGapsOverImageDragAndDropPage.steps.allotPoints(20);
228
+ fillInTheGapsOverImageDragAndDropPage.steps.addMultipleOptionFields(2);
229
+ fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(['Petals', 'Leaves', 'Roots', 'Stem']);
230
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
231
+ break;
232
+ case 'Item preview':
233
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
234
+ itemPreviewPage.steps.switchToPreviewTab();
235
+ break;
236
+ case 'Grading view':
237
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
238
+ break;
239
+ };
240
+ });
241
+
242
+ beforeEach(() => {
243
+ switch (view) {
244
+ case 'Question preview':
245
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
246
+ fillInTheGapsOverImageDragAndDropPage.steps.resetQuestionPreview();
247
+ break;
248
+ case 'Item preview':
249
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
250
+ itemPreviewPage.steps.resetQuestionPreview();
251
+ break;
252
+ case 'Grading view':
253
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
254
+ break;
255
+ }
256
+ });
257
+
258
+ if (view === 'Question preview') {
259
+ after(() => {
260
+ fillInTheGapsOverImageDragAndDropPage.steps.clickOnSaveQuestionButton();
261
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
262
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
263
+ });
264
+ };
265
+
266
+ it('Question instructions should be visible', () => {
267
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyQuestionInstructionsTextPreviewTab('Drag and drop options into correct dropzone over the image');
268
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyVisibityOfQuestionInstructionsText();
269
+ });
270
+
271
+ it('User should be able to attempt the question in student view, and correct/incorrect icons, "Your answer is correct/incorrect" label, and correct answer section should not be displayed in grading view', () => {
272
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Petals': 0, 'Leaves': 1, 'Roots': 2 });
273
+ if (view === 'Grading view') {
274
+ studentViewPage.steps.submitResponse();
275
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
276
+ studentViewPage.steps.clickOnGoToGradingViewButton();
277
+ gradingViewPage.steps.verifyGradingViewScore('', 20);
278
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(0);
279
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(1);
280
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(2);
281
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyAnswerStatusBannerNotExist();
282
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerSectionNotExist();
283
+ };
284
+ if (view === 'Question preview' || view === 'Item preview') {
285
+ fillInTheGapsOverImageDragAndDropPage.steps.checkManuallyScoredScoringLabel();
286
+ };
287
+ });
288
+ });
289
+ });
290
+
291
+ views.forEach((view) => {
292
+ describe(`Fill in the Gaps Over Image Drag and drop - Non scored: ${view}`, { tags: 'smoke' }, () => {
293
+ abortEarlySetup();
294
+ before(() => {
295
+ switch (view) {
296
+ case 'Question preview':
297
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
298
+ cy.barsPreLoaderWait();
299
+ fillInTheGapsOverImageDragAndDropPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct dropzones over the image');
300
+ fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
301
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(10);
302
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(40);
303
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(80);
304
+ fillInTheGapsOverImageDragAndDropPage.steps.addMultipleOptionFields(2);
305
+ fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(['Petals', 'Leaves', 'Roots', 'Stem']);
306
+ fillInTheGapsOverImageDragAndDropPage.steps.expandScoringTypeDropdown();
307
+ fillInTheGapsOverImageDragAndDropPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
308
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Petals': 0, 'Leaves': 1, 'Stem': 2 });
309
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToPreviewTab();
310
+ break;
311
+ case 'Item preview':
312
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
313
+ itemPreviewPage.steps.switchToPreviewTab();
314
+ break;
315
+ case 'Grading view':
316
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
317
+ break;
318
+ };
319
+ });
320
+
321
+ beforeEach(() => {
322
+ switch (view) {
323
+ case 'Question preview':
324
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
325
+ fillInTheGapsOverImageDragAndDropPage.steps.resetQuestionPreview();
326
+ break;
327
+ case 'Item preview':
328
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
329
+ itemPreviewPage.steps.resetQuestionPreview();
330
+ break;
331
+ case 'Grading view':
332
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
333
+ break;
334
+ }
335
+ });
336
+
337
+ if (view === 'Question preview') {
338
+ after(() => {
339
+ fillInTheGapsOverImageDragAndDropPage.steps.clickOnSaveQuestionButton();
340
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
341
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
342
+ });
343
+ };
344
+
345
+ it('When the user selects "Grading" view without attempting the question, non-scoring label should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label "Correct answers" should be displayed with correct answers and correct/incorrect icons should not be displayed', () => {
346
+ if (view === 'Grading view') {
347
+ studentViewPage.steps.submitResponse();
348
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
349
+ studentViewPage.steps.clickOnGoToGradingViewButton();
350
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
351
+ };
352
+ if (view === 'Question preview' || view === 'Item preview') {
353
+ fillInTheGapsOverImageDragAndDropPage.steps.checkNonScoredScoringLabel();
354
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
355
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
356
+ };
357
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectIconsNotExist();
358
+ utilities.verifyInnerText(fillInTheGapsOverImageDragAndDropPage.correctAnswersLabel(), 'Correct answers');
359
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Petals'], ['Leaves'], ['Stem']]);
360
+ });
361
+
362
+ it('When the user attempts the question incorrectly, and on switching to "Grading" view, non-scoring label should be displayed, incorrect icon should be displayed beside incorrect response, a status message with text "Your answer is incorrect" and correct answer section with correct answers should be displayed', () => {
363
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Roots': 0, 'Leaves': 2, 'Stem': 1 });
364
+ if (view === 'Grading view') {
365
+ studentViewPage.steps.submitResponse();
366
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
367
+ studentViewPage.steps.clickOnGoToGradingViewButton();
368
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
369
+ };
370
+ if (view === 'Question preview' || view === 'Item preview') {
371
+ fillInTheGapsOverImageDragAndDropPage.steps.checkNonScoredScoringLabel();
372
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
373
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
374
+ };
375
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyIncorrectOptionIcon(0);
376
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyIncorrectOptionIcon(1);
377
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyIncorrectOptionIcon(2);
378
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
379
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Petals'], ['Leaves'], ['Stem']]);
380
+ });
381
+
382
+ it('When the user attempts the question partially correct, then the user should be awarded 0 points and on switching to \'Grading\' view, correct icon should be displayed besides the correct answer responses, incorrect icon should be displayed besides incorrect answer response, a status message with text \'Your answer is incorrect\' and correct answer section with all correct answers along should be displayed', () => {
383
+ if (view === 'Grading view') {
384
+ studentViewPage.steps.clearResponses();
385
+ };
386
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Petals': 0, 'Leaves': 2, 'Stem': 1 });
387
+ if (view === 'Grading view') {
388
+ studentViewPage.steps.submitResponse();
389
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
390
+ studentViewPage.steps.clickOnGoToGradingViewButton();
391
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
392
+ };
393
+ if (view === 'Question preview' || view === 'Item preview') {
394
+ fillInTheGapsOverImageDragAndDropPage.steps.checkNonScoredScoringLabel();
395
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
396
+ };
397
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(0);
398
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyIncorrectOptionIcon(1);
399
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyIncorrectOptionIcon(2);
400
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
401
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Petals'], ['Leaves'], ['Stem']]);
402
+ });
403
+
404
+ it('When the user attempts the question correctly, and on switching to "Grading" view, non-scoring label should be displayed, correct icons should be displayed beside the correct response, a status message with text "Your answer is correct" should be displayed and correct answer section should not be displayed', () => {
405
+ if (view === 'Grading view') {
406
+ studentViewPage.steps.clearResponses();
407
+ };
408
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Petals': 0, 'Leaves': 1, 'Stem': 2 });
409
+ if (view === 'Grading view') {
410
+ studentViewPage.steps.submitResponse();
411
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
412
+ studentViewPage.steps.clickOnGoToGradingViewButton();
413
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
414
+ };
415
+ if (view === 'Question preview' || view === 'Item preview') {
416
+ fillInTheGapsOverImageDragAndDropPage.steps.checkNonScoredScoringLabel();
417
+ fillInTheGapsOverImageDragAndDropPage.steps.switchToGradingView();
418
+ };
419
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(0);
420
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(1);
421
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectOptionIcon(2);
422
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
423
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyCorrectAnswerSectionNotExists();
424
+ });
425
+ });
426
+ });
427
+
212
428
  if (!grepTags || !grepTags.includes('smoke')) {
213
429
  describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
214
430
  abortEarlySetup();
@@ -375,7 +375,6 @@ describe('Create item page - Fill in the gaps: Question instructions, Options se
375
375
  cy.barsPreLoaderWait();
376
376
  fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
377
377
  fillInTheGapsOverImageDragAndDropPage.steps.verifyFileNameLabel('highlightImage.jpg');
378
- utilities.verifyElementVisibilityState(fillInTheGapsOverImageDragAndDropPage.uploadImageProgressBar(), 'visible');
379
378
  fillInTheGapsOverImageDragAndDropPage.steps.verifyImageIsUploaded();
380
379
  });
381
380
 
@@ -0,0 +1,37 @@
1
+ import { fillInTheGapsOverImageDragAndDropPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+
4
+ describe('Create question page - Fill In the Gaps Over Image Drag and Drop', () => {
5
+ before(() => {
6
+ cy.loginAs('admin');
7
+ });
8
+
9
+ describe('Check Alternative Answer Button', () => {
10
+ abortEarlySetup();
11
+ before(() => {
12
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
13
+ cy.barsPreLoaderWait();
14
+ fillInTheGapsOverImageDragAndDropPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct dropzone');
15
+ fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
16
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyImageIsUploaded();
17
+ fillInTheGapsOverImageDragAndDropPage.steps.addMultipleOptionFields(2);
18
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(10);
19
+ fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(['Option 1', 'Option 2']);
20
+ });
21
+
22
+ it('When correct answer is not set then alternative answer should be disabled', () => {
23
+ fillInTheGapsOverImageDragAndDropPage.steps.checkAlternativeButtonDisabled();
24
+ });
25
+
26
+ it('When correct answer is set then alternative answer should be enabled', () => {
27
+ fillInTheGapsOverImageDragAndDropPage.steps.allotPoints(20);
28
+ fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Option 1': 0 });
29
+ fillInTheGapsOverImageDragAndDropPage.steps.checkAlternativeButtonEnabled();
30
+ });
31
+
32
+ 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', () => {
33
+ fillInTheGapsOverImageDragAndDropPage.steps.clickOnAddAlternativeAnswerButton();
34
+ fillInTheGapsOverImageDragAndDropPage.steps.expandCorrectAnswerAccordion();
35
+ });
36
+ });
37
+ });
@@ -153,12 +153,11 @@ describe('Create Item Page: Fill in the gaps over image - drag and drop: Click a
153
153
  fillInTheGapsOverImageDragAndDropPage.steps.verifyInactiveStateOfAllDropzoneInSpecifyCorrectAnswerSection();
154
154
  });
155
155
 
156
- it('When the user selects a filled option and clicks in the options container, the selected option should get back in the options container an \'Error: Please set a correct answer\' error message should be displayed', () => {
156
+ 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', () => {
157
157
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Petals');
158
158
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Flower');
159
159
  fillInTheGapsOverImageDragAndDropPage.steps.verifyDraggableOptionInOptionsContainerSpecifyCorrectAnswerSection(['Petals', 'Flower', 'Stem', 'Seed']);
160
- utilities.verifyInnerText(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 'Error: Please set a correct answer.');
161
- utilities.verifyElementVisibilityState(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 'visible');
160
+ utilities.verifyElementVisibilityState(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 'notExist');
162
161
  });
163
162
 
164
163
  fillInTheGapsOverImageDragAndDropPage.tests.verifyErrorMessageCSSAndA11y();
@@ -483,13 +482,12 @@ describe('Create Item Page: Fill in the gaps over image - drag and drop: Click a
483
482
  fillInTheGapsOverImageDragAndDropPage.steps.verifyInactiveStateOfAllDropzoneInSpecifyCorrectAnswerSection();
484
483
  });
485
484
 
486
- it('When the user selects a filled option and clicks in the options container, the selected option should get back in the options container an error message should be displayed', () => {
485
+ 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 no error message should be displayed', () => {
487
486
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropGroupedOptionInOptionsContainerInSpecifyCorrectAnswerSection('Petals');
488
487
  fillInTheGapsOverImageDragAndDropPage.steps.clickAndDropGroupedOptionInOptionsContainerInSpecifyCorrectAnswerSection('Flower');
489
488
  fillInTheGapsOverImageDragAndDropPage.steps.verifyGroupedContainerContentsInSpecifyCorrectAnswerSection(0, groupedOptions[0]);
490
489
  fillInTheGapsOverImageDragAndDropPage.steps.verifyGroupedContainerContentsInSpecifyCorrectAnswerSection(1, groupedOptions[1]);
491
- utilities.verifyInnerText(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 'Error: Please set a correct answer.');
492
- utilities.verifyElementVisibilityState(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 'visible');
490
+ utilities.verifyElementVisibilityState(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 'notExist');
493
491
  });
494
492
 
495
493
  fillInTheGapsOverImageDragAndDropPage.tests.verifyErrorMessageCSSAndA11y();
@@ -0,0 +1,47 @@
1
+ import { fillInTheGapsOverImageDragAndDropPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+
4
+ describe('Create item page - Fill In the Gaps Over Image Drag and Drop', () => {
5
+
6
+ before(() => {
7
+ cy.loginAs('admin');
8
+ });
9
+
10
+ describe('User should be able to edit incomplete authored question', () => {
11
+ before(() => {
12
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
13
+ cy.barsPreLoaderWait();
14
+ fillInTheGapsOverImageDragAndDropPage.steps.saveAQuestionWithIncompleteAuthoring();
15
+ fillInTheGapsOverImageDragAndDropPage.steps.editItem();
16
+ });
17
+
18
+ it('Warning icons should be displayed on the required input fields', () => {
19
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyWarningIconOnRequiredFields(
20
+ [
21
+ "Please enter all option values",
22
+ "Please upload an image",
23
+ "Please set points"
24
+ ]);
25
+ });
26
+
27
+ it('When required input fields are filled then warning icons should disappear', () => {
28
+ fillInTheGapsOverImageDragAndDropPage.steps.uploadFile('highlightImage.jpg');
29
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyImageIsUploaded();
30
+ fillInTheGapsOverImageDragAndDropPage.steps.addMultipleOptionFields(2);
31
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(10);
32
+ fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(40);
33
+ fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(['Petals', 'Leaves', 'Roots', 'Stem']);
34
+ fillInTheGapsOverImageDragAndDropPage.steps.allotPoints(10);
35
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyErrorMessageIsNotDisplayed();
36
+ fillInTheGapsOverImageDragAndDropPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
37
+ });
38
+
39
+ it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
40
+ fillInTheGapsOverImageDragAndDropPage.steps.saveAQuestionAndVerifySnackbar();
41
+ });
42
+
43
+ it('Warning icon should not be visible', () => {
44
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyWarningIconNotExist();
45
+ });
46
+ });
47
+ });
@@ -1,7 +1,11 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { dialogBoxBase, fillInTheGapsOverImageDragAndDropPage } from "../../../pages";
2
+ import { dialogBoxBase, fillInTheGapsOverImageDragAndDropPage, itemPreviewPage } from "../../../pages";
3
+ import { browseItemsPage } from "../../../pages/components";
3
4
  import utilities from "../../../support/helpers/utilities";
5
+
4
6
  const options = ['Flower', 'Leaves'];
7
+ var itemReferenceID = "";
8
+
5
9
 
6
10
  describe('Create item page - Fill in the gaps over image - drag and drop: Header section and Saving question', () => {
7
11
  before(() => {
@@ -40,20 +44,15 @@ describe('Create item page - Fill in the gaps over image - drag and drop: Header
40
44
  before(() => {
41
45
  fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
42
46
  cy.barsPreLoaderWait();
47
+ utilities.verifyElementCount(fillInTheGapsOverImageDragAndDropPage.optionsInputField(), 2);
43
48
  });
44
49
 
45
50
  describe('Validation error messages', () => {
46
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
47
-
51
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all option values', 'Please upload an image', 'Please set points']);
48
52
 
49
53
  it('Validation error messages should be displayed below required input fields', () => {
50
54
  fillInTheGapsOverImageDragAndDropPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
51
- utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 0), 'Error: Image is required.');
52
- utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsOverImageDragAndDropPage.errorMessage(), 1), 'Error: Please insert a dropzone.');
53
- fillInTheGapsOverImageDragAndDropPage.steps.verifyPointsFieldErrorMessageIsNotDisplayed();
54
- fillInTheGapsOverImageDragAndDropPage.steps.verifyOptionsInputFieldErrorMessageDoesNotExist(0);
55
- fillInTheGapsOverImageDragAndDropPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
56
- fillInTheGapsOverImageDragAndDropPage.steps.verifySpecifyCorrectAnswerErrorMessage();
55
+ fillInTheGapsOverImageDragAndDropPage.steps.verifyWarningIconOnRequiredFields(['Please enter all option values', 'Please upload an image', 'Please set points'])
57
56
  });
58
57
 
59
58
  it('Validation error messages should disappear when required input fields are filled', () => {
@@ -79,5 +78,35 @@ describe('Create item page - Fill in the gaps over image - drag and drop: Header
79
78
  });
80
79
  fillInTheGapsOverImageDragAndDropPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
81
80
  });
81
+
82
+ describe('Saving a question with incomplete authoring', () => {
83
+ abortEarlySetup();
84
+ before(() => {
85
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
86
+ cy.barsPreLoaderWait();
87
+ });
88
+
89
+ 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', () => {
90
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all option values', 'Please set points']);
91
+ fillInTheGapsOverImageDragAndDropPage.steps.saveAQuestionWithIncompleteAuthoring();
92
+ });
93
+ fillInTheGapsOverImageDragAndDropPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
94
+ });
95
+ });
96
+
97
+ describe('Save as you go - Browse item page contents', () => {
98
+ abortEarlySetup();
99
+ before(() => {
100
+ fillInTheGapsOverImageDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps over image with drag and drop');
101
+ cy.barsPreLoaderWait();
102
+ fillInTheGapsOverImageDragAndDropPage.steps.saveAQuestionWithIncompleteAuthoring();
103
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
104
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
105
+ browseItemsPage.steps.navigateToBrowseItemsPage();
106
+ });
107
+
108
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
109
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
110
+ });
82
111
  });
83
112
  });
@@ -492,7 +492,11 @@ describe('Create Item page - Fill in the gaps over image - drag and drop: Studen
492
492
  fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(40);
493
493
  fillInTheGapsOverImageDragAndDropPage.steps.insertResponseArea(80);
494
494
  fillInTheGapsOverImageDragAndDropPage.steps.addMultipleOptionFields(3);
495
- fillInTheGapsOverImageDragAndDropPage.steps.addInputToOptionsInputField(options.slice(0, 5));
495
+ fillInTheGapsOverImageDragAndDropPage.steps.enterTextInOptionInputField(0, options[0]);
496
+ fillInTheGapsOverImageDragAndDropPage.steps.enterTextInOptionInputField(1, options[1]);
497
+ fillInTheGapsOverImageDragAndDropPage.steps.enterTextInOptionInputField(2, options[2]);
498
+ fillInTheGapsOverImageDragAndDropPage.steps.enterTextInOptionInputField(3, options[3]);
499
+ fillInTheGapsOverImageDragAndDropPage.steps.enterTextInOptionInputField(4, options[4]);
496
500
  cy.wait(2000);
497
501
  fillInTheGapsOverImageDragAndDropPage.steps.allotPoints(5);
498
502
  });