itemengine-cypress-automation 1.0.355 → 1.0.356-capture-image-8b4830c.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 (250) hide show
  1. package/Dockerfile +1 -0
  2. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  3. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  4. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +49 -11
  5. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +4 -3
  6. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +4 -3
  7. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  13. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  14. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  15. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  16. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  17. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  18. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  19. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  20. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  21. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
  22. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  23. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  24. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
  25. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  26. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  27. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  28. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +6 -0
  29. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  30. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  31. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -4
  32. package/cypress/e2e/ILC/CkEditorInsertTable/tableDimension&FooterProperties.js +3 -3
  33. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +11 -11
  34. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  35. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +62 -4
  36. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +119 -10
  37. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabScoring.js +1 -0
  38. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  39. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  40. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  41. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/pagination.js +1 -1
  42. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  43. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  44. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  45. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  46. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  47. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +1 -3
  48. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  49. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  50. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  51. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  52. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +40 -0
  53. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +45 -0
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +1 -0
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  58. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  59. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  60. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  61. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  62. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  63. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  64. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  65. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  66. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  67. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  68. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  69. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  70. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  71. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  72. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  73. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  74. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  75. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  76. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  77. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  78. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  79. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  80. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  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/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  86. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  87. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  88. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  89. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  90. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  91. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  92. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  93. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  94. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  95. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  96. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  97. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  98. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  99. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  100. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  101. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  102. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  103. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  104. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  105. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  106. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  107. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  108. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  109. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  110. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  111. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  112. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  113. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  114. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  115. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  116. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +227 -0
  117. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +2 -0
  118. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +1 -0
  119. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -67
  120. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  121. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  122. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +6 -0
  123. package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +100 -69
  124. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +1 -0
  125. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  126. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  127. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  128. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  129. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  130. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  131. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  132. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  133. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  134. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  135. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  136. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  137. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  138. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  139. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  140. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  141. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  142. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +35 -51
  143. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  144. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  145. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +2 -0
  146. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  147. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  148. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  149. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  150. package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +101 -70
  151. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  152. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  153. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  154. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  155. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  156. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  157. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  158. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  159. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  160. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  161. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  162. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  163. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  164. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  165. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  166. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  167. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  168. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  169. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  170. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  171. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  172. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  173. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  174. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  175. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  176. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  177. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  178. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  179. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  180. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  181. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  182. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  183. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -1
  184. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  185. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  186. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  187. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +1 -1
  188. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +58 -4
  189. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +208 -13
  190. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +259 -9
  191. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  192. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
  193. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +409 -4
  194. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  195. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  196. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +39 -6
  197. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  198. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  199. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  200. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  201. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  202. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.js +50 -13
  203. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  204. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  205. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  206. package/cypress/e2e/applitools.config.js +3 -3
  207. package/cypress/fixtures/theme/ilc.json +5 -1
  208. package/cypress/fixtures/uploads/sample.webm +0 -0
  209. package/cypress/fixtures/uploads/sample.wmv +0 -0
  210. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  211. package/cypress/pages/audioPlayerPage.js +47 -22
  212. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  213. package/cypress/pages/chartsBarPage.js +20 -0
  214. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  215. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  216. package/cypress/pages/components/browseItemsPage.js +109 -2
  217. package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
  218. package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
  219. package/cypress/pages/components/ckEditorInsertTableComponent.js +3 -3
  220. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  221. package/cypress/pages/components/commonComponents.js +4 -0
  222. package/cypress/pages/components/createQuestionBasePage.js +14 -1
  223. package/cypress/pages/components/defaultToolDropdown.js +1 -1
  224. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  225. package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
  226. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +28 -0
  227. package/cypress/pages/components/gridQuestionCommonComponent.js +56 -0
  228. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  229. package/cypress/pages/components/questionInstructionsComponent.js +9 -0
  230. package/cypress/pages/components/scoringSectionBaseEditTab.js +4 -0
  231. package/cypress/pages/contentBlocksPage.js +2 -0
  232. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  233. package/cypress/pages/desmosGeometryPage.js +184 -4
  234. package/cypress/pages/drawingResponsePage.js +2 -0
  235. package/cypress/pages/gradingViewPage.js +8 -0
  236. package/cypress/pages/graphingPage.js +27 -8
  237. package/cypress/pages/gridFillPage.js +15 -6
  238. package/cypress/pages/listOrderingPage.js +32 -1
  239. package/cypress/pages/matchingPage.js +26 -7
  240. package/cypress/pages/multipleSelectionPage.js +9 -1
  241. package/cypress/pages/numberLineLabelPage.js +31 -8
  242. package/cypress/pages/numberLinePage.js +19 -7
  243. package/cypress/pages/textEntryMathPage.js +24 -1
  244. package/cypress/pages/thinkSpherePage.js +925 -47
  245. package/cypress/pages/uploadResponsePage.js +17 -1
  246. package/cypress/pages/videoResponsePage.js +3 -0
  247. package/cypress/support/commands.js +9 -0
  248. package/cypress/support/helpers/createItem.js +668 -19
  249. package/cypress/support/helpers/utilities.js +35 -2
  250. package/package.json +3 -3
