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
@@ -273,7 +273,6 @@ describe('Create item page - Drawing response: Background: Blank canvas, Image,
273
273
 
274
274
  it('When the user adds an image file and file upload is inprogress, file name and progress bar should be displayed below \'File name\' label. Progress bar should disappear once file is uploaded', () => {
275
275
  drawingResponsePage.steps.uploadFile('uploads/image.png');
276
- utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'visible');
277
276
  utilities.verifyInnerText(drawingResponsePage.uploadedFileNameLabel(), 'image.png');
278
277
  utilities.verifyElementVisibilityState(drawingResponsePage.uploadedFileNameLabel(), 'visible');
279
278
  utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'notExist');
@@ -285,7 +284,6 @@ describe('Create item page - Drawing response: Background: Blank canvas, Image,
285
284
 
286
285
  //upload the same file again
287
286
  drawingResponsePage.steps.uploadFile('uploads/image.png');
288
- utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'visible');
289
287
  utilities.verifyInnerText(drawingResponsePage.uploadedFileNameLabel(), 'image.png');
290
288
  utilities.verifyElementVisibilityState(drawingResponsePage.uploadedFileNameLabel(), 'visible');
291
289
  utilities.verifyElementVisibilityState(drawingResponsePage.fileUploadProgressBar(), 'notExist');
@@ -307,17 +305,13 @@ describe('Create item page - Drawing response: Background: Blank canvas, Image,
307
305
  utilities.verifyElementVisibilityState(drawingResponsePage.uploadedFileNameLabel(), 'visible');
308
306
  });
309
307
 