@@ -0,0 +1,41 @@
1
+ import { matchingPage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+
4
+ describe('Create item page - Matching', () => {
5
+ before(() => {
6
+ cy.loginAs('admin');
7
+ });
8
+
9
+ describe('User should be able to edit incomplete authored question', () => {
10
+ abortEarlySetup();
11
+ before(() => {
12
+ matchingPage.steps.navigateToCreateQuestion('matching');
13
+ cy.barsPreLoaderWait();
14
+ matchingPage.steps.saveAQuestionWithIncompleteAuthoring();
15
+ matchingPage.steps.editItem();
16
+ });
17
+
18
+ it('Warning icons should be displayed on the required input fields', () => {
19
+ matchingPage.steps.verifyWarningIconOnRequiredFields([
20
+ 'Please enter all prompt values',
21
+ 'Please enter all option values',
22
+ 'Please set points',
23
+ ]);
24
+ });
25
+
26
+ it('When required input fields are filled then warning icons should disappear', () => {
27
+ matchingPage.steps.enterTextInPromptInputField(['Prompt 1', 'Prompt 2', 'Prompt 3']);
28
+ matchingPage.steps.enterTextInOptionInputField(['Option 1', 'Option 2', 'Option 3']);
29
+ matchingPage.steps.allotPoints(10);
30
+ matchingPage.steps.verifyErrorMessageIsNotDisplayed();
31
+ });
32
+
33
+ it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
34
+ matchingPage.steps.saveAQuestionAndVerifySnackbar();
35
+ });
36
+
37
+ it('Warning icon should not be visible', () => {
38
+ matchingPage.steps.verifyWarningIconNotExist();
39
+ });
40
+ });
41
+ });
@@ -1,9 +1,12 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { dialogBoxBase, matchingPage } from "../../../pages";
2
+ import { dialogBoxBase, matchingPage, itemPreviewPage } from "../../../pages";
3
+ import { browseItemsPage } from "../../../pages/components";
3
4
  import utilities from "../../../support/helpers/utilities";
4
5
  const options = ['Flower', 'Leaves', 'Flowers'];
5
6
  const promptTextArray = ['Wild', 'Aquatic', 'Pet'];
6
7
 
8
+ var itemReferenceID = "";
9
+
7
10
  describe('Create item page - Matching : Header section and Saving question', () => {
8
11
  before(() => {
9
12
  cy.loginAs('admin');
@@ -44,19 +47,11 @@ describe('Create item page - Matching : Header section and Saving question', ()
44
47
  });
45
48
 
46
49
  describe('Validation error messages', () => {
47
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
50
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all prompt values', 'Please enter all option values', 'Please set points']);
48
51
 
49
52
  it('Validation error messages should be displayed below required input fields', () => {
50
53
  matchingPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
51
- matchingPage.steps.verifyPromptInputFieldErrorMessage(0);
52
- matchingPage.steps.verifyPromptInputFieldErrorMessage(1);
53
- matchingPage.steps.verifyPromptInputFieldErrorMessage(2);
54
- matchingPage.steps.verifyOptionsInputFieldErrorMessage(3);
55
- matchingPage.steps.verifyOptionsInputFieldErrorMessage(4);
56
- matchingPage.steps.verifyOptionsInputFieldErrorMessage(5);
57
- matchingPage.steps.verifyPointsFieldErrorMessageIsNotDisplayed();
58
- matchingPage.steps.verifySpecifyCorrectAnswerErrorIconIsVisible();
59
- matchingPage.steps.verifySpecifyCorrectAnswerErrorMessage();
54
+ matchingPage.steps.verifyWarningIconOnRequiredFields(['Please enter all prompt values', 'Please enter all option values', 'Please set points']);
60
55
  });
61
56
 
62
57
  it('Validation error messages should disappear when required input fields are filled', () => {
@@ -78,5 +73,35 @@ describe('Create item page - Matching : Header section and Saving question', ()
78
73
  });
79
74
  matchingPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
80
75
  });
76
+
77
+ describe('Saving a question with incomplete authoring', () => {
78
+ abortEarlySetup();
79
+ before(() => {
80
+ matchingPage.steps.navigateToCreateQuestion('matching');
81
+ cy.barsPreLoaderWait();
82
+ });
83
+
84
+ it('User should be able to save the question with incomplete authoring and display a snackbar with the text "Saved successfully!" when the Save Question button is clicked', () => {
85
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please enter all prompt values', 'Please enter all option values', 'Please set points']);
86
+ matchingPage.steps.saveAQuestionWithIncompleteAuthoring();
87
+ });
88
+ matchingPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
89
+ });
90
+ });
91
+
92
+ describe('Save as you go - Browse item page contents', () => {
93
+ abortEarlySetup();
94
+ before(() => {
95
+ matchingPage.steps.navigateToCreateQuestion('matching');
96
+ cy.barsPreLoaderWait();
97
+ matchingPage.steps.saveAQuestionWithIncompleteAuthoring();
98
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
99
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
100
+ browseItemsPage.steps.navigateToBrowseItemsPage();
101
+ });
102
+
103
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
104
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
105
+ });
81
106
  });
82
107
  });
@@ -116,22 +116,9 @@ describe('Create Item page - Matching : Question Instructions and prompt section
116
116
  matchingPage.steps.verifyPromptContents(2);
117
117
  });
118
118
 