310
- it('When the user uploads a file that is not supported, following error message should be displayed: \'Error: The file type is not supported. Please upload a file with the following supported formats: JPG, PNG, GIF, SVG.\'', () => {
308
+ it('When the user uploads a file that is not supported, following error message should not be displayed', () => {
311
309
  drawingResponsePage.steps.uploadFile('uploads/sample.mp4')
312
- utilities.verifyInnerText(drawingResponsePage.errorMessage(), 'Error: The file type is not supported. Please upload a file with the following supported formats: JPG, PNG, GIF, SVG.');
313
- utilities.verifyElementVisibilityState(drawingResponsePage.errorMessage(), 'visible');
310
+ utilities.verifyElementVisibilityState(drawingResponsePage.errorMessage(), 'notExist');
314
311
  });
315
312
 
316
- drawingResponsePage.tests.verifyErrorMessageCSSAndA11y();
317
-
318
313
  it('When the user uploads supported format of image file, error message should disappear', () => {
319
314
  drawingResponsePage.steps.uploadFile('uploads/sample2.jpg');
320
- utilities.verifyElementVisibilityState(drawingResponsePage.errorMessage(), 'notExist');
321
315
  });
322
316
 
323
317
  //Failing due to https://redmine.zeuslearning.com/issues/555227
@@ -585,6 +585,7 @@ describe('Create item page - Drawing response: Customize special characters, Cus
585
585
  it('When the user has modified contents in the \'Fill color\' section in the edit tab, the updates should be displayed in the \'Fill color\' popup in the preview tab', () => {
586
586
  drawingResponsePage.steps.switchToPreviewTab();
587
587
  drawingResponsePage.steps.selectPreviewTabToolbarOption(`${drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[11].displayName}`);
588
+ drawingResponsePage.steps.selectPreviewTabToolbarOption(`${drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[11].displayName}`);
588
589
  drawingResponsePage.steps.selectPreviewTabSecondaryToolbarOption('Fill color');
589
590
  drawingResponsePage.steps.verifyCSSOfSecondaryOptionPopupOptions(0, 'rgb(255, 0, 0)');
590
591
  drawingResponsePage.steps.verifyCSSOfSecondaryOptionPopupOptions(1, 'rgb(6, 255, 172)');
@@ -233,7 +233,7 @@ describe('Create item page - Drawing response: Question instructions, Customize
233
233
  utilities.verifyInnerText(drawingResponsePage.defaultStrokeFontColorLabel(), 'Default stroke/font colors');
234
234
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultStrokeColorsWrapper(), 'visible');
235
235
  drawingResponsePage.steps.verifyCSSOfDefaultFontStrokeFillColorBlockInEditTab(0, 'rgb(0, 112, 128)');
236
- } else if(!toolbarOption.additionalOptions.includes(' StrokeFontColor')) {
236
+ } else if (!toolbarOption.additionalOptions.includes(' StrokeFontColor')) {
237
237
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultStrokeColorsWrapper(), 'notExist');
238
238
  }
239
239
  else if (toolbarOption.additionalOptions.includes(' FillColor')) {
@@ -241,7 +241,7 @@ describe('Create item page - Drawing response: Question instructions, Customize
241
241
  utilities.verifyInnerText(drawingResponsePage.defaultFillColorsLabel(), 'Default fill colors');
242
242
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultFillColorsWrapper(), 'visible');
243
243
  drawingResponsePage.steps.verifyCSSOfDefaultFontStrokeFillColorBlockInEditTab(1, 'rgb(0, 224, 255)');
244
- } else if(!toolbarOption.additionalOptions.includes(' FillColor')) {
244
+ } else if (!toolbarOption.additionalOptions.includes(' FillColor')) {
245
245
  utilities.verifyElementVisibilityState(drawingResponsePage.defaultNewFillColorsWrapper(), 'notExist');
246
246
  }
247
247
  else if (toolbarOption.additionalOptions.includes(' SpecialChar')) {
@@ -249,7 +249,7 @@ describe('Create item page - Drawing response: Question instructions, Customize
249
249
  utilities.verifyElementDisabledClass(drawingResponsePage.customizeSpecialCharactersLabel());
250
250
  utilities.verifyElementVisibilityState(drawingResponsePage.customizeSpecialCharactersCheckbox(), 'exist');
251
251
  utilities.verifyElementDisabled(drawingResponsePage.customizeSpecialCharactersCheckbox());
252
- } else if(!toolbarOption.additionalOptions.includes(' SpecialChar')) {
252
+ } else if (!toolbarOption.additionalOptions.includes(' SpecialChar')) {
253
253
  utilities.verifyElementVisibilityState(drawingResponsePage.customizeSpecialCharactersLabel(), 'notExist');
254
254
  utilities.verifyElementVisibilityState(drawingResponsePage.customizeSpecialCharactersCheckbox(), 'notExist');
255
255
  }
@@ -266,9 +266,7 @@ describe('Preview tab contents - primary toolbar options, secondary toolbar opti
266
266
  });
267
267
 
268
268
  it('When user clicks on \'Capture Image\' then display Capture Image container should be visible', () => {
269
- drawingResponsePage.steps.selectPreviewTabToolbarOption(
270
- drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[4].displayName
271
- );
269
+ drawingResponsePage.steps.selectPreviewTabToolbarOption(drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[4].displayName);
272
270
  drawingResponsePage.steps.verifyCaptureImageContainerIsVisible();
273
271
  });
274
272
 
@@ -135,7 +135,7 @@ describe('Create question page - Essay Response: Create custom category', () =>
135
135
 
136
136
  allCategories.slice(2).forEach((categoryName) => {
137
137
  it(`On clicking the ${equationEditorCategoriesAndSymbols[categoryName].displayName} category accordion the category should be expanded`, () => {
138
- if (categoryName != 'Intermediate') {
138
+ if (categoryName != 'intermediate') {
139
139
  createCustomCategoryFlyout.steps.expandCategoryAccordion(`${equationEditorCategoriesAndSymbols[categoryName].displayName}`)
140
140
  }
141
141
  });
@@ -240,7 +240,6 @@ describe('Create question page - Essay Response: Edit category', () => {
240
240
  editCategoryFlyout.steps.openEditCategoryFlyout();
241
241
  utilities.verifyElementDisabled(editCategoryFlyout.buttonReset());
242
242
  editCategoryFlyout.steps.verifyCategoryCharacterNotSelected(`${equationEditorCategoriesAndSymbols.general.symbols.dollar.ariaLabel}`)
243
- editCategoryFlyout.steps.verifyCategoryCharacterNotSelected(`${equationEditorCategoriesAndSymbols.general.symbols.dollar.ariaLabel}`)
244
243
  });
245
244
  });
246
245
 
@@ -73,55 +73,45 @@ describe('Create question page - Essay Response: Question Instructions, Set limi
73
73
  essayResponsePage.steps.setMaximumLimit(500);
74
74
  });
75
75
 
76
- it('When the user clears the minimum word limit input field and focuses out of it, then error message \'Error: Minimum word limit is required\' should be displayed below the input field', () => {
76
+ it('When the user clears the minimum word limit input field and focuses out of it, then the error message should not be displayed', () => {
77
77
  essayResponsePage.steps.clearAndFocusOutOfMinimumLimitInputField();
78
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Minimum word limit is required.');
79
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
78
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
80
79
  });
81
80
 
82
- essayResponsePage.tests.verifyErrorMessageCSSAndA11y();
83
-
84
- it('When the user enters value in minimum word limit input field then the error message should disappear', () => {
81
+ it('When the user enters value 0 in the minimum word limit input field, it should be accepted', () => {
85
82
  essayResponsePage.steps.setMinimumLimit(0);
86
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
87
83
  });
88
84
 
89
- it('When the user clears the maximum word limit input field and focuses out of it, then error message \'Error: Maximum word limit is required.\' should be displayed below the input field', () => {
85
+ it('When the user clears the maximum word limit input field and focuses out of it, then the error message should not be displayed', () => {
90
86
  essayResponsePage.steps.clearAndFocusOutOfMaximumLimitInputField();
91
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Maximum word limit is required.');
92
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
87
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
93
88
  });
94
89
 
95
- it('When the user enters value in maximum word limit input field then the error message should disappear', () => {
90
+ it('When the user enters a value in the maximum word limit input field, it should be accepted', () => {
96
91
  essayResponsePage.steps.setMaximumLimit(500);
97
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
98
92
  });
99
93
 
100
- it('When the user sets minimum limit input field value greater than maximum limit input field value then error message \'Error: Minimum limit must be less than or equal to maximum limit.\' and \'Error: Maximum limit must be greater than or equal to minimum limit.\'should be displayed below the minimum and maximum input field respectively', () => {
94
+ it('When the user sets the minimum limit input field value greater than the maximum limit input field value, then error messages should not be displayed below both input fields', () => {
101
95
  essayResponsePage.steps.setMinimumLimit(700);
102
- essayResponsePage.steps.verifyMaximumLimitErrorMessage();
103
- essayResponsePage.steps.verifyMinimumLimitErrorMessage();
96
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
104
97
  });
105
98
 
106
- essayResponsePage.tests.verifyErrorMessageCSSAndA11y();
107
-
108
- it('When the user sets minimum limit input field value less than or equal to maximum limit input field value then error message should disappear', () => {
99
+ it('When the user sets the minimum limit input field value less than or equal to the maximum limit input field value, then the error messages should disappear', () => {
109
100
  essayResponsePage.steps.setMinimumLimit(500);
110
101
  utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
111
102
  });
112
103
 
113
- it('When the user sets maximum limit input field value less than minimum limit input field value then error message \'Error: Minimum limit must be less than or equal to maximum limit.\' and \'Error: Maximum limit must be greater than or equal to minimum limit.\'should be displayed below the minimum and maximum input field respectively', () => {
104
+ it('When the user sets the maximum limit input field value less than the minimum limit input field value, then error messages not be displayed below both input fields', () => {
114
105
  essayResponsePage.steps.setMaximumLimit(400);
115
- essayResponsePage.steps.verifyMaximumLimitErrorMessage();
116
- essayResponsePage.steps.verifyMinimumLimitErrorMessage();
106
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
117
107
  });
118
108
 
119
- it('When the user sets maximum limit input field value greater than or equal to minimum limit input field value then error message should disappear', () => {
109
+ it('When the user sets the maximum limit input field value greater than or equal to the minimum limit input field value, then the error messages should disappear', () => {
120
110
  essayResponsePage.steps.setMaximumLimit(800);
121
111
  utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
122
112
  });
123
113
 
124
- it('\'Always show maximum limit\' and \'Always show minimum limit\' labels and checkbox should be displayed and by default \'Always show maximum limit\' should be checked', () => {
114
+ it('\'Always show maximum limit\' and \'Always show minimum limit\' labels and checkboxes should be displayed, and by default, \'Always show maximum limit\' should be checked', () => {
125
115
  utilities.verifyInnerText(essayResponsePage.alwaysShowMaxLimitLabel(), 'Always show maximum limit');
126
116
  utilities.verifyElementVisibilityState(essayResponsePage.alwaysShowMaxLimitLabel(), 'visible');
127
117
  utilities.verifyInnerText(essayResponsePage.alwaysShowMinLimitLabel(), 'Always show minimum limit');
@@ -129,44 +119,40 @@ describe('Create question page - Essay Response: Question Instructions, Set limi
129
119
  essayResponsePage.steps.verifyAlwaysShowMaximumLimitCheckboxIsChecked();
130
120
  });
131
121
 
132
- it('When the user selects \'Character\' radio button then labels should change to \'Minimum character limit\' and \'Maximum character limit\'', () => {
122
+ it('When the user selects the \'Character\' radio button, the labels should change to \'Minimum character limit\' and \'Maximum character limit\'', () => {
133
123
  essayResponsePage.steps.checkCharacterRadioButton();
134
124
  utilities.verifyInnerText(essayResponsePage.minimumLimitLabel(), 'Minimum character limit');
135
125
  utilities.verifyInnerText(essayResponsePage.maximumLimitLabel(), 'Maximum character limit');
136
126
  });
137
127
 
138
128
  it('\'Minimum character limit\' and \'Maximum character limit\' input fields should be updated to 0 and 20000 by default', () => {
139
- essayResponsePage.steps.verifyMinimumLimitInputField(0)
140
- essayResponsePage.steps.verifyMaximumLimitInputField(20000)
129
+ essayResponsePage.steps.verifyMinimumLimitInputField(0);
130
+ essayResponsePage.steps.verifyMaximumLimitInputField(20000);
141
131
  });
142
132
 
143
- it('User should be able to update values in both the input fields', () => {
133
+ it('User should be able to update values in both the input fields for character limits', () => {
144
134
  essayResponsePage.steps.setMinimumLimit(750);
145
135
  essayResponsePage.steps.setMaximumLimit(12000);
146
136
  });
147
137
 
148
- it('When the user clears the minimum character limit input field and focuses out of it, then error message \'Error: Minimum character limit is required\' should be displayed below the input field', () => {
138
+ it('When the user clears the minimum character limit input field and focuses out of it, then the error message should not be displayed', () => {
149
139
  essayResponsePage.steps.clearAndFocusOutOfMinimumLimitInputField();
150
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Minimum character limit is required.');
151
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
140
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
152
141
  });
153
142
 
154
143
  essayResponsePage.tests.verifyErrorMessageCSSAndA11y();
155
144
 
156
- it('When the user enters value in minimum character limit input field then the error message should disappear', () => {
145
+ it('When the user enters a value in the minimum character limit input field, the error message should disappear', () => {
157
146
  essayResponsePage.steps.setMinimumLimit(0);
158
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
159
147
  });
160
148
 
161
- it('When the user clears the maximum character limit input field and focuses out of it, then error message \'Error: Maximum character limit is required.\' should be displayed below the input field', () => {
149
+ it('When the user clears the maximum character limit input field and focuses out of it, then the error message should not be displayed', () => {
162
150
  essayResponsePage.steps.clearAndFocusOutOfMaximumLimitInputField();
163
- utilities.verifyInnerText(essayResponsePage.errorMessage(), 'Error: Maximum character limit is required.');
164
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'visible');
151
+ utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
165
152
  });
166
153
 
167
- it('When the user enters value in maximum character limit input field then the error message should disappear', () => {
154
+ it('When the user enters a value in the maximum character limit input field, the error message should disappear', () => {
168
155
  essayResponsePage.steps.setMaximumLimit(500);
169
- utilities.verifyElementVisibilityState(essayResponsePage.errorMessage(), 'notExist');
170
156
  });
171
157
 
172
158
  it('CSS of \'Set word limit\' sections', { tags: 'css' }, () => {
@@ -222,6 +222,216 @@ describe('Create item page - Fill in the gaps - drag and drop: All or nothing ',
222
222
  });
223
223
  });
224
224
 
225
+ views.forEach((view) => {
226
+ describe(`Fill in the Gaps with drag and drop - Manually scored: ${view}`, { tags: 'smoke' }, () => {
227
+ abortEarlySetup();
228
+ before(() => {
229
+ switch (view) {
230
+ case 'Question preview':
231
+ fillInTheGapsDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps with drag and drop');
232
+ cy.barsPreLoaderWait();
233
+ fillInTheGapsDragAndDropPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct dropzone');
234
+ fillInTheGapsDragAndDropPage.steps.expandScoringTypeDropdown();
235
+ fillInTheGapsDragAndDropPage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
236
+ fillInTheGapsDragAndDropPage.steps.addResponseArea();
237
+ fillInTheGapsDragAndDropPage.steps.allotPoints(20);
238
+ fillInTheGapsDragAndDropPage.steps.addMultipleOptionFields(2);
239
+ fillInTheGapsDragAndDropPage.steps.addInputToOptionsInputField(['Petals', 'Leaves', 'Roots', 'Stem']);
240
+ fillInTheGapsDragAndDropPage.steps.switchToPreviewTab();
241
+ break;
242
+ case 'Item preview':
243
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
244
+ itemPreviewPage.steps.switchToPreviewTab();
245
+ break;
246
+ case 'Grading view':
247
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
248
+ break;
249
+ };
250
+ });
251
+
252
+ beforeEach(() => {
253
+ switch (view) {
254
+ case 'Question preview':
255
+ fillInTheGapsDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
256
+ fillInTheGapsDragAndDropPage.steps.resetQuestionPreview();
257
+ break;
258
+ case 'Item preview':
259
+ fillInTheGapsDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
260
+ itemPreviewPage.steps.resetQuestionPreview();
261
+ break;
262
+ case 'Grading view':
263
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
264
+ break;
265
+ }
266
+ });
267
+
268
+ if (view === 'Question preview') {
269
+ after(() => {
270
+ fillInTheGapsDragAndDropPage.steps.clickOnSaveQuestionButton();
271
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
272
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
273
+ });
274
+ };
275
+
276
+ it('Question instructions should be visible', () => {
277
+ fillInTheGapsDragAndDropPage.steps.verifyQuestionInstructionsTextPreviewTab('Drag and drop options into correct dropzone');
278
+ fillInTheGapsDragAndDropPage.steps.verifyVisibityOfQuestionInstructionsText();
279
+ });
280
+
281
+ 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', () => {
282
+ fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Petals': 0, 'Leaves': 1, 'Roots': 2 });
283
+ if (view === 'Grading view') {
284
+ studentViewPage.steps.submitResponse();
285
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
286
+ studentViewPage.steps.clickOnGoToGradingViewButton();
287
+ gradingViewPage.steps.verifyGradingViewScore('', 20);
288
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(0);
289
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(1);
290
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectIncorrectIconNotExist(2);
291
+ fillInTheGapsDragAndDropPage.steps.verifyAnswerStatusBannerNotExist();
292
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectAnswerSectionNotExist();
293
+ };
294
+ if (view === 'Question preview' || view === 'Item preview') {
295
+ fillInTheGapsDragAndDropPage.steps.checkManuallyScoredScoringLabel();
296
+ };
297
+ });
298
+ });
299
+ });
300
+
301
+ views.forEach((view) => {
302
+ describe(`Fill in the Gaps with Drag and drop - Non scored: ${view}`, { tags: 'smoke' }, () => {
303
+ abortEarlySetup();
304
+ before(() => {
305
+ switch (view) {
306
+ case 'Question preview':
307
+ fillInTheGapsDragAndDropPage.steps.navigateToCreateQuestion('fill in the gaps with drag and drop');
308
+ cy.barsPreLoaderWait();
309
+ fillInTheGapsDragAndDropPage.steps.addTextInQuestionInstructionsInputField('Drag and drop options into correct dropzone');
310
+ fillInTheGapsDragAndDropPage.steps.addMultipleOptionFields(2);
311
+ fillInTheGapsDragAndDropPage.steps.addResponseArea();
312
+ fillInTheGapsDragAndDropPage.steps.addInputToOptionsInputField(['Petals', 'Leaves', 'Roots', 'Stem']);
313
+ fillInTheGapsDragAndDropPage.steps.expandScoringTypeDropdown();
314
+ fillInTheGapsDragAndDropPage.steps.selectOptionFromScoringTypeDropdown('Non scored');
315
+ fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Petals': 0, 'Leaves': 1, 'Stem': 2 });
316
+ fillInTheGapsDragAndDropPage.steps.switchToPreviewTab();
317
+ break;
318
+ case 'Item preview':
319
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
320
+ itemPreviewPage.steps.switchToPreviewTab();
321
+ break;
322
+ case 'Grading view':
323
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
324
+ break;
325
+ };
326
+ });
327
+
328
+ beforeEach(() => {
329
+ switch (view) {
330
+ case 'Question preview':
331
+ fillInTheGapsDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
332
+ fillInTheGapsDragAndDropPage.steps.resetQuestionPreview();
333
+ break;
334
+ case 'Item preview':
335
+ fillInTheGapsDragAndDropPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
336
+ itemPreviewPage.steps.resetQuestionPreview();
337
+ break;
338
+ case 'Grading view':
339
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
340
+ break;
341
+ }
342
+ });
343
+
344
+ if (view === 'Question preview') {
345
+ after(() => {
346
+ fillInTheGapsDragAndDropPage.steps.clickOnSaveQuestionButton();
347
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
348
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
349
+ });
350
+ };
351
+
352
+ 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', () => {
353
+ if (view === 'Grading view') {
354
+ studentViewPage.steps.submitResponse();
355
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
356
+ studentViewPage.steps.clickOnGoToGradingViewButton();
357
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
358
+ };
359
+ if (view === 'Question preview' || view === 'Item preview') {
360
+ fillInTheGapsDragAndDropPage.steps.checkNonScoredScoringLabel();
361
+ fillInTheGapsDragAndDropPage.steps.switchToGradingView();
362
+ fillInTheGapsDragAndDropPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
363
+ };
364
+ utilities.verifyInnerText(fillInTheGapsDragAndDropPage.correctAnswersLabel(), 'Correct answers');
365
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectIncorrectIconsNotExist();
366
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Petals'], ['Leaves'], ['Stem']]);
367
+ });
368
+
369
+ 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', () => {
370
+ fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Roots': 0, 'Leaves': 2, 'Stem': 1 });
371
+ if (view === 'Grading view') {
372
+ studentViewPage.steps.submitResponse();
373
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
374
+ studentViewPage.steps.clickOnGoToGradingViewButton();
375
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
376
+ };
377
+ if (view === 'Question preview' || view === 'Item preview') {
378
+ fillInTheGapsDragAndDropPage.steps.checkNonScoredScoringLabel();
379
+ fillInTheGapsDragAndDropPage.steps.switchToGradingView();
380
+ fillInTheGapsDragAndDropPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
381
+ };
382
+ fillInTheGapsDragAndDropPage.steps.verifyIncorrectOptionIcon(0);
383
+ fillInTheGapsDragAndDropPage.steps.verifyIncorrectOptionIcon(1);
384
+ fillInTheGapsDragAndDropPage.steps.verifyIncorrectOptionIcon(2);
385
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
386
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Petals'], ['Leaves'], ['Stem']]);
387
+ });
388
+
389
+ 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', () => {
390
+ if (view === 'Grading view') {
391
+ studentViewPage.steps.clearResponses();
392
+ };
393
+ fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Petals': 0, 'Roots': 2 });
394
+ if (view === 'Grading view') {
395
+ studentViewPage.steps.submitResponse();
396
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
397
+ studentViewPage.steps.clickOnGoToGradingViewButton();
398
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
399
+ };
400
+ if (view === 'Question preview' || view === 'Item preview') {
401
+ fillInTheGapsDragAndDropPage.steps.checkNonScoredScoringLabel();
402
+ fillInTheGapsDragAndDropPage.steps.switchToGradingView();
403
+ };
404
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectOptionIcon(0);
405
+ fillInTheGapsDragAndDropPage.steps.verifyIncorrectOptionIcon(1);
406
+ fillInTheGapsDragAndDropPage.steps.verifyIncorrectOptionIcon(2);
407
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
408
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([['Petals'], ['Leaves'], ['Stem']]);
409
+ });
410
+
411
+ 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', () => {
412
+ if (view === 'Grading view') {
413
+ studentViewPage.steps.clearResponses();
414
+ };
415
+ fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Petals': 0, 'Leaves': 1, 'Stem': 2 });
416
+ if (view === 'Grading view') {
417
+ studentViewPage.steps.submitResponse();
418
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
419
+ studentViewPage.steps.clickOnGoToGradingViewButton();
420
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
421
+ };
422
+ if (view === 'Question preview' || view === 'Item preview') {
423
+ fillInTheGapsDragAndDropPage.steps.checkNonScoredScoringLabel();
424
+ fillInTheGapsDragAndDropPage.steps.switchToGradingView();
425
+ };
426
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectOptionIcon(0);
427
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectOptionIcon(1);
428
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectOptionIcon(2);
429
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
430
+ fillInTheGapsDragAndDropPage.steps.verifyCorrectAnswerSectionNotExists();
431
+ });
432
+ });
433
+ });
434
+
225
435
  if (!grepTags || !grepTags.includes('smoke')) {
226
436
  describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
227
437
  abortEarlySetup();
@@ -7,6 +7,8 @@ const optionsForDropdown1 = ['Flower', 'Petal', 'Stem', 'Branch'];
7
7
  const optionsForDropdown2 = ['Leaf', 'Leaves', 'Stem', 'Seed'];
8
8
  const correctAnswerArray = ['Flower', 'Leaf'];
9
9
  const correctAnswerArray1 = ['Leaves', 'Petal'];
10
+ const equalitySign = ['=', '≠', '>', '<'];
11
+ const equalitySign1 = ['≠', '≥', '≤', '='];
10
12
 
11
13
  describe('Edit item - fill in the gaps with dropdown', () => {
12
14
  before(() => {
@@ -89,4 +91,42 @@ describe('Edit item - fill in the gaps with dropdown', () => {
89
91
  fillInTheGapsDropdownPage.steps.saveAQuestionWithIncompleteAuthoring();
90
92
  });
91
93
  });
94
+
95
+ //https://weldnorthed.atlassian.net/browse/IEI-6059
96
+ describe('Fill in the gaps with dropdown question - equality sign functionality', () => {
97
+ abortEarlySetup();
98
+ before(() => {
99
+ fillInTheGapsDropdownPage.steps.navigateToCreateQuestion('fill in the gaps with dropdown');
100
+ cy.barsPreLoaderWait();
101
+ fillInTheGapsDropdownPage.steps.addTextInQuestionInstructionsInputField('Fill in the gaps with dropdown')
102
+ fillInTheGapsDropdownPage.steps.allotPoints(20);
103
+ fillInTheGapsDropdownPage.steps.addInputToDropdownOptionFields(0, equalitySign);
104
+ fillInTheGapsDropdownPage.steps.addInputToDropdownOptionFields(1, equalitySign1);
105
+ fillInTheGapsDropdownPage.steps.selectResponseFromDropdownSpecifyCorrectAnswerSection(0, equalitySign[2]);
106
+ fillInTheGapsDropdownPage.steps.selectResponseFromDropdownSpecifyCorrectAnswerSection(1, equalitySign1[1]);
107
+ fillInTheGapsDropdownPage.steps.allotPoints(10);
108
+ fillInTheGapsDropdownPage.steps.saveAQuestionAndVerifySnackbar();
109
+ });
110
+
111
+ it('When user switches to the preview tab, then the equality signs should be displayed as is in the dropdown and correct answer section', () => {
112
+ fillInTheGapsDropdownPage.steps.switchToPreviewTab();
113
+ fillInTheGapsDropdownPage.steps.switchToGradingView();
114
+ fillInTheGapsDropdownPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount([equalitySign[2], equalitySign1[1]]);
115
+ fillInTheGapsDropdownPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: equalitySign[2] }, { dropdownIndex: 1, dropdownOption: equalitySign1[1] }]);
116
+ });
117
+
118
+ it('User should be able to edit the question and check the options in the options input field', () => {
119
+ fillInTheGapsDropdownPage.steps.switchToEditTab();
120
+ fillInTheGapsDropdownPage.steps.editItem();
121
+ fillInTheGapsDropdownPage.steps.switchToEditTab();
122
+ fillInTheGapsDropdownPage.steps.verifyOptionFieldContent(equalitySign);
123
+ fillInTheGapsDropdownPage.steps.navigateToDropdownOptionsTab(1);
124
+ fillInTheGapsDropdownPage.steps.verifyOptionFieldContent(equalitySign1);
125
+ });
126
+
127
+ it('The options in the dropdown should be displayed as the options in the input field', () => {
128
+ fillInTheGapsDropdownPage.steps.verifyDropdownOptionsSpecifyCorrectAnswerSection(0, equalitySign);
129
+ fillInTheGapsDropdownPage.steps.verifyDropdownOptionsSpecifyCorrectAnswerSection(1, equalitySign1);
130
+ });
131
+ });
92
132
  });