119
- it('When user focus in and out of any of the \'Prompt\' input field without typing anything, then an error message \'Error: Prompt is required\' error message should be displayed', () => {
119
+ it('When user focus in and out of any of the \'Prompt\' input field without typing anything, then an error message \'Error: Prompt is required\' error message should disappear', () => {
120
120
  matchingPage.steps.focusInAndFocusOutOfPromptInputField(1);
121
- utilities.verifyInnerText(matchingPage.errorMessage(), 'Error: Prompt is required');
122
- utilities.verifyElementVisibilityState(matchingPage.errorMessage(), 'visible');
123
- });
124
-
125
- it('CSS of error message', { tags: 'css' }, () => {
126
- utilities.verifyCSS(matchingPage.errorMessage(), {
127
- 'color': css.color.errorText,
128
- 'font-size': css.fontSize.small,
129
- 'font-weight': css.fontWeight.regular
130
- });
131
- });
132
-
133
- it('Accessibility of error message', { tags: 'a11y' }, () => {
134
- cy.checkAccessibility(matchingPage.errorMessage());
121
+ matchingPage.steps.verifyErrorMessageIsNotDisplayed();
135
122
  });
136
123
 
137
124
  it('When user enters text in question prompt input field then error message should disappear', () => {
@@ -207,6 +207,214 @@ describe('Create item page - Matching: All or nothing ', () => {
207
207
  });
208
208
  });
209
209
 
210
+ views.forEach((view) => {
211
+ describe(`${view}: Matching dropdown - Manually scored`, { tags: 'smoke' }, () => {
212
+ abortEarlySetup();
213
+ before(() => {
214
+ switch (view) {
215
+ case 'Question preview':
216
+ matchingPage.steps.navigateToCreateQuestion('matching');
217
+ cy.barsPreLoaderWait();
218
+ matchingPage.steps.selectOptionLayoutToggleButton('Dropdown menu');
219
+ matchingPage.steps.addTextInQuestionInstructionsInputField('Match the following using dropdowns.');
220
+ matchingPage.steps.expandScoringTypeDropdown();
221
+ matchingPage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
222
+ matchingPage.steps.allotPoints(20);
223
+ matchingPage.steps.addMultipleOptionFields(2);
224
+ matchingPage.steps.enterTextInPromptInputField(promptTextArray);
225
+ matchingPage.steps.enterTextInOptionInputFieldDropdown(optionsArray);
226
+ matchingPage.steps.switchToPreviewTab();
227
+ break;
228
+ case 'Item preview':
229
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
230
+ itemPreviewPage.steps.switchToPreviewTab();
231
+ break;
232
+ case 'Grading view':
233
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
234
+ break;
235
+ };
236
+ });
237
+
238
+ beforeEach(() => {
239
+ switch (view) {
240
+ case 'Question preview':
241
+ matchingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
242
+ matchingPage.steps.resetQuestionPreview();
243
+ break;
244
+ case 'Item preview':
245
+ matchingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
246
+ itemPreviewPage.steps.resetQuestionPreview();
247
+ break;
248
+ case 'Grading view':
249
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
250
+ break;
251
+ }
252
+ });
253
+
254
+ if (view === 'Question preview') {
255
+ after(() => {
256
+ matchingPage.steps.clickOnSaveQuestionButton();
257
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
258
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
259
+ });
260
+ };
261
+
262
+ it('Question instructions should be visible', () => {
263
+ matchingPage.steps.verifyQuestionInstructionsTextPreviewTab('Match the following using dropdowns.');
264
+ matchingPage.steps.verifyVisibityOfQuestionInstructionsText();
265
+ });
266
+
267
+ 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', () => {
268
+ matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[0] }, { dropdownIndex: 1, dropdownOption: optionsArray[1] }]);
269
+ if (view === 'Grading view') {
270
+ studentViewPage.steps.submitResponse();
271
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
272
+ studentViewPage.steps.clickOnGoToGradingViewButton();
273
+ gradingViewPage.steps.verifyGradingViewScore('', 20);
274
+ matchingPage.steps.verifyCorrectIncorrectIconNotExistDropdown(0);
275
+ matchingPage.steps.verifyCorrectIncorrectIconNotExistDropdown(1);
276
+ matchingPage.steps.verifyAnswerStatusBannerNotExist();
277
+ matchingPage.steps.verifyCorrectAnswerSectionNotExist();
278
+ };
279
+ if (view === 'Question preview' || view === 'Item preview') {
280
+ matchingPage.steps.checkManuallyScoredScoringLabel();
281
+ };
282
+ });
283
+ });
284
+ });
285
+
286
+ views.forEach((view) => {
287
+ describe(`${view}: Matching dropdown - Non scored`, { tags: 'smoke' }, () => {
288
+ abortEarlySetup();
289
+ before(() => {
290
+ switch (view) {
291
+ case 'Question preview':
292
+ matchingPage.steps.navigateToCreateQuestion('matching');
293
+ cy.barsPreLoaderWait();
294
+ matchingPage.steps.selectOptionLayoutToggleButton('Dropdown menu');
295
+ matchingPage.steps.addTextInQuestionInstructionsInputField('Match the following using dropdowns.');
296
+ matchingPage.steps.addMultipleOptionFields(2);
297
+ matchingPage.steps.enterTextInPromptInputField(promptTextArray);
298
+ matchingPage.steps.enterTextInOptionInputFieldDropdown(optionsArray);
299
+ matchingPage.steps.expandScoringTypeDropdown();
300
+ matchingPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
301
+ matchingPage.steps.selectResponseFromDropdownInSpecifyCorrectAnswerSection([{ dropdownIndex: 0, dropdownOption: optionsArray[1] }, { dropdownIndex: 1, dropdownOption: optionsArray[2] }, { dropdownIndex: 2, dropdownOption: optionsArray[0] }]);
302
+ matchingPage.steps.switchToPreviewTab();
303
+ break;
304
+ case 'Item preview':
305
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
306
+ itemPreviewPage.steps.switchToPreviewTab();
307
+ break;
308
+ case 'Grading view':
309
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
310
+ break;
311
+ };
312
+ });
313
+
314
+ beforeEach(() => {
315
+ switch (view) {
316
+ case 'Question preview':
317
+ matchingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
318
+ matchingPage.steps.resetQuestionPreview();
319
+ break;
320
+ case 'Item preview':
321
+ matchingPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
322
+ itemPreviewPage.steps.resetQuestionPreview();
323
+ break;
324
+ case 'Grading view':
325
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
326
+ break;
327
+ }
328
+ });
329
+
330
+ if (view === 'Question preview') {
331
+ after(() => {
332
+ matchingPage.steps.clickOnSaveQuestionButton();
333
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
334
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
335
+ });
336
+ };
337
+
338
+ it('When the user selects "Grading" view without attempting the question, dropdown 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', () => {
339
+ if (view === 'Grading view') {
340
+ studentViewPage.steps.submitResponse();
341
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
342
+ studentViewPage.steps.clickOnGoToGradingViewButton();
343
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
344
+ };
345
+ if (view === 'Question preview' || view === 'Item preview') {
346
+ matchingPage.steps.checkNonScoredScoringLabel();
347
+ matchingPage.steps.switchToGradingView();
348
+ matchingPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
349
+ };
350
+ matchingPage.steps.verifyDropdownNumeration(0);
351
+ matchingPage.steps.verifyDropdownNumeration(1);
352
+ matchingPage.steps.verifyDropdownNumeration(2);
353
+ matchingPage.steps.verifyCorrectIncorrectIconsNotExist();
354
+ matchingPage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
355
+ utilities.verifyInnerText(matchingPage.correctAnswersLabel(), 'Correct answers');
356
+ matchingPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Elephant'], ['Fish'], ['Cat']]);
357
+ });
358
+
359
+ it('When the user attempts the question incorrectly, then the user should be awarded 0 points and on switching to "Grading" view, incorrect icons should be displayed besides all incorrect responses, a status message with text "Your answer is incorrect" and correct answer section with all correct answers along with numeration should be displayed', () => {
360
+ matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[0] }, { dropdownIndex: 1, dropdownOption: optionsArray[1] }, { dropdownIndex: 2, dropdownOption: optionsArray[2] }]);
361
+ if (view === 'Grading view') {
362
+ studentViewPage.steps.submitResponse();
363
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
364
+ studentViewPage.steps.clickOnGoToGradingViewButton();
365
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
366
+ };
367
+ if (view === 'Question preview' || view === 'Item preview') {
368
+ matchingPage.steps.checkNonScoredScoringLabel();
369
+ matchingPage.steps.switchToGradingView();
370
+ };
371
+ matchingPage.steps.verifyIncorrectOptionIconDropdown(0);
372
+ matchingPage.steps.verifyIncorrectOptionIconDropdown(1);
373
+ matchingPage.steps.verifyIncorrectOptionIconDropdown(2);
374
+ matchingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
375
+ matchingPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Elephant'], ['Fish'], ['Cat']]);
376
+ });
377
+
378
+ 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 beside the correct answer responses, incorrect icon should be displayed beside incorrect answer responses, a status message with text "Your answer is incorrect" and correct answer section with all correct answers should be displayed', () => {
379
+ matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[1] }, { dropdownIndex: 1, dropdownOption: optionsArray[3] }, { dropdownIndex: 2, dropdownOption: optionsArray[0] }]);
380
+ if (view === 'Grading view') {
381
+ studentViewPage.steps.submitResponse();
382
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
383
+ studentViewPage.steps.clickOnGoToGradingViewButton();
384
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
385
+ };
386
+ if (view === 'Question preview' || view === 'Item preview') {
387
+ matchingPage.steps.checkNonScoredScoringLabel();
388
+ matchingPage.steps.switchToGradingView();
389
+ };
390
+ matchingPage.steps.verifyCorrectOptionIconDropdown(0);
391
+ matchingPage.steps.verifyIncorrectOptionIconDropdown(1);
392
+ matchingPage.steps.verifyCorrectOptionIconDropdown(2);
393
+ matchingPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
394
+ matchingPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Elephant'], ['Fish'], ['Cat']]);
395
+ });
396
+
397
+ it('When the user attempts the question correctly, and on switching to "Grading" view, non-scoring label should be displayed, correct icons should be displayed beside the correct responses, a status message with text "Your answer is correct" should be displayed and correct answer section should not be displayed', () => {
398
+ matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[1] }, { dropdownIndex: 1, dropdownOption: optionsArray[2] }, { dropdownIndex: 2, dropdownOption: optionsArray[0] }]);
399
+ if (view === 'Grading view') {
400
+ studentViewPage.steps.submitResponse();
401
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
402
+ studentViewPage.steps.clickOnGoToGradingViewButton();
403
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
404
+ };
405
+ if (view === 'Question preview' || view === 'Item preview') {
406
+ matchingPage.steps.checkNonScoredScoringLabel();
407
+ matchingPage.steps.switchToGradingView();
408
+ };
409
+ matchingPage.steps.verifyCorrectOptionIconDropdown(0);
410
+ matchingPage.steps.verifyCorrectOptionIconDropdown(1);
411
+ matchingPage.steps.verifyCorrectOptionIconDropdown(2);
412
+ matchingPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
413
+ matchingPage.steps.verifyCorrectAnswerSectionNotExists();
414
+ });
415
+ });
416
+ });
417
+
210
418
  if (!grepTags || !grepTags.includes('smoke')) {
211
419
  describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
212
420
  abortEarlySetup();
@@ -201,6 +201,233 @@ describe('Create Item page - Multiple selection: All or nothing ', () => {
201
201
  });
202
202
  });
203
203
 
204
+ views.forEach((view) => {
205
+ describe(`Multiple selection - Manually scored: ${view}`, { tags: 'smoke' }, () => {
206
+ abortEarlySetup();
207
+ before(() => {
208
+ switch (view) {
209
+ case 'Question preview':
210
+ multipleSelectionPage.steps.navigateToCreateQuestion('multiple selection');
211
+ cy.barsPreLoaderWait();
212
+ multipleSelectionPage.steps.addTextInQuestionInstructionsInputField('Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
213
+ multipleSelectionPage.steps.addInputToOptionsInputField(options);
214
+ multipleSelectionPage.steps.expandScoringTypeDropdown();
215
+ multipleSelectionPage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
216
+ multipleSelectionPage.steps.allotPoints(20);
217
+ multipleSelectionPage.steps.switchToPreviewTab();
218
+ break;
219
+ case 'Item preview':
220
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
221
+ itemPreviewPage.steps.switchToPreviewTab();
222
+ break;
223
+ case 'Grading view':
224
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
225
+ break;
226
+ };
227
+ });
228
+
229
+ beforeEach(() => {
230
+ switch (view) {
231
+ case 'Question preview':
232
+ multipleSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
233
+ multipleSelectionPage.steps.resetQuestionPreview();
234
+ break;
235
+ case 'Item preview':
236
+ multipleSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
237
+ itemPreviewPage.steps.resetQuestionPreview();
238
+ break;
239
+ case 'Grading view':
240
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
241
+ break;
242
+ }
243
+ });
244
+
245
+ if (view === 'Question preview') {
246
+ after(() => {
247
+ multipleSelectionPage.steps.clickOnSaveQuestionButtonWithForceTrue();
248
+ cy.wait(5000);
249
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
250
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
251
+ });
252
+ };
253
+
254
+ it('Question instructions should be visible', () => {
255
+ multipleSelectionPage.steps.verifyQuestionInstructionsTextPreviewTab('Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
256
+ multipleSelectionPage.steps.verifyVisibityOfQuestionInstructionsText();
257
+ });
258
+
259
+ it('User should be able to attempt the question in student view and correct/incorrect icons, Your answer is correct/incorrect label, correct answer section should not be displayed in grading view', () => {
260
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(0);
261
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(1);
262
+ if (view === 'Grading view') {
263
+ studentViewPage.steps.submitResponse();
264
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
265
+ studentViewPage.steps.clickOnGoToGradingViewButton();
266
+ gradingViewPage.steps.verifyGradingViewScore('', 20);
267
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(0);
268
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(1);
269
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(2);
270
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(3);
271
+ multipleSelectionPage.steps.verifyAnswerBannerNotExist();
272
+ multipleSelectionPage.steps.verifyCorrectAnswerSectionNotExist();
273
+ };
274
+ if (view === 'Question preview' || view === 'Item preview') {
275
+ multipleSelectionPage.steps.checkManuallyScoredScoringLabel();
276
+ };
277
+ });
278
+ });
279
+ });
280
+
281
+ views.forEach((view) => {
282
+ describe(`Multiple selection - Non scored: ${view}`, { tags: 'smoke' }, () => {
283
+ abortEarlySetup();
284
+ before(() => {
285
+ switch (view) {
286
+ case 'Question preview':
287
+ multipleSelectionPage.steps.navigateToCreateQuestion('multiple selection');
288
+ cy.barsPreLoaderWait();
289
+ multipleSelectionPage.steps.addTextInQuestionInstructionsInputField('Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
290
+ multipleSelectionPage.steps.expandScoringTypeDropdown();
291
+ multipleSelectionPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
292
+ multipleSelectionPage.steps.addInputToOptionsInputField(options);
293
+ multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(0);
294
+ multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
295
+ multipleSelectionPage.steps.switchToPreviewTab();
296
+ break;
297
+ case 'Item preview':
298
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
299
+ itemPreviewPage.steps.switchToPreviewTab();
300
+ break;
301
+ case 'Grading view':
302
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
303
+ break;
304
+ };
305
+ });
306
+
307
+ beforeEach(() => {
308
+ switch (view) {
309
+ case 'Question preview':
310
+ multipleSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
311
+ multipleSelectionPage.steps.resetQuestionPreview();
312
+ break;
313
+ case 'Item preview':
314
+ multipleSelectionPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
315
+ itemPreviewPage.steps.resetQuestionPreview();
316
+ break;
317
+ case 'Grading view':
318
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
319
+ break;
320
+ }
321
+ });
322
+
323
+ if (view === 'Question preview') {
324
+ after(() => {
325
+ multipleSelectionPage.steps.clickOnSaveQuestionButton();
326
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
327
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
328
+ });
329
+ };
330
+
331
+ it('When the user selects \'Grading\' view without attempting the question, dropdown 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', () => {
332
+ if (view === 'Grading view') {
333
+ studentViewPage.steps.submitResponse();
334
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
335
+ studentViewPage.steps.clickOnGoToGradingViewButton();
336
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
337
+ };
338
+ if (view === 'Question preview' || view === 'Item preview') {
339
+ multipleSelectionPage.steps.checkNonScoredScoringLabel();
340
+ multipleSelectionPage.steps.switchToGradingView();
341
+ multipleSelectionPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
342
+ };
343
+ //Remove the if-else condition and line 346 once https://weldnorthed.atlassian.net/browse/IEI-5704 is fixed.
344
+ if(view === 'Question preview'){
345
+ utilities.verifyInnerText(multipleSelectionPage.correctAnswersLabel(), 'Correct answers');
346
+ }
347
+ else{
348
+ utilities.verifyInnerText(multipleSelectionPage.correctAnswersLabel(), 'Correct answer');
349
+ }
350
+ multipleSelectionPage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
351
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(0);
352
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(1);
353
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(2);
354
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(3);
355
+ });
356
+
357
+ 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 answer should be displayed', () => {
358
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(2);
359
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(3);
360
+ if (view === 'Grading view') {
361
+ studentViewPage.steps.submitResponse();
362
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
363
+ studentViewPage.steps.clickOnGoToGradingViewButton();
364
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
365
+ };
366
+ if (view === 'Question preview' || view === 'Item preview') {
367
+ multipleSelectionPage.steps.checkNonScoredScoringLabel();
368
+ multipleSelectionPage.steps.switchToGradingView();
369
+ };
370
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(0);
371
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(1);
372
+ multipleSelectionPage.steps.verifyIncorrectOptionIconGradingView(2);
373
+ multipleSelectionPage.steps.verifyIncorrectOptionIconGradingView(3);
374
+ multipleSelectionPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
375
+ multipleSelectionPage.steps.verifyCorrectAnswerSectionExist();
376
+ });
377
+
378
+ //Failing due to https://weldnorthed.atlassian.net/browse/IEI-6004
379
+ it.skip('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 with numeration should be displayed', () => {
380
+ if (view === 'Grading view') {
381
+ studentViewPage.steps.clearResponses();
382
+ };
383
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(0);
384
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(1);
385
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(2);
386
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(3);
387
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
388
+ if (view === 'Grading view') {
389
+ studentViewPage.steps.submitResponse();
390
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
391
+ studentViewPage.steps.clickOnGoToGradingViewButton();
392
+ };
393
+ if (view === 'Question preview' || view === 'Item preview') {
394
+ multipleSelectionPage.steps.checkNonScoredScoringLabel();
395
+ multipleSelectionPage.steps.switchToGradingView();
396
+ };
397
+ multipleSelectionPage.steps.verifyCorrectOptionIconGradingView(0);
398
+ multipleSelectionPage.steps.verifyCorrectOptionIconGradingView(1);
399
+ multipleSelectionPage.steps.verifyIncorrectOptionIconGradingView(2);
400
+ multipleSelectionPage.steps.verifyIncorrectOptionIconGradingView(3);
401
+ multipleSelectionPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
402
+ multipleSelectionPage.steps.verifyCorrectAnswerSectionExist();
403
+ });
404
+
405
+ it('When 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', () => {
406
+ if (view === 'Grading view') {
407
+ studentViewPage.steps.clearResponses();
408
+ };
409
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(0);
410
+ multipleSelectionPage.steps.checkOptionsCheckboxInPreviewTab(1);
411
+ if (view === 'Grading view') {
412
+ studentViewPage.steps.submitResponse();
413
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
414
+ studentViewPage.steps.clickOnGoToGradingViewButton();
415
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
416
+ };
417
+ if (view === 'Question preview' || view === 'Item preview') {
418
+ multipleSelectionPage.steps.checkNonScoredScoringLabel();
419
+ multipleSelectionPage.steps.switchToGradingView();
420
+ };
421
+ multipleSelectionPage.steps.verifyCorrectOptionIconGradingView(0);
422
+ multipleSelectionPage.steps.verifyCorrectOptionIconGradingView(1);
423
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(2);
424
+ multipleSelectionPage.steps.verifyCorrectIncorrectIconNotVisibleGradingView(3);
425
+ multipleSelectionPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
426
+ multipleSelectionPage.steps.verifyCorrectAnswerSectionNotExist();
427
+ });
428
+ });
429
+ });
430
+
204
431
  if (!grepTags || !grepTags.includes('smoke')) {
205
432
  describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
206
433
  abortEarlySetup();
@@ -1,5 +1,6 @@
1
1
  import { multipleSelectionPage } from "../../../pages";
2
2
  import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ const options = ['Pollution caused by treating chemical waste', 'Pollution caused by cement production', 'Pollution caused by methane production', 'Pollution caused by cement and methane production'];
3
4
 
4
5
  describe('Create Item page - Multiple selection', () => {
5
6
  before(() => {
@@ -64,6 +65,7 @@ describe('Create Item page - Multiple selection', () => {
64
65
  before(() => {
65
66
  multipleSelectionPage.steps.navigateToCreateQuestion('multiple selection');
66
67
  cy.barsPreLoaderWait();
68
+ multipleSelectionPage.steps.addInputToOptionsInputField(options);
67
69
  });
68
70
 
69
71
  it('When the user selects \'Grading\' view without setting the answer, correct answers section and answer status banner should not be displayed', () => {
@@ -224,6 +224,7 @@ describe('Create item page - Multiple selection: Scoring section', () => {
224
224
  before(() => {
225
225
  multipleSelectionPage.steps.navigateToCreateQuestion('multiple selection');
226
226
  cy.barsPreLoaderWait();
227
+ multipleSelectionPage.steps.addInputToOptionsInputField(options);
227
228
  });
228
229
 
229
230
  it('User should be able to select \'Manually scored\' scoring type from scoring type dropdown', () => {