itemengine-cypress-automation 1.0.78 → 1.0.79

Sign up to get free protection for your applications and to get access to all the features.
Files changed (629) hide show
  1. package/cypress/e2e/ILC/Desmos/desmosFourFunctionCalculatorEditTabBasicSection.js +97 -0
  2. package/cypress/e2e/ILC/Desmos/desmosFourFunctionCalculatorPreviewContents.smoke.js +73 -0
  3. package/cypress/e2e/ILC/Desmos/desmosGeometryToolEditTabBasicSection.js +97 -0
  4. package/cypress/e2e/ILC/Desmos/desmosGeometryToolPreviewContents.smoke.js +72 -0
  5. package/cypress/e2e/ILC/Desmos/desmosGraphingCalculatorEditTabBasicSection.js +98 -0
  6. package/cypress/e2e/ILC/Desmos/desmosGraphingCalculatorPreviewContents.smoke.js +73 -0
  7. package/cypress/e2e/ILC/Desmos/desmosMatrixCalculatorEditTabBasicSection.js +98 -0
  8. package/cypress/e2e/ILC/Desmos/desmosMatrixCalculatorPreviewContents.smoke.js +74 -0
  9. package/cypress/e2e/ILC/Desmos/desmosScientificCalculatorEditTabBasicSection.js +97 -0
  10. package/cypress/e2e/ILC/Desmos/desmosScientificCalculatorPreviewContents.smoke.js +73 -0
  11. package/cypress/e2e/ILC/DesmosGraphing/additionalSettings.js +118 -0
  12. package/cypress/e2e/ILC/DesmosGraphing/editTabBasic.js +79 -0
  13. package/cypress/e2e/ILC/DesmosGraphing/editTabScoring.js +73 -0
  14. package/cypress/e2e/ILC/{EssayResponse/essayResponseGradingViewAndCorrectAnswerViewContents.smoke.js → DesmosGraphing/gradingViewAndCorrectAnswerViewContents.smoke.js} +22 -35
  15. package/cypress/e2e/ILC/DesmosGraphing/previewTabContent.smoke.js +67 -0
  16. package/cypress/e2e/ILC/DesmosGraphing/studentViewSettings.js +232 -0
  17. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +228 -0
  18. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/allOrNothingBasicForGroupedOptionsLayout.js +97 -0
  19. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +226 -0
  20. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +316 -0
  21. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/allOrNothingPenaltyScoring.js +57 -0
  22. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/manuallyAndNonScoredScoring.js +156 -0
  23. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perCorrectOptionAlternativePointsGreaterThanCorrectPoints.js +279 -0
  24. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perCorrectOptionBasic.js +180 -0
  25. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perCorrectOptionCorrectPointsEqualToAlternativePoints.js +266 -0
  26. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perCorrectOptionCorrectPointsGreaterThanAlternativePoints.js +279 -0
  27. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perCorrectOptionMinimumAndPenaltyScoring.js +257 -0
  28. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perDropzoneAlternativePointsGreaterThanCorrectPoints.js +273 -0
  29. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perDropzoneBasic.js +193 -0
  30. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perDropzoneCorrectPointsEqualToAlternativePoints.js +241 -0
  31. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perDropzoneCorrectPointsGreaterThanAlternativePoints.js +275 -0
  32. package/cypress/e2e/ILC/DragAndDropIntoCategories/Scoring/perDropzoneMinimumAndPenaltyScoring.js +252 -0
  33. package/cypress/e2e/ILC/DragAndDropIntoCategories/allOrNothingBasicForAllViews.smoke.js +282 -0
  34. package/cypress/e2e/ILC/DragAndDropIntoCategories/checkAnswerFunctionalityForAllViews.smoke.js +114 -0
  35. package/cypress/e2e/ILC/DragAndDropIntoCategories/{dragAndDropIntoCategoriesClickAndDrop.js → clickAndDrop.js} +278 -282
  36. package/cypress/e2e/ILC/DragAndDropIntoCategories/draggableOptions.js +192 -0
  37. package/cypress/e2e/ILC/DragAndDropIntoCategories/editTabBasicSection.js +754 -0
  38. package/cypress/e2e/ILC/DragAndDropIntoCategories/editTabScoring.js +304 -0
  39. package/cypress/e2e/ILC/DragAndDropIntoCategories/{dragAndDropIntoCategoriesHeaderSection.js → headerSection.js} +20 -29
  40. package/cypress/e2e/ILC/DragAndDropIntoCategories/manuallyAndNonScoredScoringEditTab.js +78 -0
  41. package/cypress/e2e/ILC/DragAndDropIntoCategories/minimumScoringPenaltyPointsAndRoundingDropdown.js +139 -0
  42. package/cypress/e2e/ILC/DragAndDropIntoCategories/previewContentsForAllViews.smoke.js +199 -0
  43. package/cypress/e2e/ILC/DragAndDropIntoCategories/specifyCorrectAnswerSection.js +73 -0
  44. package/cypress/e2e/ILC/DragAndDropIntoCategories/studentViewSettings.js +460 -0
  45. package/cypress/e2e/ILC/DragAndDropIntoCategories/studentViewSettingsForGroupedLayout.js +233 -0
  46. package/cypress/e2e/ILC/DragAndDropIntoCategories/switchingCasesBetweenOptionsLayout.js +48 -0
  47. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +379 -0
  48. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +565 -0
  49. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +718 -0
  50. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +339 -0
  51. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabScoring.js +76 -0
  52. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +107 -0
  53. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePageHeaderSection.js +74 -0
  54. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.js +1335 -0
  55. package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +410 -0
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/allOrNothingForAllViews.smoke.js +286 -0
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +200 -0
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +199 -0
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +292 -0
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/manuallyAndNonScored.js +151 -0
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +250 -0
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialDifferentWeightsBasic.js +434 -0
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +221 -0
  64. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +250 -0
  65. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialEqualWeightsBasic.js +173 -0
  66. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +229 -0
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +200 -0
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +229 -0
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/checkAnswerFunctionalityForAllViews.smoke.js +122 -0
  70. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/draggableOptions.js +198 -0
  71. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +251 -0
  72. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/manuallyAndNonScoredEditTab.js +69 -0
  73. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +138 -0
  74. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/specifyCorrectAnswerSection.js +95 -0
  75. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +539 -0
  76. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/switchingCasesBetweenOptionsLayout.js +54 -0
  77. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +196 -0
  78. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +194 -0
  79. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +289 -0
  80. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/allOrNothingPenaltyScoring.js +56 -0
  81. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/manuallyAndNonScored.js +121 -0
  82. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +221 -0
  83. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialDifferentWeightsBasic.js +242 -0
  84. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +221 -0
  85. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +221 -0
  86. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialEqualWeightsBasic.js +147 -0
  87. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +201 -0
  88. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +173 -0
  89. package/cypress/e2e/ILC/FillInTheGapsOverImageText/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +201 -0
  90. package/cypress/e2e/ILC/FillInTheGapsOverImageText/allOrNothingForAllViews.smoke.js +231 -0
  91. package/cypress/e2e/ILC/FillInTheGapsOverImageText/{fillInTheGapsOverImageTextCheckAnswerForAllViews.smoke.js → checkAnswerFunctionalityForAllViews.smoke.js} +48 -57
  92. package/cypress/e2e/ILC/FillInTheGapsOverImageText/editTabScoringSection.js +279 -0
  93. package/cypress/e2e/ILC/FillInTheGapsOverImageText/previewContentsForAllViews.smoke.js +103 -0
  94. package/cypress/e2e/ILC/FillInTheGapsOverImageText/specifyCorrectAnswerSection.js +71 -0
  95. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +228 -0
  96. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +654 -0
  97. package/cypress/e2e/ILC/MultipleSelection/blockCreateItem.js +110 -0
  98. package/cypress/e2e/ILC/MultipleSelection/checkAnswerFunctionalityForAllViews.smoke.js +122 -0
  99. package/cypress/e2e/ILC/MultipleSelection/editTabBasicSection.js +159 -0
  100. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +274 -0
  101. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +73 -0
  102. package/cypress/e2e/ILC/MultipleSelection/manuallyAndNonScoredScoring.js +115 -0
  103. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +203 -0
  104. package/cypress/e2e/ILC/MultipleSelection/multipleSelectionAdditionalSettings.js +835 -0
  105. package/cypress/e2e/ILC/MultipleSelection/multipleSelectionBasicAccessibility.js +56 -0
  106. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +404 -0
  107. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +821 -0
  108. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsBasic.js +145 -0
  109. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +713 -0
  110. package/cypress/e2e/ILC/MultipleSelection/previewContentsForAllViews.smoke.js +174 -0
  111. package/cypress/e2e/ILC/MultipleSelection/specifyCorrectAnswerSection.js +75 -0
  112. package/cypress/e2e/ILC/MultipleSelection/studentViewSettings.js +530 -0
  113. package/cypress/e2e/ILC/Protractor/protractorEditTabBasicsSection.js +320 -0
  114. package/cypress/e2e/ILC/Protractor/protractorEditTabFunctionality.js +225 -0
  115. package/cypress/e2e/ILC/Protractor/protractorHeaderFile.js +79 -0
  116. package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +69 -0
  117. package/cypress/e2e/ILC/Ruler/rulerEditTabBasicsSection.js +546 -0
  118. package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +290 -0
  119. package/cypress/e2e/ILC/Ruler/rulerHeaderSection.js +85 -0
  120. package/cypress/e2e/ILC/Ruler/rulerPreviewContents.smoke.js +68 -0
  121. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +194 -0
  122. package/cypress/e2e/ILC/SingleSelection/allOrNothingWithAlternativeAnswer.js +313 -0
  123. package/cypress/e2e/ILC/SingleSelection/blockCreateItem.js +111 -0
  124. package/cypress/e2e/ILC/SingleSelection/checkAnswerFunctionalityForAllViews.smoke.js +109 -0
  125. package/cypress/e2e/ILC/SingleSelection/editTabBasicSection.js +166 -0
  126. package/cypress/e2e/ILC/SingleSelection/editTabScoringSection.js +103 -0
  127. package/cypress/e2e/ILC/SingleSelection/headerSection.js +55 -0
  128. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +90 -0
  129. package/cypress/e2e/ILC/SingleSelection/previewContents.smoke.js +174 -0
  130. package/cypress/e2e/ILC/SingleSelection/singleSelectionAdditionalSettings.js +469 -0
  131. package/cypress/e2e/ILC/SingleSelection/specifyCorrectAnswerSection.js +72 -0
  132. package/cypress/e2e/ILC/SingleSelection/studentViewSettings.js +304 -0
  133. package/cypress/e2e/ILC/SingleSelection/trueOrFalseCreateItem.js +103 -0
  134. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +283 -0
  135. package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +206 -0
  136. package/cypress/pages/components/acceptedStudentInputComponent.js +92 -0
  137. package/cypress/pages/components/additionalSettingsPanel.js +8 -1
  138. package/cypress/pages/components/allowMultipleInstancesOfSameDraggableOptionComponent.js +54 -0
  139. package/cypress/pages/components/autoScoredAdditionalSettings.js +1 -1
  140. package/cypress/pages/components/autoScoredScoringPreviewTab.js +271 -0
  141. package/cypress/pages/components/autoScoredScoringSection.js +1 -1
  142. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +624 -0
  143. package/cypress/pages/components/autoScoredScoringSectionMultipleResponsesType.js +94 -36
  144. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +64 -8
  145. package/cypress/pages/components/autoScoredStudentViewSettings.js +141 -0
  146. package/cypress/pages/components/autoScoredStudentViewSettingsForPredefinedOptions.js +84 -0
  147. package/cypress/pages/components/backgroundImageUploadComponent.js +29 -0
  148. package/cypress/pages/components/ckEditorToolbar.js +1 -0
  149. package/cypress/pages/components/commonComponents.js +14 -7
  150. package/cypress/pages/components/correctIncorrectAnswerLabelComponent.js +38 -0
  151. package/cypress/pages/components/createQuestionBasePage.js +91 -75
  152. package/cypress/pages/components/desmosToolComponent.js +104 -0
  153. package/cypress/pages/components/draggableOptionContainer.js +628 -0
  154. package/cypress/pages/components/draggableOptionsSectionComponent.js +280 -0
  155. package/cypress/pages/components/enableOuterBorderComponent.js +59 -0
  156. package/cypress/pages/components/equationEditorFlyout.js +1 -26
  157. package/cypress/pages/components/essayResponseCommonComponents.js +32 -8
  158. package/cypress/pages/components/figOverImageCanvasComponent.js +53 -0
  159. package/cypress/pages/components/fillInTheGapsCommonComponents.js +0 -65
  160. package/cypress/pages/components/index.js +23 -10
  161. package/cypress/pages/components/listSortingAndOrderingBase.js +1 -1
  162. package/cypress/pages/components/lockUnlockOptionsComponent.js +65 -0
  163. package/cypress/pages/components/maximumCapacityPerDropzoneComponent.js +53 -0
  164. package/cypress/pages/components/maximumRecorderLengthComponent.js +2 -2
  165. package/cypress/pages/components/mcqAdditionalSettingsBase.js +30 -351
  166. package/cypress/pages/components/measuringToolComponent.js +215 -0
  167. package/cypress/pages/components/optionsWrapperComponent.js +310 -7
  168. package/cypress/pages/components/previewScoringAndShowCorrectAnswerComponent.js +1 -2
  169. package/cypress/pages/components/questionInputFieldComponent.js +109 -0
  170. package/cypress/pages/components/questionInstructionsComponent.js +53 -34
  171. package/cypress/pages/components/randomizeOptionsComponent.js +59 -0
  172. package/cypress/pages/components/scoringSectionBase.js +18 -2
  173. package/cypress/pages/components/scoringSectionBaseEditTab.js +401 -0
  174. package/cypress/pages/components/studentViewSettingsLabelComponent.js +28 -0
  175. package/cypress/pages/components/toolSettingsComponent.js +94 -0
  176. package/cypress/pages/components/toolVisibilityComponent.js +73 -0
  177. package/cypress/pages/components/uploadImageSectionComponent.js +0 -2
  178. package/cypress/pages/createItemPage.js +390 -9
  179. package/cypress/pages/desmosGraphingPage.js +256 -0
  180. package/cypress/pages/desmosToolPage.js +204 -0
  181. package/cypress/pages/dialogBoxBase.js +5 -5
  182. package/cypress/pages/dragAndDropIntoCategoriesPage.js +1157 -1185
  183. package/cypress/pages/drawingResponsePage.js +1467 -0
  184. package/cypress/pages/essayResponsePage.js +24 -12
  185. package/cypress/pages/fillInTheGapsDragAndDropPage.js +12 -13
  186. package/cypress/pages/fillInTheGapsDropdownPage.js +4 -1
  187. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +479 -0
  188. package/cypress/pages/fillInTheGapsOverImageTextPage.js +314 -107
  189. package/cypress/pages/fillInTheGapsTextPage.js +4 -1
  190. package/cypress/pages/index.js +9 -1
  191. package/cypress/pages/itemPreviewPage.js +2 -1
  192. package/cypress/pages/itemPreviewSettingsPage.js +101 -8
  193. package/cypress/pages/listMatchingPage.js +11 -16
  194. package/cypress/pages/listOrderingPage.js +1 -2
  195. package/cypress/pages/listSortingPage.js +1 -2
  196. package/cypress/pages/multipleSelectionPage.js +516 -14
  197. package/cypress/pages/passagePage.js +10 -0
  198. package/cypress/pages/protractorPage.js +289 -0
  199. package/cypress/pages/rulerPage.js +441 -0
  200. package/cypress/pages/selectQuestionResourceToolPage.js +9 -2
  201. package/cypress/pages/shortTextResponsePage.js +11 -0
  202. package/cypress/pages/singleSelectionGridPage.js +1 -2
  203. package/cypress/pages/singleSelectionPage.js +490 -31
  204. package/cypress/pages/studentViewPage.js +13 -0
  205. package/cypress/pages/textEntryMathPage.js +689 -0
  206. package/package.json +1 -1
  207. package/cypress/e2e/ILC/AudioPlayer/audioPlayerEditTab.js +0 -342
  208. package/cypress/e2e/ILC/AudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +0 -218
  209. package/cypress/e2e/ILC/AudioPlayer/audioPlayerEditTabTitleDescriptionAndTranscript.js +0 -187
  210. package/cypress/e2e/ILC/AudioPlayer/audioPlayerHeaderSection.js +0 -73
  211. package/cypress/e2e/ILC/AudioPlayer/audioPlayerPreviewTab.js +0 -302
  212. package/cypress/e2e/ILC/AudioPlayer/audioPlayerPreviewTabPlaybackPlayer.js +0 -245
  213. package/cypress/e2e/ILC/AudioPlayer/audioPlayerPreviewTabSupportedFileTypes.js +0 -78
  214. package/cypress/e2e/ILC/AudioPlayer/audioPlayerPreviewTabTitleDescriptionAndTranscript.js +0 -248
  215. package/cypress/e2e/ILC/AudioResponse/audioResponseAdditionalSettings.js +0 -709
  216. package/cypress/e2e/ILC/AudioResponse/audioResponseAdditionalSettingsBasic.js +0 -149
  217. package/cypress/e2e/ILC/AudioResponse/audioResponseControlsForRecordingResponse.js +0 -308
  218. package/cypress/e2e/ILC/AudioResponse/audioResponseControlsResponsePlayback.js +0 -591
  219. package/cypress/e2e/ILC/AudioResponse/audioResponseEditTabBasicSections.js +0 -349
  220. package/cypress/e2e/ILC/AudioResponse/audioResponseHeaderSection.js +0 -80
  221. package/cypress/e2e/ILC/AudioResponse/audioResponseMinimalPreviewSection.smoke.js +0 -950
  222. package/cypress/e2e/ILC/AudioResponse/audioResponseScoringSection.js +0 -60
  223. package/cypress/e2e/ILC/AudioResponse/audioResponseStandardPreviewSection.smoke.js +0 -865
  224. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesAdditionalSettings.js +0 -294
  225. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesAdditionalSettingsBasic.js +0 -307
  226. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesAdditionalSettingsRowProperties.js +0 -372
  227. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesCategoriesSection.js +0 -275
  228. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesEditTabScoringTypes.js +0 -147
  229. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesGroupedSetCorrectAnswerCheckboxes.js +0 -266
  230. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesManuallyAndNonScored.js +0 -184
  231. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesManuallyAndNonScoredEditTabScoring.js +0 -68
  232. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesResponseOptionsSection.js +0 -112
  233. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesRowsSection.js +0 -304
  234. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsAllOrNothing.smoke.js +0 -121
  235. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsAllOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -33
  236. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsAllOrNothingCorrectPointsEqualToAlternatePoints.js +0 -35
  237. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsAllOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -33
  238. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachCell.smoke.js +0 -39
  239. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachCellAlternatePointsGreaterThanCorrectPoints.js +0 -42
  240. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachCellCorrectPointsEqualToAlternatePoints.js +0 -49
  241. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachCellCorrectPointsGreaterThanAlternatePoints.js +0 -42
  242. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachResponse.smoke.js +0 -39
  243. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachResponseAlternatePointsGreaterThanCorrectPoints.js +0 -41
  244. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachResponseCorrectPointsEqualToAlternatePoints.js +0 -47
  245. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsPartialScoreForEachResponseCorrectPointsGreaterThanAlternatePoints.js +0 -41
  246. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenCell.js +0 -58
  247. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenCellsAlternatePointsGreaterThanCorrectPoints.js +0 -42
  248. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenCellsCorrectPointsEqualToAlternatePoints.js +0 -48
  249. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenCellsCorrectPointsGreaterThanAlternatePoints.js +0 -42
  250. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenResponses.js +0 -58
  251. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenResponsesAlternatePointsGreaterThanCorrectPoints.js +0 -113
  252. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenResponsesCorrectPointsEqualToAlternatePoints.js +0 -167
  253. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/groupedOptionsTotalScoreDividedBetweenResponsesCorrectPointsGreaterThanAlternatePoints.js +0 -111
  254. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardAllOrNothing.smoke.js +0 -164
  255. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardAllOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -33
  256. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardAllOrNothingCorrectPointsEqualToAlternatePoints.js +0 -35
  257. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardAllOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -33
  258. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachCell.js +0 -39
  259. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachCellAlternatePointsGreaterThanCorrectPoints.js +0 -42
  260. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachCellCorrectPointsEqualToAlternatePoints.js +0 -49
  261. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachCellCorrectPointsGreaterThanAlternatePoints.js +0 -42
  262. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachResponse.js +0 -38
  263. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachResponseAlternatePointsGreaterThanCorrectPoints.js +0 -41
  264. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachResponseCorrectPointsEqualToAlternatePoints.js +0 -47
  265. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardPartialScoreForEachResponseCorrectPointsGreaterThanAlternatePoints.js +0 -41
  266. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenCell.js +0 -58
  267. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenCellAlternatePointsGreaterThanCorrectPoints.js +0 -42
  268. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenCellCorrectPointsEqualToAlternatePoints.js +0 -48
  269. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenCellCorrectPointsGreaterThanAlternatePoints.js +0 -42
  270. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenResponse.smoke.js +0 -61
  271. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenResponseAlternatePointsGreaterThanCorrectPoints.js +0 -113
  272. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenResponseCorrectPointsEqualToAlternatePoints.js +0 -166
  273. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesScoring/standardTotalScoreDividedBetweenResponseCorrectPointsGreaterThanAlternatePoints.js +0 -111
  274. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesSetCorrectAnswerSection.js +0 -130
  275. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesStandardSetCorrectAnswerCheckboxes.js +0 -234
  276. package/cypress/e2e/ILC/DragAndDropIntoCategories/dragAndDropIntoCategoriesSwitchingCases.js +0 -45
  277. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +0 -432
  278. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +0 -134
  279. package/cypress/e2e/ILC/EssayResponse/essayResponseCreateCustomCategory.smoke.js +0 -943
  280. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions1.smoke.js +0 -336
  281. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions2.js +0 -332
  282. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions3.js +0 -522
  283. package/cypress/e2e/ILC/EssayResponse/essayResponseEditCategoryFlyout.js +0 -402
  284. package/cypress/e2e/ILC/EssayResponse/essayResponseEditTabBasicSections.js +0 -558
  285. package/cypress/e2e/ILC/EssayResponse/essayResponseEquationEditor.smoke.js +0 -581
  286. package/cypress/e2e/ILC/EssayResponse/essayResponseEquationEditorCategories1.js +0 -290
  287. package/cypress/e2e/ILC/EssayResponse/essayResponseEquationEditorCategories2.js +0 -514
  288. package/cypress/e2e/ILC/EssayResponse/essayResponseHeaderSection.js +0 -80
  289. package/cypress/e2e/ILC/EssayResponse/essayResponsePreviewAddTable.js +0 -412
  290. package/cypress/e2e/ILC/EssayResponse/essayResponsePreviewContentsForAllViews.smoke.js +0 -79
  291. package/cypress/e2e/ILC/EssayResponse/essayResponsePreviewEditTable.js +0 -659
  292. package/cypress/e2e/ILC/EssayResponse/essayResponsePreviewHyperlink.js +0 -318
  293. package/cypress/e2e/ILC/EssayResponse/essayResponseScoringSection.js +0 -59
  294. package/cypress/e2e/ILC/EssayResponse/essayResponseSpecialCharacters.js +0 -33
  295. package/cypress/e2e/ILC/EssayResponseBasic/essayResponseBasicCustomizeFormattingOptions.js +0 -207
  296. package/cypress/e2e/ILC/EssayResponseMath/essayResponseMathCharacters.js +0 -38
  297. package/cypress/e2e/ILC/EssayResponseMath/essayResponseMathCreateItem.js +0 -243
  298. package/cypress/e2e/ILC/FeedbackScale/feedbackScaleAdditionalSettings.js +0 -162
  299. package/cypress/e2e/ILC/FeedbackScale/feedbackScaleAdditionalSettingsBasic.js +0 -119
  300. package/cypress/e2e/ILC/FeedbackScale/feedbackScaleColorPopup.js +0 -237
  301. package/cypress/e2e/ILC/FeedbackScale/feedbackScaleEditTab.js +0 -346
  302. package/cypress/e2e/ILC/FeedbackScale/feedbackScaleHeaderSection.js +0 -72
  303. package/cypress/e2e/ILC/FeedbackScale/feedbackScalePreviewTab.js +0 -389
  304. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettings.js +0 -356
  305. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettingsResponseAccordion.js +0 -299
  306. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropClickAndDrop.js +0 -278
  307. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropEditTabBasic.js +0 -198
  308. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropEditTabScoringTypes.js +0 -107
  309. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedEditTab.smoke.js +0 -81
  310. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedOptionsAllOrNothingScoring.smoke.js +0 -64
  311. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedOptionsAllOrNothingWithAlternateAnswer.js +0 -174
  312. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedOptionsManualAndNonScoredScoring.js +0 -83
  313. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedOptionsPartialDifferentWeightsScoring.js +0 -68
  314. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedOptionsPartialDifferentWeightsWithAlternateAnswer.js +0 -91
  315. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedOptionsPartialEqualWeightsScoring.js +0 -66
  316. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedOptionsPartialEqualWeightsWithAlternateAnswer.js +0 -90
  317. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropGroupedSetCorrectAnswerCheckboxes.js +0 -283
  318. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropHeaderSection.js +0 -84
  319. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropScoringSectionBasic.js +0 -21
  320. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropSetCorrectAnswerCheckboxes.js +0 -294
  321. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropSetCorrectAnswerSection.js +0 -66
  322. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionPartialDifferentWeightsScoring.js +0 -52
  323. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionPartialDifferentWeightsWithAlternateAnswer.js +0 -79
  324. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionsAllOrNothingwithAlternateAnswer.js +0 -74
  325. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionsAutoScoredAllOrNothingScoring.js +0 -133
  326. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionsManualAndNonScoredScoring.js +0 -60
  327. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionsPartialEqualWeightsScoring.js +0 -54
  328. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionsPartialEqualWeightsWithAlternateAnswer.js +0 -78
  329. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropStandardOptionsSection.js +0 -66
  330. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropSwitchingCases.js +0 -54
  331. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillIntheGapsDragAndDropAlternateAnswer.js +0 -230
  332. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownAdditionalSettings.js +0 -750
  333. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownAdditionalSettingsBasic.js +0 -423
  334. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownAllOrNothingScoring.smoke.js +0 -52
  335. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownAllOrNothingScoringWithAlternateAnswer.js +0 -70
  336. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownEditTabBasicSection.js +0 -591
  337. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownEditTabScoringSection.js +0 -131
  338. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownHeaderSection.js +0 -126
  339. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownManuallyAndNonScoredScoring.js +0 -57
  340. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownPartialDifferentWeights.js +0 -61
  341. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownPartialDifferentWeightsWithAlternateAnswer.js +0 -78
  342. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownPartialEqualWeights.js +0 -61
  343. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownPartialEqualWeightsWithAlternateAnswer.js +0 -75
  344. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownRandomizeOptions.js +0 -86
  345. package/cypress/e2e/ILC/FillInTheGapsDropdown/fillInTheGapsDropdownSetCorrectAnswerSection.js +0 -170
  346. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownAddResponseContainer.smoke.js +0 -236
  347. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownAdditionalSettingsAnswerNumeration.js +0 -206
  348. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownAdditionalSettingsBasic.js +0 -222
  349. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownAdditionalSettingsResponseAccordions.js +0 -366
  350. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownAllOrNothingScoring.smoke.js +0 -361
  351. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownAllOrNothingWithAlternateAnswer.js +0 -630
  352. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownEditAriaLabelCheckbox.smoke.js +0 -137
  353. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownImageProperties.smoke.js +0 -171
  354. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownPartialDifferentWeightsWithAlternateAnswer.js +0 -867
  355. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownPartialEqualWeightsWithAlternateAnswer.js +0 -766
  356. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownPreviewTab.smoke.js +0 -77
  357. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownSupportedFileTypes.js +0 -86
  358. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAddResponseContainer.js +0 -221
  359. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAdditionalSettings.js +0 -450
  360. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAdditionalSettingsBasic.js +0 -200
  361. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAdditionalSettingsCustomSpecialCharachters.js +0 -120
  362. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAdditionalSettingsMultilineResponse.js +0 -188
  363. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAdditionalSettingsResponseAccordions.js +0 -431
  364. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAdditionalSettingsStudentResponseAreaAndLayout.js +0 -263
  365. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAllOrNothingScoring.smoke.js +0 -191
  366. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAllOrNothingWithAlternateAnswer.js +0 -613
  367. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextAllOrNothingWithAlternateAnswerMatchFromAllResponsesTrue.js +0 -172
  368. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextConditionalCheckboxes.js +0 -203
  369. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextEditAriaLabelCheckbox.smoke.js +0 -137
  370. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextEditTabBasicSection.smoke.js +0 -146
  371. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextEditTabScoringSection.js +0 -227
  372. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextHeaderSection.js +0 -109
  373. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextImageProperties.js +0 -156
  374. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextManualAndNonScored.js +0 -157
  375. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextMatchFromAllResponses.js +0 -162
  376. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPartialDifferentWeightsScoring.js +0 -202
  377. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPartialDifferentWeightsWithAlternateAnswer.js +0 -846
  378. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPartialDifferentWeightsWithAlternateAnswerMatchFromAllResponsesTrue.js +0 -171
  379. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPartialEqualWeightsScoring.js +0 -200
  380. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPartialEqualWeightsWithAlternateAnswer.js +0 -738
  381. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPartialEqualWeightsWithAlternateAnswerMatchFromAllResponsesTrue.js +0 -168
  382. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPreviewContentsForAllViews.smoke.js +0 -146
  383. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextPreviewTab.smoke.js +0 -66
  384. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextSetCorrectAnswerSection.js +0 -113
  385. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextShowCorrectAnswerForAllView.smoke.js +0 -155
  386. package/cypress/e2e/ILC/FillInTheGapsOverImageText/fillInTheGapsOverImageTextSupportedFileTypes.js +0 -86
  387. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextAdditionalSettingsAdvanceSettingsForAllResponseAreas.js +0 -528
  388. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextAdditionalSettingsBasic.js +0 -263
  389. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextAdditionalSettingsResponseAccordions.js +0 -734
  390. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextAdditionalSettingsStudentResponseAreaAndLayout.js +0 -603
  391. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextAllOrNothingWithAlternateAnswer.js +0 -58
  392. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextAlternateAnswer.js +0 -104
  393. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextAutoScoredScoring.smoke.js +0 -43
  394. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextCaseSensitiveAndIgnoreExtraSpacesCheckboxes.js +0 -174
  395. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextEditTabBasicSections.js +0 -176
  396. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextEditTabScoringSection.js +0 -150
  397. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextHeaderSection.js +0 -112
  398. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextManuallyAndNonScoredScoring.js +0 -49
  399. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextPartialDifferentWeights.js +0 -49
  400. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextPartialDifferentWeightsWithAlternateAnswer.js +0 -62
  401. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextPartialEqualWeights.js +0 -49
  402. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextPartialEqualWeightsWithAlternateAnswer.js +0 -60
  403. package/cypress/e2e/ILC/FillInTheGapsText/fillInTheGapsTextSetCorrectAnswerSection.js +0 -70
  404. package/cypress/e2e/ILC/Highlight/HighlightScoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -213
  405. package/cypress/e2e/ILC/Highlight/HighlightScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -217
  406. package/cypress/e2e/ILC/Highlight/HighlightScoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -215
  407. package/cypress/e2e/ILC/Highlight/HighlightScoring/allOrNothingScoring.smoke.js +0 -191
  408. package/cypress/e2e/ILC/Highlight/HighlightScoring/highlightBasicScoringForTextSelectionTypes.smoke.js +0 -462
  409. package/cypress/e2e/ILC/Highlight/HighlightScoring/manuallyAndNonScored.js +0 -162
  410. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialDifferentWeightsAlternatePointsMoreThanCorrectPoints.js +0 -316
  411. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialDifferentWeightsCorrectPointsEqualToAlternatePoints.js +0 -387
  412. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialDifferentWeightsCorrectPointsMoreThanAlternatePoints.js +0 -316
  413. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialDifferentWeightsScoring.js +0 -250
  414. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialEqualWeightsAlternatePointsMoreThanCorrectPoints.js +0 -250
  415. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialEqualWeightsCorrectPointEqualToAlternatePoints.js +0 -268
  416. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialEqualWeightsCorrectPointsMoreThanAlternatePoints.js +0 -250
  417. package/cypress/e2e/ILC/Highlight/HighlightScoring/partialEqualWeightsScoring.js +0 -231
  418. package/cypress/e2e/ILC/Highlight/highlightAdditionalSettingsBasic.js +0 -220
  419. package/cypress/e2e/ILC/Highlight/highlightAdditionalSettingsMaximumNumberOfAnswers.js +0 -135
  420. package/cypress/e2e/ILC/Highlight/highlightColorLibraryFlyout.smoke.js +0 -148
  421. package/cypress/e2e/ILC/Highlight/highlightEditTabScoringSection.js +0 -362
  422. package/cypress/e2e/ILC/Highlight/highlightHeaderSection.js +0 -91
  423. package/cypress/e2e/ILC/Highlight/highlightQuestionInstructionsAndQuestion.smoke.js +0 -185
  424. package/cypress/e2e/ILC/Highlight/highlightScoringSectionBasic.js +0 -21
  425. package/cypress/e2e/ILC/Highlight/highlightSetCorrectAnswerSection.js +0 -204
  426. package/cypress/e2e/ILC/Highlight/highlightTextSelectionDropdownAndHighlightOptionsSection.js +0 -175
  427. package/cypress/e2e/ILC/Highlight/highlightTextSelectionTypeInPreviewTab.js +0 -237
  428. package/cypress/e2e/ILC/Highlight/highlightTextSelectionTypeInSetCorrectAnswerSection.js +0 -341
  429. package/cypress/e2e/ILC/Highlight/highlightTextSelectionTypesInHighlightOptionsSection.js +0 -375
  430. package/cypress/e2e/ILC/HighlightImage/highlightImageAdditionalSettings.js +0 -219
  431. package/cypress/e2e/ILC/HighlightImage/highlightImageAdditionalSettingsBasic.js +0 -246
  432. package/cypress/e2e/ILC/HighlightImage/highlightImageAllOrNothingScoring.js +0 -235
  433. package/cypress/e2e/ILC/HighlightImage/highlightImageAllOrNothingWithAlternateAnswer.js +0 -810
  434. package/cypress/e2e/ILC/HighlightImage/highlightImageCustomizeHighlightProperties.js +0 -669
  435. package/cypress/e2e/ILC/HighlightImage/highlightImageCustomizeHighlightPropertiesFunctionality.js +0 -356
  436. package/cypress/e2e/ILC/HighlightImage/highlightImageEditTabBasic.smoke.js +0 -138
  437. package/cypress/e2e/ILC/HighlightImage/highlightImageEditTabHighlightSectionContents.js +0 -318
  438. package/cypress/e2e/ILC/HighlightImage/highlightImageEditTabScoring.js +0 -407
  439. package/cypress/e2e/ILC/HighlightImage/highlightImageHeaderSection.js +0 -86
  440. package/cypress/e2e/ILC/HighlightImage/highlightImageManuallyAndNonScoredScoring.js +0 -176
  441. package/cypress/e2e/ILC/HighlightImage/highlightImagePartialDifferentWeightsScoring.js +0 -209
  442. package/cypress/e2e/ILC/HighlightImage/highlightImagePartialDifferentWeightsWithAlternateAnswer.js +0 -895
  443. package/cypress/e2e/ILC/HighlightImage/highlightImagePartialEqualWeightsScoring.js +0 -208
  444. package/cypress/e2e/ILC/HighlightImage/highlightImagePartialEqualWeightsWithAlternateAnswer.js +0 -894
  445. package/cypress/e2e/ILC/HighlightImage/highlightImagePreviewTab.smoke.js +0 -88
  446. package/cypress/e2e/ILC/HighlightImage/highlightImageSetCorrectAnswerCheckboxes.js +0 -244
  447. package/cypress/e2e/ILC/HighlightImage/highlightImageSetCorrectAnswerSection.js +0 -186
  448. package/cypress/e2e/ILC/HighlightImage/highlightImageSupportedFileTypes.js +0 -86
  449. package/cypress/e2e/ILC/HighlightImage/highlightImageToolsFunctionalityEditTab.js +0 -160
  450. package/cypress/e2e/ILC/HighlightImage/highlightImageToolsFunctionalityPreviewTab.smoke.js +0 -163
  451. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsAllOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -28
  452. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsAllOrNothingCorrectPointsEqualToAlternatePoints.js +0 -30
  453. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsAllOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -28
  454. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsAllOrNothingScoring.smoke.js +0 -122
  455. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsManualAndNonScoredScoring.js +0 -49
  456. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialDifferentWeightsScoring.js +0 -48
  457. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialDifferrentWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -29
  458. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialDifferrentWeightsCorrectPointsEqualToAlternatePoints.js +0 -35
  459. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialDifferrentWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -29
  460. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialEqualWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -30
  461. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialEqualWeightsCorrectPointsEqualToAlternatePoints.js +0 -36
  462. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialEqualWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -30
  463. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/groupedOptionsPartialEqualWeightsScorings.js +0 -48
  464. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsAllOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -28
  465. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsAllOrNothingCorrectPointsEqualToAlternatePoints.js +0 -30
  466. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsAllOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -28
  467. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsAllOrNothingScoring.js +0 -113
  468. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsManualAndNonScoredScoring.js +0 -48
  469. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialDifferentWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -29
  470. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialDifferentWeightsCorrectPointsEqualToAlternatePoints.js +0 -35
  471. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialDifferentWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -29
  472. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialDifferentWeightsScoring.js +0 -48
  473. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialEqualWeightsAlternatePointsMoreThanCorrectPoints.js +0 -29
  474. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialEqualWeightsCorrectPointsEqualToAlternatePoints.js +0 -35
  475. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialEqualWeightsCorrectPointsMoreThanAlternatePoints.js +0 -29
  476. package/cypress/e2e/ILC/ListMatching/ListMatchingScoring/standardOptionsPartialEqualWeightsScoring.js +0 -48
  477. package/cypress/e2e/ILC/ListMatching/listMatchingAdditionalSettingsAnswerNumerationAndResponseOptionPlacement.js +0 -196
  478. package/cypress/e2e/ILC/ListMatching/listMatchingAdditionalSettingsBasic.js +0 -210
  479. package/cypress/e2e/ILC/ListMatching/listMatchingAdditionalSettingsStemAndResponseColumnHeader.js +0 -206
  480. package/cypress/e2e/ILC/ListMatching/listMatchingAlternateAnswer.smoke.js +0 -197
  481. package/cypress/e2e/ILC/ListMatching/listMatchingClickAndDrop.js +0 -644
  482. package/cypress/e2e/ILC/ListMatching/listMatchingEditTabScoringTypes.js +0 -105
  483. package/cypress/e2e/ILC/ListMatching/listMatchingGroupedOptionsSection.smoke.js +0 -211
  484. package/cypress/e2e/ILC/ListMatching/listMatchingGroupedOptionsSetCorrectAnswersCheckboxesEditTab.js +0 -139
  485. package/cypress/e2e/ILC/ListMatching/listMatchingGroupedOptionsSetCorrectAnswersCheckboxesPreviewTab.js +0 -227
  486. package/cypress/e2e/ILC/ListMatching/listMatchingHeaderSection.js +0 -95
  487. package/cypress/e2e/ILC/ListMatching/listMatchingQuestionInstructionsAndStemsSection.smoke.js +0 -254
  488. package/cypress/e2e/ILC/ListMatching/listMatchingScoringSectionBasic.js +0 -21
  489. package/cypress/e2e/ILC/ListMatching/listMatchingSetCorrectAnswerSectionBasic.js +0 -40
  490. package/cypress/e2e/ILC/ListMatching/listMatchingStandardOptionsSection.js +0 -233
  491. package/cypress/e2e/ILC/ListMatching/listMatchingStandardOptionsSetCorrectAnswerCheckboxesEditTab.js +0 -113
  492. package/cypress/e2e/ILC/ListMatching/listMatchingStandardOptionsSetCorrectAnswerCheckboxesPreviewTab.smoke.js +0 -191
  493. package/cypress/e2e/ILC/ListMatching/listMatchingSwitchingCases.js +0 -47
  494. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -246
  495. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -247
  496. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -247
  497. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/allOrNothingScoring.smoke.js +0 -180
  498. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/manuallyAndNonScoredScoring.js +0 -160
  499. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialDifferentWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -316
  500. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialDifferentWeightsCorrectPointsEqualToAlternatePoints.js +0 -287
  501. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -317
  502. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialDifferentWeightsScoring.js +0 -192
  503. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialEqualWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -286
  504. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialEqualWeightsCorrectPointsEqualToAlternatePoints.js +0 -258
  505. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialEqualWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -287
  506. package/cypress/e2e/ILC/ListOrdering/ListOrderingScoring/partialEqualWeightsScoring.js +0 -190
  507. package/cypress/e2e/ILC/ListOrdering/listOrderingAdditionalSettingsAnswerNumerationAndOptionLabel.js +0 -295
  508. package/cypress/e2e/ILC/ListOrdering/listOrderingAdditionalSettingsBasic.js +0 -300
  509. package/cypress/e2e/ILC/ListOrdering/listOrderingAdditionalSettingsOptionStyleDropdown.js +0 -302
  510. package/cypress/e2e/ILC/ListOrdering/listOrderingAdditionalSettingsSetPointsPopup.js +0 -269
  511. package/cypress/e2e/ILC/ListOrdering/listOrderingEditTabBasicSection.js +0 -316
  512. package/cypress/e2e/ILC/ListOrdering/listOrderingEditTabScoringSection.js +0 -256
  513. package/cypress/e2e/ILC/ListOrdering/listOrderingHeaderSection.js +0 -83
  514. package/cypress/e2e/ILC/ListOrdering/listOrderingSetCorrectAnswerCheckboxes.js +0 -208
  515. package/cypress/e2e/ILC/ListOrdering/listOrderingSetCorrectAnswerSection.js +0 -172
  516. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -261
  517. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -261
  518. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -261
  519. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/allOrNothingScoring.smoke.js +0 -191
  520. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/manuallyAndNonScoredScoring.js +0 -171
  521. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialDifferentWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -337
  522. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialDifferentWeightsCorrectPointsEqualToAlternatePoints.js +0 -302
  523. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -336
  524. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialDifferentWeightsScoring.js +0 -210
  525. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialEqualWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -306
  526. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialEqualWeightsCorrectPointsEqualToAlternatePoints.js +0 -271
  527. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialEqualWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -305
  528. package/cypress/e2e/ILC/ListSorting/ListSortingScoring/partialEqualWeightsScoring.js +0 -207
  529. package/cypress/e2e/ILC/ListSorting/listSortingAdditionalSettingsAnswerNumerationAndOptionStyleDropdown.js +0 -319
  530. package/cypress/e2e/ILC/ListSorting/listSortingAdditionalSettingsBasic.js +0 -326
  531. package/cypress/e2e/ILC/ListSorting/listSortingAdditionalSettingsOptionLabelSection.js +0 -202
  532. package/cypress/e2e/ILC/ListSorting/listSortingClickAndDrop.js +0 -456
  533. package/cypress/e2e/ILC/ListSorting/listSortingEditTabBasicSection.js +0 -165
  534. package/cypress/e2e/ILC/ListSorting/listSortingEditTabScoringSection.js +0 -259
  535. package/cypress/e2e/ILC/ListSorting/listSortingHeaderSection.js +0 -89
  536. package/cypress/e2e/ILC/ListSorting/listSortingOptionsSection.js +0 -287
  537. package/cypress/e2e/ILC/ListSorting/listSortingSetCorrectAnswerCheckboxes.smoke.js +0 -269
  538. package/cypress/e2e/ILC/ListSorting/listSortingSetCorrectAnswerSection.js +0 -168
  539. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionAdditionalSettingsGridOptions.js +0 -351
  540. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridAdditionalSettingsBasic.js +0 -258
  541. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridAdditionalSettingsQuestionStem.js +0 -250
  542. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridAllOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -263
  543. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridAllOrNothingCorrectPointsEqualToAlternatePoints.js +0 -263
  544. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridAllOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -261
  545. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridAutoScoredScoring.smoke.js +0 -273
  546. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridEditTabBasicSection.js +0 -588
  547. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridEditTabScoringSection.js +0 -297
  548. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridHeaderSection.js +0 -98
  549. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridManuallyAndNonScoredScoring.js +0 -206
  550. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialDifferentWeights.js +0 -222
  551. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialDifferentWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -339
  552. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialDifferentWeightsCorrectPointsEqualToAlternatePoints.js +0 -309
  553. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialDifferentWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -340
  554. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialEqualWeights.js +0 -257
  555. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialEqualWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -312
  556. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialEqualWeightsCorrectPointsEqualToAlternatePoints.js +0 -284
  557. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridPartialEqualWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -315
  558. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridRandomizeOptions.js +0 -124
  559. package/cypress/e2e/ILC/MultipleSelectionGrid/multipleSelectionGridSetCorrectAnswerSection.js +0 -175
  560. package/cypress/e2e/ILC/Passage/multipageContentEditTab.js +0 -242
  561. package/cypress/e2e/ILC/Passage/passageAdditionalSettings.js +0 -99
  562. package/cypress/e2e/ILC/Passage/passageEditTab.js +0 -241
  563. package/cypress/e2e/ILC/Passage/passageHeaderSection.js +0 -73
  564. package/cypress/e2e/ILC/Passage/passagePreviewTab.js +0 -246
  565. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +0 -185
  566. package/cypress/e2e/ILC/ReadingRuler/readingRulerHeaderSection.js +0 -55
  567. package/cypress/e2e/ILC/ReadingRuler/readingRulerPreviewTab.js +0 -257
  568. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseAdditionalSettings.js +0 -376
  569. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseAdditionalSettingsBasic.js +0 -336
  570. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseAutoScoredScoring.smoke.js +0 -407
  571. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseConditionalCheckboxes.js +0 -154
  572. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseContainsConditionalRadioButton.js +0 -166
  573. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseCustomSpecialCharacters.js +0 -167
  574. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseEditTabScoringSection.js +0 -87
  575. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseExactConditionalRadioButton.js +0 -157
  576. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseHeaderSection.js +0 -109
  577. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseManuallyScoredNonScoredScoringSection.js +0 -115
  578. package/cypress/e2e/ILC/ShortTextResponse/shortTextResponseSetCorrectAnswerSection.js +0 -137
  579. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridAdditionalSettingsBasic.js +0 -233
  580. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridAllOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -173
  581. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridAllOrNothingCorrectPointsEqualToAlternatePoints.js +0 -179
  582. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridAllOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -174
  583. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridAutoScoredScoring.smoke.js +0 -208
  584. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridEditTabBasicSection.js +0 -589
  585. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridEditTabScoringSection.js +0 -282
  586. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridHeaderSection.js +0 -97
  587. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridManuallyAndNonScored.js +0 -146
  588. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridOptionsAdditionalSettings.js +0 -345
  589. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialDifferentWeights.js +0 -189
  590. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialDifferentWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -247
  591. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialDifferentWeightsCorrectPointsEqualToAlternatePoints.js +0 -219
  592. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialDifferentWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -246
  593. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialEqualWeights.js +0 -191
  594. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialEqualWeightsAlternatePointsGreaterThanCorrectPoints.js +0 -225
  595. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialEqualWeightsCorrectPointsEqualToAlternatePoints.js +0 -197
  596. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridPartialEqualWeightsCorrectPointsGreaterThanAlternatePoints.js +0 -225
  597. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridQuestionStemAdditionalSettings.js +0 -257
  598. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridRandomizeOptions.js +0 -122
  599. package/cypress/e2e/ILC/SingleSelectionGrid/singleSelectionGridSetCorrectAnswerSection.js +0 -183
  600. package/cypress/e2e/ILC/UploadResponse/uploadResponseAdditionalSettings.js +0 -179
  601. package/cypress/e2e/ILC/UploadResponse/uploadResponseEditTabBasicSections.js +0 -225
  602. package/cypress/e2e/ILC/UploadResponse/uploadResponseHeaderSection.js +0 -66
  603. package/cypress/e2e/ILC/UploadResponse/uploadResponsePreview.smoke.js +0 -334
  604. package/cypress/e2e/ILC/UploadResponse/uploadResponseScoringSection.js +0 -60
  605. package/cypress/e2e/ILC/UploadResponse/uplodResponsePreviewUploadedFileProperties.js +0 -250
  606. package/cypress/e2e/ILC/VideoResponse/videoResponseAdditionalSettings.js +0 -135
  607. package/cypress/e2e/ILC/VideoResponse/videoResponseAdditionalSettingsBasic.js +0 -87
  608. package/cypress/e2e/ILC/VideoResponse/videoResponseEditTabBasic.js +0 -78
  609. package/cypress/e2e/ILC/VideoResponse/videoResponseHeaderSection.js +0 -74
  610. package/cypress/e2e/ILC/VideoResponse/videoResponsePreviewTab.smoke.js +0 -637
  611. package/cypress/e2e/ILC/VideoResponse/videoResponseScoringSection.js +0 -76
  612. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownAdditionalSettings.js +0 -247
  613. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownConditionalCheckboxes.js +0 -258
  614. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownEditTabBasicSection.js +0 -132
  615. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownEditTabScoringSection.js +0 -237
  616. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownHeaderSection.js +0 -113
  617. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownManualAndNonScoredScoring.js +0 -165
  618. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownOptionsForResponse.js +0 -303
  619. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownPartialDifferentWeightsScoring.js +0 -378
  620. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownPartialEqualWeightsScoring.js +0 -377
  621. package/cypress/e2e/ILC/fillInTheGapsOverImageDropdown/fillInTheGapsOverImageDropdownSetCorrectAnswerSection.js +0 -117
  622. package/cypress/pages/components/dragAndDropResponseOptions.js +0 -739
  623. package/cypress/pages/components/dragAndDropSetCorrectAnswerCheckboxComponents.js +0 -124
  624. package/cypress/pages/components/draggableOptionsContainer.js +0 -859
  625. package/cypress/pages/components/mcqOptionsComponent.js +0 -263
  626. package/cypress/pages/components/mcqPreviewComponents.js +0 -78
  627. package/cypress/pages/components/mcqQuestionCommonComponents.js +0 -265
  628. package/cypress/pages/components/mcqScoringComponent.js +0 -120
  629. package/cypress/pages/components/mcqSetCorrectAnswerSection.js +0 -143
@@ -1,1554 +1,1526 @@
1
- import { additionalSettingsPanel, autoScoredAdditionalSettings, autoScoredPreviewBase, autoScoredScoringSection, autoScoredScoringSectionMultipleResponsesType, autoScoredSetCorrectAnswerSection, commonComponents, createQuestionBasePage, dragAndDropResponseOptions, dragAndDropSetCorrectAnswerCheckboxComponents, draggableOptionsContainer, optionsWrapperComponent, previewScoringAndShowCorrectAnswerComponent, questionInstructionsComponent, scoringSectionBase, answerNumerationComponent, studentResponseAndLayoutComponent } from "./components";
1
+ import { optionsWrapperComponent, createQuestionBasePage, autoScoredSpecifyCorrectAnswerSection, scoringSectionBaseEditTab, autoScoredScoringSectionMultiResponseType, questionInstructionsComponent, autoScoredStudentViewSettings, autoScoredScoringPreviewTab, commonComponents, ckEditorToolbar, equationEditorFlyout, randomizeOptionsComponent, allowMultipleInstancesOfSameDraggableOptionComponent, studentViewSettingsLabelComponent, additionalSettingsPanel, draggableOptionContainer, draggableOptionsSectionComponent, maximumCapacityPerDropzoneComponent, enableOuterBorderComponent } from "./components";
2
+ import utilities from "../support/helpers/utilities";
3
+ import constants from "../fixtures/constants";
2
4
  const css = Cypress.env('css');
3
- const answerResponseOptions = ['Bat', 'Eagle', 'Platypus', 'Ostrich', 'Whale', 'Parrot', 'Flying squirrel', 'Peacock', 'Falcon'];
4
- const correctTabAnswerArray = [['Bat'], ['Eagle', 'Parrot'], ['Platypus', 'Whale'], ['Ostrich']];
5
+
6
+ const cellPropertyMenuOptions = ['Heading', 'subheading', 'text', 'dropzone', 'none'];
5
7
 
6
8
  const selectors = {
7
- ...questionInstructionsComponent,
9
+ ...autoScoredScoringPreviewTab,
8
10
  ...commonComponents,
11
+ ...questionInstructionsComponent,
12
+ ...maximumCapacityPerDropzoneComponent,
13
+ ...randomizeOptionsComponent,
14
+ ...draggableOptionContainer,
15
+ ...allowMultipleInstancesOfSameDraggableOptionComponent,
16
+ ...autoScoredStudentViewSettings,
17
+ ...autoScoredSpecifyCorrectAnswerSection,
18
+ ...autoScoredScoringSectionMultiResponseType,
9
19
  ...optionsWrapperComponent,
10
- ...dragAndDropSetCorrectAnswerCheckboxComponents,
11
- ...autoScoredSetCorrectAnswerSection,
12
- ...autoScoredScoringSectionMultipleResponsesType,
13
- ...scoringSectionBase,
14
- ...dragAndDropResponseOptions,
15
- ...additionalSettingsPanel,
16
- ...autoScoredAdditionalSettings,
17
- ...previewScoringAndShowCorrectAnswerComponent,
18
- ...autoScoredPreviewBase,
19
- ...createQuestionBasePage,
20
- ...draggableOptionsContainer,
21
- ...answerNumerationComponent,
22
- categoryLabel: () => cy.get('[class*="AddCategoriesAndRowsstyles__Label"]').eq(0),
23
- optionNumeration: () => cy.get('[class*="OptionsComponentstyles__IndexWrapper"]'),
24
- categoryInputField: () => cy.get('[title*="Enter category"]'),
25
- //TODO:need to create separate delete buttons for delete category and delete row icon buttons
26
- deleteButton: () => cy.get('.ngie-icon-btn-cls'),
27
- addCategoryButton: () => cy.get('.add-option-wrapper-cls button').eq(0),
28
- addRowButton: () => cy.get('.add-option-wrapper-cls button').eq(1),
29
- rowLabel: () => cy.get('[class*="AddCategoriesAndRowsstyles__Label"]').eq(1),
30
- rowInputField: () => cy.get('[title*="Enter row"]'),
31
- setCorrectAnswerSectionCategoryTitle: () => cy.get('.column-header-cell'),
32
- setCorrectAnswerSectionRowTitle: () => cy.get('.row-header-cell'),
33
- setCorrectAnswerSectionCategoryCell: () => cy.get('[class*="DragAndDropMatrixstyles__CellContainer"]'),
34
- previewTabCategoryTitle: () => cy.get('.classification-response-preview-wrapper .column-header-cell'),
35
- previewTabRowTitle: () => cy.get('.classification-response-preview-wrapper .row-header-cell'),
36
- previewTabCategoryCell: () => cy.get('.classification-response-preview-wrapper [class*="DragAndDropMatrixstyles__CellContainer"]'),
37
- setCorrectAnswerSectionRowContainer: () => cy.get('.row'),
38
- previewTabRowContainer: () => cy.get('.classification-response-preview-wrapper .row'),
39
- scoringSubtypeLabel: () => cy.get('#Scoring-Subtype-dropdown-label'),
40
- scoringSubtypeDropdown: () => cy.get('#Scoring-Subtype-select'),
41
- scoringSubtypeDropdownListOption: (ariaLabel = null) => {
42
- if (ariaLabel) {
43
- return cy.get(`[aria-labelledby*="Scoring-Subtype-dropdown-label"] [role="option"][aria-label*="${ariaLabel}"]`)
44
- } else {
45
- return cy.get('[aria-labelledby*="Scoring-Subtype-dropdown-label "] [role="option"]')
46
- }
47
- },
48
- categoryCellNumeration: () => cy.get('[class*="DragAndDropMatrixstyles__CellIndexWrapper"]'),
49
- correctAnswerCategoryCell: () => cy.get('[class*="DragAndDropMatrixstyles__AnswerCell"]'),
20
+ ...draggableOptionsSectionComponent,
21
+ ...enableOuterBorderComponent,
22
+ editCellPropertyButton: () => cy.get('button[aria-label="More Action"]'),
23
+ editCellPropertyList: () => cy.get('.ngie-action-cell-container [role="menu"]'),
24
+ editCellPropertyListOption: () => cy.get('[class*="MuiMenuItem"][role="menuitem"]'),
25
+ cellHeadingTextArea: () => cy.get('textarea[aria-label="enter heading"]'),
26
+ cellSubheadingTextArea: () => cy.get('textarea[aria-label="enter subheading"]'),
27
+ cellTextTextArea: () => cy.get('textarea[aria-label="Enter text here..."]'),
28
+ tableCellContainer: () => cy.get('[class*="DragAndDropTablestyles__CellContainer"]'),
29
+ //Note: remove :visible after https://redmine.zeuslearning.com/issues/556304 gets fixed
30
+ dropzoneCellSpecifyCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__CellContainer"][class*="dropzone-cell"]:visible'),
31
+ //Note: Items render twice in student view, need to remove .first()
32
+ dropzoneCellPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="DragAndDropMatrixstyles__CellContainer"][class*="dropzone-cell"]'),
33
+ dropzoneCellNumeration: () => cy.get('.answer-numeration-number-box'),
34
+ correctAnswerDropzoneCell: () => cy.get('[class*="DragAndDropMatrixstyles__AnswerCell"]'),
35
+ correctAnswerDropzoneCellTickIcon: () => cy.get('[class*="DragAndDropMatrixstyles__GreenBlock"]'),
36
+ correctAnswersLabel: () => cy.get('.correct-answers-label'),
50
37
  correctAnswerOption: () => cy.get('[class*="DragAndDropMatrixstyles__AnswerWrapper"]'),
51
- correctIncorrectAnswerBorder: () => cy.get('.edit-question-preview-wrapper [class*="DragAndDropMatrixstyles__CorrectAnswerBorder"]'),
52
- correctIncorrectAnswerLabel: () => cy.get('[class*="AnswerStatusText"]'),
53
- correctAnswerContainer: () => cy.get('[class*="CorrectAnswerWrapper"]'),
54
- checkCellIcon: () => cy.get('.check-cell-icon'),
55
- correctIncorrectCellBorder: () => cy.get('[class*="border-top"][class*="border-right"][class*="border-bottom"][class*="border-left"]'),
56
- correctAnswerLabel: () => cy.get('[class*="DragAndDropMatrixstyles__CorrectAnswerLabel"]'),
57
- setCorrectAnswerSectionCategoryGrid: () => cy.get('[class*="DragAndDropMatrixstyles__TableWrapper"]'),
58
- previewTabCategoryGrid: () => cy.get('.edit-question-preview-wrapper [class*="DragAndDropMatrixstyles__TableWrapper"]'),
59
- //Additional settings
60
- rowHeadingLabel: () => cy.get('[class*="RowResponseWrapper"] .text-label '),
61
- rowHeadingInputField: () => cy.get('input[aria-label="Row heading"]'),
62
- rowHeadingSetCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__RowTitleCell"]'),
63
- rowHeadingPreviewTab: () => cy.get('.edit-question-preview-wrapper [class*="DragAndDropMatrixstyles__RowTitleCell"]'),
64
- rowTitleWidthLabel: () => cy.get('label[aria-labelledby="Row title width (px)"]'),
65
- rowTitleWidthInputField: () => cy.get('input[aria-label="Row title width (px)"]'),
66
- rowMinHeightLabel: () => cy.get('label[aria-labelledby="Row minimum height (px)"]'),
67
- rowMinHeightInputField: () => cy.get('input[aria-label="Row minimum height (px)"]'),
68
- maxResponsePerCellLabel: () => cy.get('label[aria-labelledby="Maximum responses per cell"]'),
69
- maxResponsePerCellInputField: () => cy.get('input[aria-label="Maximum responses per cell"]'),
38
+ //Note: Items render twice in student view, need to remove .first()
39
+ categoryGridPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="DragAndDropMatrixstyles__TableWrapper"]').first(),
70
40
  optionsWrapper: () => cy.get('[class*="DragAndDropMatrixstyles__DraggableItemWrapper"]'),
71
- responseOptionPlacementLabel: () => cy.get('#Response-option-placement-dropdown-label'),
72
- responseOptionPlacementDropdown: () => cy.get('#Response-option-placement-select'),
73
- responseOptionPlacementDropdownListOption: (ariaLabel = null) => {
74
- if (ariaLabel) {
75
- return cy.get(`[aria-labelledby*="Response-option-placement-dropdown-label"] [role="option"][aria-label*="${ariaLabel}"]`);
76
- } else {
77
- return cy.get('[aria-labelledby*="Response-option-placement-dropdown-label"] [role="option"]');
78
- }
79
- },
80
- questionPreviewWrapper: () => cy.get('.classification-response-preview-wrapper')
41
+ correctIncorrectAnswerBlock: () => cy.get('[class*="correct-answer-block"]'),
42
+ correctIncorrectStatusMessageText: () => cy.get('[class*="DragAndDropMatrixstyles__AnswerStatusText"]'),
43
+ correctIncorrectAnswerLabel: () => cy.get('[class*="DragAndDropMatrixstyles__CorrectIncorrectLabel"]'),
44
+ correctAnswerContainer: () => cy.get('[class*="_CorrectAnswerWrapper"]'),
45
+
46
+ //Specify columns and rows
47
+ specifyColumnsAndRowsLabel: () => cy.get('[class*="SpecifyColumnRowsLabel"]'),
48
+ columnsInputStepperLabel: () => cy.get('.input-stepper-label').eq(0),
49
+ rowsInputStepperLabel: () => cy.get('.input-stepper-label').eq(1),
50
+ columnsInputStepperWrapper: () => cy.get('.input-stepper-wrapper[aria-label="Columns"]'),
51
+ rowsInputStepperWrapper: () => cy.get('.input-stepper-wrapper[aria-label="Rows"]'),
52
+ inputStepperDecreaseButton: () => cy.get('.input-stepper-button[aria-label="Decrease count"]'),
53
+ inputStepperIncreaseButton: () => cy.get('.input-stepper-button[aria-label="Increase count"]'),
54
+ inputStepperCountInputField: () => cy.get('.input-stepper-textfield'),
55
+ specifyColumnsAndRowsTableWrapper: () => cy.get('.drag-drop-table-wrapper'),
56
+ specifyColumnsAndRowsTableRowContainer: () => cy.get('[class*="DragAndDropTablestyles__RowContainer"]'),
57
+ setFirstRowCellsAsHeadingCheckbox: () => cy.get('[data-ngie-testid="set-first-row-cells-as-heading-checkbox"] .ngie-checkbox'),
58
+ setFirstRowCellsAsHeadingLabel: () => cy.get('[data-ngie-testid="set-first-row-cells-as-heading-checkbox"] [class*="label"]'),
59
+ setFirstColumnCellsAsHeadingCheckbox: () => cy.get('[data-ngie-testid="set-first-column-cells-as-heading-checkbox"] .ngie-checkbox'),
60
+ setFirstColumnCellsAsHeadingLabel: () => cy.get('[data-ngie-testid="set-first-column-cells-as-heading-checkbox"] [class*="label"]'),
61
+ dropzoneCellSpecifyColumnsAndRows: () => cy.get('[class*="DragAndDropTablestyles__CellContainer"].dropzone-cell'),
62
+ leftArrowNavigationButton: () => cy.get('[class*="DragAndDropTablestyles__PaginationLeftControl"]'),
63
+ rightArrowNavigationButton: () => cy.get('[class*="DragAndDropTablestyles__PaginationRightControl"]'),
64
+
65
+ //Specify correct answer matrix
66
+ tableCellContainerSpecifyCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__CellContainer"]'),
67
+ tableRowContainerSpecifyCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__RowContainer"]'),
68
+ leftArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('[aria-label="Left Pagination Button"][class*="DragAndDropMatrixstyles__PaginationControl"]').last(),
69
+ rightArrowNavigationButtonSpecifyCorrectAnswerSection: () => cy.get('[aria-label="Right Pagination Button"][class*="DragAndDropMatrixstyles__PaginationControl"]').last(),
70
+ tableCellLabel: () => cy.get('.cell-label'),
71
+
72
+ //Additional Settings
73
+ dropzoneAriaLabelInputField: () => cy.get('[type="text"][aria-label*="Enter ARIA label"]'),
74
+
75
+ //Preview tab table
76
+ tableRowContainerPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="DragAndDropMatrixstyles__RowContainer"]'),
77
+ leftArrowNavigationButtonPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [aria-label="Left Pagination Button"][class*="DragAndDropMatrixstyles__PaginationControl"]'),
78
+ rightArrowNavigationButtonPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [aria-label="Right Pagination Button"][class*="DragAndDropMatrixstyles__PaginationControl"]'),
79
+ cellContainerPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="DragAndDropMatrixstyles__CellContainer"]'),
80
+ cellContainerSpecifyCorrectAnswer: () => cy.get('[class*="DragAndDropMatrixstyles__CellContainer"]'),
81
+ incorrectOptionWrapper: () => cy.get('[class*="question-preview-wrapper"] .incorrect-answer-item'),
82
+ correctOptionWrapper: () => cy.get('[class*="question-preview-wrapper"] .correct-answer-item'),
83
+ perDropzoneRadioButton: () => cy.get('input[aria-label="per dropzone"]'),
84
+ perDropzoneRadioButtonLabel: () => cy.get('label[aria-label="per dropzone"]'),
85
+ perCorrectOptionRadioButton: () => cy.get('input[aria-label="Per correct option"]'),
86
+ perCorrectOptionRadioButtonLabel: () => cy.get('label[aria-label="Per correct option"]'),
87
+ totalPointsLabel: () => cy.get('[class*="TotalPointsLabel-"]'),
88
+ totalPointsValue: () => cy.get('[class*="TotalPointsLabel"] [class*="Value"]'),
89
+ addColumnButton: () => cy.get('[aria-label="Columns"] [aria-label*="Increase count"]'),
90
+ addRowButton: () => cy.get('[aria-label="Rows"] [aria-label*="Increase count"]'),
91
+ deleteColumnButton: () => cy.get('[aria-label="Columns"] [aria-label*="Decrease count"]'),
92
+ deleteRowButton: () => cy.get('[aria-label="Rows"] [aria-label*="Decrease count"]'),
93
+ //Note: Need to update selector after https://redmine.zeuslearning.com/issues/556753 gets fixed
94
+ penaltyPointsForIncorrectDropzoneInputField: () => cy.get('input[aria-label="penalty points for each incorrect option"]'),
95
+ penaltyPointsForIncorrectOptionInputField: () => cy.get('input[aria-label="penalty points for each incorrect option"]'),
96
+ penaltyPointsForEachIncorrectOptionOrDropzoneLabel: () => cy.get('[class*="PenaltyScoreForEachIncorrectstyles__PointsLabel"]'),
97
+ tableOuterBorder: () => cy.get('.table-border'),
98
+ categoryGridSpecifyCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__TableWrapper"]'),
99
+ maxLimitInEachDropzoneHelpText: () => cy.get('[class*="DragAndDropMatrixstyles__MaxLimitWrapper"]'),
100
+ dropzoneGridSpecifyCorrectAnswerSection: () => cy.get('[class*="DragAndDropMatrixstyles__TableWrapper"]'),
101
+ dropzoneGridPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="DragAndDropMatrixstyles__TableWrapper"]'),
81
102
  }
82
103
 
83
104
  const steps = {
84
- ...questionInstructionsComponent.steps,
85
- ...commonComponents.steps,
105
+ ...autoScoredSpecifyCorrectAnswerSection.steps,
86
106
  ...createQuestionBasePage.steps,
87
- ...autoScoredSetCorrectAnswerSection.steps,
88
- ...autoScoredScoringSection.steps,
89
- ...scoringSectionBase.steps,
90
- ...autoScoredScoringSectionMultipleResponsesType.steps,
91
- ...dragAndDropResponseOptions.steps,
92
- ...additionalSettingsPanel.steps,
93
- ...autoScoredAdditionalSettings.steps,
94
- ...previewScoringAndShowCorrectAnswerComponent.steps,
95
- ...autoScoredPreviewBase.steps,
96
- ...dragAndDropSetCorrectAnswerCheckboxComponents.steps,
97
107
  ...optionsWrapperComponent.steps,
98
- ...draggableOptionsContainer.steps,
99
- ...answerNumerationComponent.steps,
100
- ...autoScoredAdditionalSettings.steps,
101
- //functions related to category
108
+ ...scoringSectionBaseEditTab.steps,
109
+ ...autoScoredScoringSectionMultiResponseType.steps,
110
+ ...autoScoredStudentViewSettings.steps,
111
+ ...autoScoredScoringPreviewTab.steps,
112
+ ...questionInstructionsComponent.steps,
113
+ ...ckEditorToolbar.steps,
114
+ ...equationEditorFlyout.steps,
115
+ ...maximumCapacityPerDropzoneComponent.steps,
116
+ ...randomizeOptionsComponent.steps,
117
+ ...draggableOptionContainer.steps,
118
+ ...allowMultipleInstancesOfSameDraggableOptionComponent.steps,
119
+ ...additionalSettingsPanel.steps,
120
+ ...commonComponents.steps,
121
+ ...draggableOptionsSectionComponent.steps,
122
+ ...commonComponents.steps,
123
+ ...enableOuterBorderComponent.steps,
102
124
  /**
103
- * @param {number} count is the number of category input fields present
104
- * @description verify the count of category input fields present
125
+ * @description Modifies the dropzone property based on the specified list option.
126
+ * @param {("Heading" | "Subheading" | "Text" | "Dropzone" | "None")} listOption - The list option to set to the dropzone.
105
127
  */
106
- verifyCountOfCategoryInputFields: (count) => {
107
- dragAndDropIntoCategoriesPage.categoryInputField()
108
- .should('have.length', count);
109
- },
110
-
111
- addCategory: () => {
112
- dragAndDropIntoCategoriesPage.addCategoryButton()
128
+ modifyTableCellProperty: (cellIndex, listOption) => {
129
+ dragAndDropIntoCategoriesPage.editCellPropertyButton()
130
+ .eq(cellIndex)
131
+ .scrollIntoView()
113
132
  .click();
133
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.editCellPropertyList(), 'visible');
134
+ switch (listOption) {
135
+ case 'Heading':
136
+ dragAndDropIntoCategoriesPage.editCellPropertyListOption()
137
+ .contains('Heading', { matchCase: false })
138
+ .click();
139
+ break;
140
+ case 'Subheading':
141
+ dragAndDropIntoCategoriesPage.editCellPropertyListOption()
142
+ .contains('Subheading', { matchCase: false })
143
+ .click();
144
+ break;
145
+ case 'Text':
146
+ dragAndDropIntoCategoriesPage.editCellPropertyListOption()
147
+ .contains('Text', { matchCase: false })
148
+ .click();
149
+ break;
150
+ case 'Dropzone':
151
+ dragAndDropIntoCategoriesPage.editCellPropertyListOption()
152
+ .contains('Dropzone', { matchCase: false })
153
+ .click();
154
+ break;
155
+ case 'None':
156
+ dragAndDropIntoCategoriesPage.editCellPropertyListOption()
157
+ .contains('None', { matchCase: false })
158
+ .click();
159
+ break;
160
+ default:
161
+ throw new Error('Invalid list option');
162
+ }
114
163
  },
115
164
 
116
165
  /**
117
- * @param {number} inputFieldIndex indicates the category input field index
118
- * @param {string} textContent indicates the text that is entered and verified in the category input field
119
- * @description enter text in the category input field
166
+ * @description Verify the specify columns and rows section table cell property
167
+ * @param {("Heading" | "Subheading" | "Text" | "Dropzone" | "None")} cellPropertyType - Property of the table cell
120
168
  */
121
- enterTextInCategoryInputField: (inputFieldIndex, textContent) => {
122
- dragAndDropIntoCategoriesPage.categoryInputField()
123
- .eq(inputFieldIndex)
124
- .clear()
125
- .type(textContent, { delay: 0 })
126
- .blur()
127
- .focus()
128
- .should('have.text', textContent);
169
+ verifySpecifyColumnsAndRowsSectionCellProperty: (cellIndex, cellPropertyType) => {
170
+ switch (cellPropertyType) {
171
+ case 'Heading':
172
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainer(), cellIndex)
173
+ .should('have.class', 'heading-dropzone');
174
+ break;
175
+ case 'Subheading':
176
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainer(), cellIndex)
177
+ .should('have.class', 'subheading-dropzone');
178
+ break;
179
+ case 'Text':
180
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainer(), cellIndex)
181
+ .should('have.class', 'text-dropzone');
182
+ break;
183
+ case 'Dropzone':
184
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainer(), cellIndex)
185
+ .should('have.class', 'dropzone-cell');
186
+ break;
187
+ case 'None':
188
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainer(), cellIndex)
189
+ .should('have.class', 'text-dropzone')
190
+ .find('textarea')
191
+ .should('not.exist');
192
+ break;
193
+ default:
194
+ throw new Error('Invalid cell property');
195
+ }
129
196
  },
130
197
 
131
198
  /**
132
- * @param {number} inputFieldIndex indicates the category input field index
133
- * @description clears text in a category input field
199
+ * @description Verify the specify columns and rows section table cell property
200
+ * @param {("Heading" | "Subheading" | "Text" | "Dropzone" | "None")} cellPropertyType - Property of the table cell
134
201
  */
135
- clearTextInCategoryInputField: (inputFieldIndex) => {
136
- dragAndDropIntoCategoriesPage.categoryInputField()
137
- .eq(inputFieldIndex)
138
- .focus()
139
- .clear()
140
- .should('have.text', '')
141
- .blur();
202
+ verifySpecifyCorrectAnswerSectionCellProperty: (cellIndex, cellPropertyType) => {
203
+ switch (cellPropertyType) {
204
+ case 'Heading':
205
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), cellIndex)
206
+ .should('have.class', 'heading-dropzone');
207
+ break;
208
+ case 'Subheading':
209
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), cellIndex)
210
+ .should('have.class', 'subheading-dropzone');
211
+ break;
212
+ case 'Text':
213
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), cellIndex)
214
+ .should('have.class', 'text-dropzone');
215
+ break;
216
+ case 'Dropzone':
217
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), cellIndex)
218
+ .should('have.class', 'dropzone-cell');
219
+ break;
220
+ case 'None':
221
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), cellIndex)
222
+ .should('have.class', 'text-dropzone')
223
+ .find('.cell-label')
224
+ .should('not.exist');
225
+ break;
226
+ default:
227
+ throw new Error('Invalid cell property');
228
+ }
142
229
  },
143
230
 
144
231
  /**
145
- * @param {number} inputFieldIndex indicates the category input field index
146
- * @description verify placeholder text of category input field
232
+ * @param {number} cellIndex - Index of the table cell.
233
+ * @param {("Heading" | "Subheading" | "Text" | "Dropzone" | "None")} cellProperty - Type of property to verify.
234
+ * @description Verifies the appearance and content of a specific property in a table cell on the preview tab.
147
235
  */
148
- verifyPlaceholderTextInCategoryInputField: (inputFieldIndex) => {
149
- dragAndDropIntoCategoriesPage.categoryInputField()
150
- .eq(inputFieldIndex)
151
- .should('have.attr', 'data-cke-editorplaceholder', 'Enter category title');
236
+ verifyTableCellPropertyPreviewTab: (cellIndex, cellProperty) => {
237
+ switch (cellProperty) {
238
+ case 'Heading':
239
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerPreviewTab(), cellIndex)
240
+ .should('have.class', 'heading-dropzone');
241
+ break;
242
+ case 'Subheading':
243
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerPreviewTab(), cellIndex)
244
+ .should('have.class', 'subheading-dropzone');
245
+ break;
246
+ case 'Text':
247
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerPreviewTab(), cellIndex)
248
+ .should('have.class', 'text-dropzone');
249
+ break;
250
+ case 'Dropzone':
251
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerPreviewTab(), cellIndex)
252
+ .should('have.class', 'dropzone-cell');
253
+ break;
254
+ case 'None':
255
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerPreviewTab(), cellIndex)
256
+ .should('have.class', 'text-dropzone')
257
+ .and('have.text', '');
258
+ break;
259
+ default:
260
+ throw new Error('Invalid list option');
261
+ };
152
262
  },
153
263
 
154
264
  /**
155
- * @param {number} inputFieldIndex indicates the category input field index
156
- * @description verify placeholder text does not exist in a category input field
157
- */
158
- verifyPlaceholderTextNotExistInCategoryInputField: (inputFieldIndex) => {
159
- dragAndDropIntoCategoriesPage.categoryInputField()
160
- .eq(inputFieldIndex)
161
- .should('not.have.attr', 'data-cke-editorplaceholder');
265
+ * @param {number} cellIndex - Index of the table cell.
266
+ * @param {("Heading" | "Subheading" | "Text" | "Dropzone" | "None")} cellProperty - Type of property to verify.
267
+ * @description Verifies the appearance and content of a specific property in a table cell on the preview tab.
268
+ */
269
+ verifyTableCellPropertySpecifyCorrectAnswer: (cellIndex, cellProperty) => {
270
+ switch (cellProperty) {
271
+ case 'Heading':
272
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), cellIndex)
273
+ .should('have.class', 'heading-dropzone');
274
+ break;
275
+ case 'Subheading':
276
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), cellIndex)
277
+ .should('have.class', 'subheading-dropzone');
278
+ break;
279
+ case 'Text':
280
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), cellIndex)
281
+ .should('have.class', 'text-dropzone');
282
+ break;
283
+ case 'Dropzone':
284
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), cellIndex)
285
+ .should('have.class', 'dropzone-cell');
286
+ break;
287
+ case 'None':
288
+ utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), cellIndex)
289
+ .should('have.class', 'text-dropzone')
290
+ .and('have.text', '');
291
+ break;
292
+ default:
293
+ throw new Error('Invalid list option');
294
+ };
162
295
  },
163
296
 
164
297
  /**
165
- * @param {number} inputFieldIndex indicates the category input field index
166
- * @description delete a category input field
298
+ * Edits the heading of a cell in the drag-and-drop into categories table.
299
+ * @param {number} cellIndex - The index of the cell to edit.
300
+ * @param {string} textContent - The new text content for the heading.
167
301
  */
168
- deleteCategoryInputField: (inputFieldIndex) => {
169
- dragAndDropIntoCategoriesPage.categoryInputField()
170
- .eq(inputFieldIndex)
171
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
172
- .find('[aria-label*="Delete category"]')
173
- .click();
302
+ editCellHeading: (cellIndex, textContent) => {
303
+ dragAndDropIntoCategoriesPage.tableCellContainer()
304
+ .eq(cellIndex)
305
+ .within(() => {
306
+ dragAndDropIntoCategoriesPage.cellHeadingTextArea()
307
+ .clear()
308
+ .type(textContent)
309
+ .blur();
310
+ });
174
311
  },
175
312
 
176
313
  /**
177
- * @param {number} inputFieldIndex indicates the category input field index
178
- * @description verify the delete category button is visible and enabled
314
+ * Edits the subheading of a cell in the drag-and-drop into categories table.
315
+ * @param {number} cellIndex - The index of the cell to edit.
316
+ * @param {string} textContent - The new text content for the subheading.
179
317
  */
180
- verifyDeleteCategoryButton: (inputFieldIndex) => {
181
- dragAndDropIntoCategoriesPage.categoryInputField()
182
- .eq(inputFieldIndex)
183
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
184
- .find('[aria-label*="Delete category"]')
185
- .should('be.visible')
186
- .and('be.enabled');
187
- },
188
-
189
- verifyNumerationOfCategoryInputFields: () => {
190
- dragAndDropIntoCategoriesPage.categoryInputField()
191
- .then(elements => {
192
- for (let inputFieldIndex = 0; inputFieldIndex < elements.length; inputFieldIndex++) {
193
- cy.wrap(elements)
194
- .eq(inputFieldIndex)
195
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
196
- .find('[class*="OptionsComponentstyles__IndexWrapper"]')
197
- .should('have.text', `${inputFieldIndex + 1}`);
198
- };
318
+ editCellSubheading: (cellIndex, textContent) => {
319
+ dragAndDropIntoCategoriesPage.tableCellContainer()
320
+ .eq(cellIndex)
321
+ .within(() => {
322
+ dragAndDropIntoCategoriesPage.cellSubheadingTextArea()
323
+ .clear()
324
+ .type(textContent)
325
+ .blur();
199
326
  });
200
327
  },
201
328
 
202
329
  /**
203
- * @param {number} count denotes the number of category titles present
204
- * @description verify count of category titles in set correct answer section
330
+ * Edits the text of a cell in the drag-and-drop into categories table.
331
+ * @param {number} cellIndex - The index of the cell to edit.
332
+ * @param {string} textContent - The new text content for the cell.
205
333
  */
206
- verifyCountOfCategoryTitlesInSetCorrectAnswerSection: (count) => {
207
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryTitle()
208
- .should('have.length', count);
334
+ editCellText: (cellIndex, textContent) => {
335
+ dragAndDropIntoCategoriesPage.tableCellContainer()
336
+ .eq(cellIndex)
337
+ .within(() => {
338
+ dragAndDropIntoCategoriesPage.cellTextTextArea()
339
+ .clear()
340
+ .type(textContent)
341
+ .blur();
342
+ });
209
343
  },
210
344
 
211
345
  /**
212
- * @param {number} count denotes the number of categories present
213
- * @description verify count of categories in set correct answer section
346
+ * Verifies the empty state of a dropzone cell in the Specify Correct Answer section.
347
+ * @param {number} cellIndex - The index of the dropzone cell to verify.
214
348
  */
215
- verifyCountOfCategoriesInSetCorrectAnswerSection: (count) => {
216
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
217
- .should('have.length', count);
349
+ verifyEmptyStateOfDropzoneInSetCorrectAnswerSection: (cellIndex) => {
350
+ utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection(), cellIndex), '');
218
351
  },
219
352
 
220
353
  /**
221
- * @param {number} categoryIndex denotes the index of the category title
222
- * @param {string} title denotes the category title
223
- * @description verify category title in set correct answer section
354
+ * Verifies the empty state of a dropzone cell in the Preview Tab.
355
+ * @param {number} cellIndex - The index of the dropzone cell to verify.
224
356
  */
225
- verifyCategoryTitleInSetCorrectAnswerSection: (categoryIndex, title) => {
226
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryTitle()
227
- .eq(categoryIndex)
228
- .should('have.text', title)
229
- .and('be.visible');
357
+ verifyEmptyStateOfDropzoneInPreviewTab: (cellIndex) => {
358
+ utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab(), cellIndex), '');
230
359
  },
231
360
 
232
361
  /**
233
- * @param {number} count denotes the number of categories titles present
234
- * @description verify count of category titles in preview tab
362
+ * Verifies the numeration of dropzone cells in the Preview Tab.
363
+ * @param {number[]} dropZoneCellIndexArray - An array of expected numerations for each dropzone cell.
235
364
  */
236
- verifyCountOfCategoryTitlesInPreviewTab: (count) => {
237
- dragAndDropIntoCategoriesPage.previewTabCategoryTitle()
238
- .should('have.length', count);
365
+ verifyDropzoneCellNumeration: (dropZoneCellIndexArray) => {
366
+ dropZoneCellIndexArray.forEach((dropzoneCellNumeration, index) => {
367
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
368
+ .eq(index)
369
+ .within(() => {
370
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.dropzoneCellNumeration(), 'visible');
371
+ utilities.verifyInnerText(dragAndDropIntoCategoriesPage.dropzoneCellNumeration(), `${dropzoneCellNumeration}`);
372
+ });
373
+ });
239
374
  },
240
375
 
241
376
  /**
242
- * @param {number} count denotes the number of categories
243
- * @description verify count of categories in preview tab
377
+ * Verifies the numeration of correct answer container dropzone cells.
378
+ * @param {Array<string>} dropZoneCellIndexArray - An array of expected numeration values for dropzone cells.
379
+ * @returns {void}
244
380
  */
245
- verifyCountOfCategoriesInPreviewTab: (count) => {
246
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
247
- .should('have.length', count);
381
+ verifyCorrectAnswerContainerNumeration: (dropZoneCellIndexArray) => {
382
+ dropZoneCellIndexArray.forEach((dropzoneCellNumeration, index) => {
383
+ dragAndDropIntoCategoriesPage.correctAnswerDropzoneCell()
384
+ .eq(index)
385
+ .within(() => {
386
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.correctAnswerDropzoneCellTickIcon(), 'visible');
387
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.dropzoneCellNumeration(), `${dropzoneCellNumeration}`);
388
+ });
389
+ });
248
390
  },
249
391
 
250
392
  /**
251
- * @param {number} categoryIndex denotes the index of the category title
252
- * @param {string} title denotes the category title
253
- * @description verify category title in preview tab
393
+ * Verifies correct answer responses in the Correct Answer section and counts them.
394
+ * @param {string[][]} correctAnswerArray - An array of correct answer options for each dropzone cell.
395
+ * @param {number[]} dropZoneCellIndexArray - An array of expected numerations for each dropzone cell.
254
396
  */
255
- verifyCategoryTitleInPreviewTab: (categoryIndex, title) => {
256
- dragAndDropIntoCategoriesPage.previewTabCategoryTitle()
257
- .eq(categoryIndex)
258
- .should('have.text', title)
259
- .and('be.visible');
397
+ verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount: (correctAnswerArray, dropZoneCellIndexArray) => {
398
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.correctAnswerDropzoneCell(), correctAnswerArray.length);
399
+ correctAnswerArray.forEach((correctAnswer, index) => {
400
+ dragAndDropIntoCategoriesPage.correctAnswerDropzoneCell()
401
+ .eq(index)
402
+ .within(() => {
403
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.dropzoneCellNumeration(), dropZoneCellIndexArray[index]);
404
+ correctAnswer.forEach((answerOption, optionIndex) => {
405
+ utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.correctAnswerOption(), optionIndex), answerOption);
406
+ });
407
+ });
408
+ });
260
409
  },
261
410
 
262
411
  /**
263
- * @param {number} inputFieldIndex denotes the category input field index
264
- * @description focus in and out of a category input field
412
+ * Verifies the presence of an incorrect option icon for a specified option in the Preview Tab.
413
+ * @param {number} optionIndex - The index of the option to verify.
265
414
  */
266
- focusInAndFocusOutOfCategoryInputField: (inputFieldIndex) => {
267
- dragAndDropIntoCategoriesPage.categoryInputField()
268
- .eq(inputFieldIndex)
269
- .click()
270
- .blur();
415
+ verifyIncorrectOptionIcon: (optionIndex) => {
416
+ dragAndDropIntoCategoriesPage.categoryGridPreviewTab()
417
+ .within(() => {
418
+ dragAndDropIntoCategoriesPage.optionsWrapper()
419
+ .eq(optionIndex)
420
+ .should('have.class', 'incorrect-answer-item');
421
+ });
271
422
  },
272
423
 
273
424
  /**
274
- * @param {number} inputFieldIndex denotes the category input field index
275
- * @description verify tooltip of Delete category button
425
+ * Verifies the presence of a correct option icon for a specified option in the Preview Tab.
426
+ * @param {number} optionIndex - The index of the option to verify.
276
427
  */
277
- verifyDeleteCategoryTooltip: (inputFieldIndex) => {
278
- dragAndDropIntoCategoriesPage.categoryInputField()
279
- .eq(inputFieldIndex)
280
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
281
- .find('button')
282
- .verifyTooltip('Delete category');
428
+ verifyCorrectOptionIcon: (optionIndex) => {
429
+ dragAndDropIntoCategoriesPage.categoryGridPreviewTab()
430
+ .within(() => {
431
+ dragAndDropIntoCategoriesPage.optionsWrapper()
432
+ .eq(optionIndex)
433
+ .should('have.class', 'correct-answer-item');
434
+ });
283
435
  },
284
436
 
285
- //functions related to row
286
-
287
- /**
288
- * @param {number} count denotes the number of row input fields
289
- * @description verify count of number of row input fields present
290
- */
291
- verifyCountOfRowInputFields: (count) => {
292
- dragAndDropIntoCategoriesPage.rowInputField()
293
- .should('have.length', count);
437
+ setRowsAndColumnsForQuestion: () => {
438
+ dragAndDropIntoCategoriesPage.steps.modifyTableCellProperty(0, 'None');
439
+ dragAndDropIntoCategoriesPage.steps.modifyTableCellProperty(3, 'Heading');
440
+ dragAndDropIntoCategoriesPage.steps.modifyTableCellProperty(6, 'Subheading');
441
+ dragAndDropIntoCategoriesPage.steps.modifyTableCellProperty(9, 'Text');
442
+ dragAndDropIntoCategoriesPage.steps.editCellHeading(1, 'Mammal');
443
+ dragAndDropIntoCategoriesPage.steps.editCellHeading(2, 'Not mammal');
444
+ dragAndDropIntoCategoriesPage.steps.editCellHeading(3, 'Can fly');
445
+ dragAndDropIntoCategoriesPage.steps.editCellSubheading(6, 'Can walk');
446
+ dragAndDropIntoCategoriesPage.steps.editCellText(9, 'Can swim');
294
447
  },
295
448
 
296
449
  /**
297
- * @param {number} inputFieldIndex is the index of the row input field
298
- * @description verify the default state of a row input field
450
+ * @param {("correct" | "incorrect")} answerStatus - The status of the answer.
451
+ * @description Verifies the visibility and content of the correct/incorrect answer label block.
452
+ * If the answer is correct, it also verifies the visibility of the correct icon;
453
+ * otherwise, it verifies the visibility of the incorrect icon.
299
454
  */
300
- verifyDefaultStateOfRowInputField: (inputFieldIndex) => {
301
- dragAndDropIntoCategoriesPage.rowInputField()
302
- .eq(inputFieldIndex)
303
- .should('have.text', '')
304
- .and('have.attr', 'data-cke-editorplaceholder', 'Enter row title')
305
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
306
- .find('[class*="OptionsComponentstyles__IndexWrapper"]')
307
- .should('have.text', `${inputFieldIndex + 1}`);
308
- },
309
-
310
- verifyNumerationOfRowInputFields: () => {
311
- dragAndDropIntoCategoriesPage.rowInputField()
312
- .then(elements => {
313
- for (let inputFieldIndex = 0; inputFieldIndex < elements.length; inputFieldIndex++) {
314
- cy.wrap(elements)
315
- .eq(inputFieldIndex)
316
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
317
- .find('[class*="OptionsComponentstyles__IndexWrapper"]')
318
- .should('have.text', `${inputFieldIndex + 1}`);
319
- };
320
- });
455
+ verifyCorrectIncorrectAnswerLabel: (answerStatus) => {
456
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.correctIncorrectAnswerBlock(), 'visible');
457
+ utilities.verifyInnerText(dragAndDropIntoCategoriesPage.correctIncorrectStatusMessageText(), `Your answer is\n${answerStatus}`)
458
+ if (answerStatus === 'correct') {
459
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'visible');
460
+ } else {
461
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'visible');
462
+ }
321
463
  },
322
464
 
323
465
  /**
324
- * @param {number} inputFieldIndex is the index of the row input field
325
- * @description verify if the delete row button is disabled
466
+ * Sets options in dropzones in the Specify Correct Answer section based on the provided optionsObject.
467
+ * @param {Object} optionsObject - An object where keys are option texts and values are dropzone indices.
468
+ * @example clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Bat': 0, 'Eagle': 1, 'Parrot': 4, 'Whale': 4 })
326
469
  */
327
- verifyDisabledDeleteRowButton: (inputFieldIndex) => {
328
- dragAndDropIntoCategoriesPage.rowInputField()
329
- .eq(inputFieldIndex)
330
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
331
- .find('button')
332
- .should('be.visible')
333
- .and('be.disabled');
470
+ clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection: (optionsObject) => {
471
+ Object.entries(optionsObject).forEach(([optionText, dropzoneIndex]) => {
472
+ dragAndDropIntoCategoriesPage.optionsContainerSpecifyCorrectAnswerSection()
473
+ .within(() => {
474
+ draggableOptionContainer.draggableOption()
475
+ .contains(optionText)
476
+ .click();
477
+ });
478
+ dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection()
479
+ .eq(dropzoneIndex)
480
+ .click({ force: true });
481
+ });
334
482
  },
335
483
 
336
- /**
337
- * @param {number} inputFieldIndex is the index of the row input field
338
- * @description verify if the delete row button is enabled
339
- */
340
- verifyEnabledDeleteRowButton: (inputFieldIndex) => {
341
- dragAndDropIntoCategoriesPage.rowInputField()
342
- .eq(inputFieldIndex)
343
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
344
- .find('button')
345
- .should('be.visible')
346
- .and('be.enabled');
484
+ clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection: (optionText) => {
485
+ dragAndDropIntoCategoriesPage.draggableOption()
486
+ .contains(optionText)
487
+ .click();
488
+ dragAndDropIntoCategoriesPage.optionsContainerSpecifyCorrectAnswerSection()
489
+ .click();
347
490
  },
348
491
 
349
492
  /**
350
- * @param {number} inputFieldIndex is the index of the row input field
351
- * @description verify placeholder text in the row input field
493
+ * Sets options in dropzones in the Preview Tab based on the provided optionsObject.
494
+ * @param {Object} optionsObject - An object where keys are option texts and values are dropzone indices.
495
+ * @example clickAndDropOptionInDropzonePreviewTab({ 'Bat': 0, 'Eagle': 1, 'Parrot': 4, 'Whale': 4 })
352
496
  */
353
- verifyPlaceholderTextInRowInputField: (inputFieldIndex) => {
354
- dragAndDropIntoCategoriesPage.rowInputField()
355
- .eq(inputFieldIndex)
356
- .should('have.attr', 'data-cke-editorplaceholder', 'Enter row title');
497
+ clickAndDropOptionInDropzonePreviewTab: (optionsObject) => {
498
+ Object.entries(optionsObject).forEach(([optionText, dropzoneIndex]) => {
499
+ dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
500
+ .within(() => {
501
+ draggableOptionContainer.draggableOption()
502
+ .contains(optionText)
503
+ .click();
504
+ });
505
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
506
+ .eq(dropzoneIndex)
507
+ .click({ force: true });
508
+ });
357
509
  },
358
510
 
359
- /**
360
- * @param {number} inputFieldIndex is the index of the row input field
361
- * @description verify placeholder does not exist in the row input field
362
- */
363
- verifyPlaceholderTextNotExistInRowInputField: (inputFieldIndex) => {
364
- dragAndDropIntoCategoriesPage.rowInputField()
365
- .eq(inputFieldIndex)
366
- .should('not.have.attr', 'data-cke-editorplaceholder');
511
+ verifyCorrectAnswerSectionNotExists: () => {
512
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.correctAnswerContainer(), 'notExist');
367
513
  },
368
514
 
369
- /**
370
- * @param {number} inputFieldIndex is the index of the row input field
371
- * @param {string} textContent text that is entered in the row input field
372
- * @description enter text and verify in the row input field
373
- */
374
- enterTextInRowInputField: (inputFieldIndex, textContent) => {
375
- dragAndDropIntoCategoriesPage.rowInputField()
376
- .eq(inputFieldIndex)
377
- .clear()
378
- .type(textContent, { delay: 0 })
379
- .blur()
380
- .focus()
381
- .should('have.text', textContent);
515
+ verifyCorrectIncorrectStatusMessageNotExists: () => {
516
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.correctIncorrectAnswerBlock(), 'notExist');
382
517
  },
383
518
 
384
- addRow: () => {
385
- dragAndDropIntoCategoriesPage.addRowButton()
386
- .click();
519
+ verifyQuestionPreviewStateWhenSwitchingBackToStudentView: () => {
520
+ cy.log('After switching to student view, the question preview should return to the previous state');
521
+ autoScoredScoringPreviewTab.steps.switchToStudentView();
522
+ dragAndDropIntoCategoriesPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
523
+ dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswerSectionNotExists();
387
524
  },
388
525
 
389
526
  /**
390
- * @param {number} inputFieldIndex is the index of the row input field
391
- * @description delete a row input field
392
- */
393
- deleteRowInputField: (inputFieldIndex) => {
394
- dragAndDropIntoCategoriesPage.rowInputField()
395
- .eq(inputFieldIndex)
396
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
397
- .find('button')
398
- .click();
527
+ * @description Verifies that the image in the Preview tab has the correct source and alt text.
528
+ * @param {number} optionIndex - The index of the option in the Preview tab.
529
+ */
530
+ verifyDraggableOptionWithImageInPreviewTab: (optionIndex) => {
531
+ dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
532
+ .within(() => {
533
+ draggableOptionContainer.draggableOption()
534
+ .eq(optionIndex)
535
+ .find('img')
536
+ .should('have.attr', 'src', constants.foxImageLink)
537
+ .and('have.attr', 'alt', constants.foxImageAltText);
538
+ utilities.verifyElementVisibilityState(utilities.getNthElement(draggableOptionContainer.draggableOptionDragIcon(), optionIndex), 'exist');
539
+ });
399
540
  },
400
541
 
401
542
  /**
402
- * @param {number} count denotes the number of rows
403
- * @description verify count of rows present in set correct answer section
543
+ * @description Verify the count of columns in column input stepper
544
+ * @param {number} value Count of columns in input stepper
404
545
  */
405
- verifyCountOfRowsInSetCorrectAnswerSection: (count) => {
406
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionRowContainer()
407
- .should('have.length', count);
546
+ verifyColumnInputStepperCountInputFieldValue: (value) => {
547
+ dragAndDropIntoCategoriesPage.inputStepperCountInputField()
548
+ .eq(0)
549
+ .should('have.value', value);
408
550
  },
409
551
 
410
552
  /**
411
- * @param {number} count denotes the number of ro titles
412
- * @description verify count of row titles present in the set correct answer section
553
+ * @description Verify the count of rows in rows input stepper
554
+ * @param {number} value Count of rows in input stepper
413
555
  */
414
- verifyCountOfRowTitlesInSetCorrectAnswerSection: (count) => {
415
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionRowTitle()
416
- .should('have.length', count)
556
+ verifyRowsInputStepperCountInputFieldValue: (value) => {
557
+ dragAndDropIntoCategoriesPage.inputStepperCountInputField()
558
+ .eq(1)
559
+ .should('have.value', value);
417
560
  },
418
561
 
419
562
  /**
420
- * @param {number} count denotes the number of rows present
421
- * @description verify count of rows in the preview tab
563
+ * @description Increase column input stepper count
564
+ * @param {number} increaseValue The value by which the column input stepper count is to be increased
422
565
  */
423
- verifyCountOfRowsInPreviewTab: (count) => {
424
- dragAndDropIntoCategoriesPage.previewTabRowContainer()
425
- .should('have.length', count);
566
+ increaseColumnInputStepperCount: (increaseValue) => {
567
+ for (let index = 0; index < increaseValue; index++) {
568
+ dragAndDropIntoCategoriesPage.inputStepperIncreaseButton()
569
+ .eq(0)
570
+ .click();
571
+ };
426
572
  },
427
573
 
428
574
  /**
429
- * @param {number} count denotes the number of rows titles
430
- * @description verify count of row titles present in the preview tab
575
+ * @description Decrease column input stepper count
576
+ * @param {number} increaseValue The value by which the column input stepper count is to be decreased
431
577
  */
432
- verifyCountOfRowTitlesInPreviewTab: (count) => {
433
- dragAndDropIntoCategoriesPage.previewTabRowTitle()
434
- .should('have.length', count)
578
+ decreaseColumnInputStepperCount: (increaseValue) => {
579
+ for (let index = 0; index < increaseValue; index++) {
580
+ dragAndDropIntoCategoriesPage.inputStepperDecreaseButton()
581
+ .eq(0)
582
+ .click();
583
+ };
435
584
  },
436
585
 
437
- verifyDisabledRowInputFieldTooltip: () => {
438
- dragAndDropIntoCategoriesPage.rowInputField()
439
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
440
- .within(() => {
441
- dragAndDropIntoCategoriesPage.deleteButton()
442
- .trigger('mouseover', { force: true });
443
- });
444
- commonComponents.tooltipText()
445
- .verifyInnerText('Minimum one row is required');
446
- dragAndDropIntoCategoriesPage.rowInputField()
447
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
448
- .within(() => {
449
- dragAndDropIntoCategoriesPage.deleteButton()
450
- .trigger('mouseout', { force: true });
451
- });
452
- commonComponents.tooltipText()
453
- .should('not.exist');
586
+ /**
587
+ * @description Increase row input stepper count
588
+ * @param {number} decreaseValue The value by which the row input stepper count is to be increased
589
+ */
590
+ increaseRowInputStepperCount: (decreaseValue) => {
591
+ for (let index = 0; index < decreaseValue; index++) {
592
+ dragAndDropIntoCategoriesPage.inputStepperIncreaseButton()
593
+ .eq(1)
594
+ .click();
595
+ };
454
596
  },
455
597
 
456
598
  /**
457
- * @param {number} inputFieldIndex is the index of the row input field
458
- * @description focus in and out of a row input field
599
+ * @description Decrease row input stepper count
600
+ * @param {number} decreaseValue The value by which the row input stepper count is to be decreased
459
601
  */
460
- focusInAndFocusOutOfRowInputField: (inputFieldIndex) => {
461
- dragAndDropIntoCategoriesPage.rowInputField()
462
- .eq(inputFieldIndex)
463
- .click()
464
- .blur();
602
+ decreaseRowInputStepperCount: (decreaseValue) => {
603
+ for (let index = 0; index < decreaseValue; index++) {
604
+ dragAndDropIntoCategoriesPage.inputStepperDecreaseButton()
605
+ .eq(1)
606
+ .click();
607
+ };
465
608
  },
466
609
 
467
610
  /**
468
- * @param {number} inputFieldIndex is the index of the row input field
469
- * @description verify tooltip of enabled 'Delete row' button
611
+ * @description Verify the number of columns in the specify columns and rows section table
612
+ * @param {number} numberOfColumns Number of columns in the specify columns and rows section table
470
613
  */
471
- verifyEnabledDeleteRowInputFieldTooltip: (inputFieldIndex) => {
472
- dragAndDropIntoCategoriesPage.rowInputField()
473
- .eq(inputFieldIndex)
474
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
475
- .within(() => {
476
- dragAndDropIntoCategoriesPage.deleteButton()
477
- .trigger('mouseover');
478
- });
479
- commonComponents.tooltipText()
480
- .verifyInnerText('Delete row');
481
- dragAndDropIntoCategoriesPage.rowInputField()
482
- .eq(inputFieldIndex)
483
- .parents('[class*="OptionsComponentstyles__TitleWrapper"]')
614
+ verifyColumnsCountInSpecifyColumnsAndRowsTable: (numberOfColumns) => {
615
+ dragAndDropIntoCategoriesPage.specifyColumnsAndRowsTableRowContainer()
616
+ .eq(0)
484
617
  .within(() => {
485
- dragAndDropIntoCategoriesPage.deleteButton()
486
- .trigger('mouseout');
618
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.tableCellContainer(), numberOfColumns);
487
619
  });
488
- commonComponents.tooltipText()
489
- .should('not.exist');
490
620
  },
491
621
 
492
622
  /**
493
- * @param {number} rowIndex is the index of the row title
494
- * @param {string} title is the text of the row title
495
- * @description verify row title in set correct answer section
496
- */
497
- verifyRowTitleInSetCorrectAnswerSection: (rowIndex, title) => {
498
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionRowTitle()
499
- .eq(rowIndex)
500
- .should('have.text', title)
501
- .and('be.visible');
623
+ * @description Verify the number of columns in the specify correct answer section table
624
+ * @param {number} numberOfColumns Number of columns in the specify correct answer section table
625
+ */
626
+ verifyColumnsCountInSpecifyCorrectAnswerSectionTable: (numberOfColumns) => {
627
+ dragAndDropIntoCategoriesPage.tableRowContainerSpecifyCorrectAnswerSection()
628
+ .eq(0)
629
+ .within(() => {
630
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), numberOfColumns);
631
+ });
502
632
  },
503
633
 
504
634
  /**
505
- * @param {number} rowIndex is the index of the row title
506
- * @param {string} title is the text of the row title
507
- * @description verify row title in preview tab
635
+ * @description Verifies that the link text in the Preview tab is correct and has the correct href attribute.
636
+ * @param {number} optionIndex - The index of the option in the Preview tab.
508
637
  */
509
- verifyRowTitleInPreviewTab: (rowIndex, title) => {
510
- dragAndDropIntoCategoriesPage.previewTabRowTitle()
511
- .eq(rowIndex)
512
- .should('have.text', title)
513
- .and('be.visible');
638
+ verifyDraggableOptionWithLinkTextInPreviewTab: (optionIndex) => {
639
+ dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
640
+ .within(() => {
641
+ draggableOptionContainer.draggableOption()
642
+ .eq(optionIndex)
643
+ .find('a')
644
+ .should('have.text', 'lorem')
645
+ .and('have.attr', 'href', `${Cypress.config().baseUrl}`);
646
+ utilities.verifyElementVisibilityState(utilities.getNthElement(draggableOptionContainer.draggableOptionDragIcon(), optionIndex), 'exist');
647
+ });
514
648
  },
515
649
 
516
650
  /**
517
- * @param {string} optionName denotes the text content of the draggable option
518
- * @param {number} categoryIndex denotes the category in which draggable option is being dropped
519
- * @description click and drop a draggable option into a category in the set correct answer section
651
+ * @description Verifies that the bold text in the Preview tab is correct.
652
+ * @param {number} optionIndex - The index of the option in the Preview tab.
520
653
  */
521
- clickAndDropDraggableOptionInCategoryCellOfSetCorrectAnswerSection: (optionName, categoryIndex) => {
522
- draggableOptionsContainer.setCorrectAnswerDraggableOptionsWrapper('drag and drop into categories')
654
+ verifyDraggableOptionWithBoldTextInPreviewTab: (optionIndex) => {
655
+ dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
523
656
  .within(() => {
524
- draggableOptionsContainer.draggableOption()
525
- .contains(optionName)
526
- .click();
657
+ draggableOptionContainer.draggableOption()
658
+ .eq(optionIndex)
659
+ .find('strong')
660
+ .should('have.text', 'This is a bold option');
661
+ utilities.verifyElementVisibilityState(utilities.getNthElement(draggableOptionContainer.draggableOptionDragIcon(), optionIndex), 'exist');
527
662
  });
528
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
529
- .eq(categoryIndex)
530
- .click({ force: true });
531
663
  },
532
664
 
533
665
  /**
534
- * @param {string} optionName denotes the text content of the draggable option
535
- * @param {number} categoryIndex denotes the category in which draggable option is being dropped
536
- * @description click and drop a draggable option into a category in the preview tab
666
+ * @description Verify the number of columns in the preview tab table
667
+ * @param {number} numberOfColumns Number of columns in the preview tab table
537
668
  */
538
- clickAndDropDraggableOptionInCategoryCellOfPreviewTab: (optionName, categoryIndex) => {
539
- draggableOptionsContainer.previewTabDraggableOptionsWrapper('drag and drop into categories')
540
- .within(() => {
541
- draggableOptionsContainer.draggableOption()
542
- .contains(optionName)
543
- .click();
669
+ verifyTheNumberOfColumnsInPreviewTabTable: (numberOfColumns) => {
670
+ dragAndDropIntoCategoriesPage.tableRowContainerPreviewTab()
671
+ .eq(0)
672
+ .within(($element) => {
673
+ utilities.verifyElementCount(cy.wrap($element).find('[class*="DragAndDropMatrixstyles__CellContainer"]'), numberOfColumns);
544
674
  });
545
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
546
- .eq(categoryIndex)
547
- .click({ force: true });
548
675
  },
549
676
 
550
677
  /**
551
- * @param {number} categoryIndex index of the category cell in set correct answer section
552
- * @param {string[]} responseArray array of options set as correct responses in a category cell
678
+ * @description Verifies that the equation text in the Preview tab is correct.
679
+ * @param {number} optionIndex - The index of the option in the Preview tab.
553
680
  */
554
- verifyDraggableOptionInCategoryCellOfSetCorrectAnswerSection: (categoryIndex, responseArray) => {
555
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
556
- .eq(categoryIndex)
681
+ verifyDraggableOptionWithEquationTextInPreviewTab: (optionIndex) => {
682
+ dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
557
683
  .within(() => {
558
- responseArray.forEach((response, count) => {
559
- draggableOptionsContainer.draggableOption()
560
- .eq(count)
561
- .verifyInnerText(response);
562
- });
684
+ dragAndDropIntoCategoriesPage.draggableOption()
685
+ .eq(optionIndex)
686
+ .find('[role="math"]')
687
+ .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
688
+ .contains(constants.CKEditorInputFieldEnteredEquationText);
689
+ utilities.verifyElementVisibilityState(utilities.getNthElement(draggableOptionContainer.draggableOptionDragIcon(), optionIndex), 'exist');
563
690
  });
564
691
  },
565
692
 
566
- clickOnScoringSubtypeDropdown: () => {
567
- dragAndDropIntoCategoriesPage.scoringSubtypeDropdown()
568
- .scrollIntoView()
569
- .click();
570
- },
571
-
572
- verifyListOptionsOfScoringSubtypeDropdown: () => {
573
- dragAndDropIntoCategoriesPage.scoringSubtypeDropdownListOption()
574
- .should('be.visible');
575
- let dropdownOptions = ['All or nothing', 'Total score divided between each correct response', 'Partial - score for each correct response', 'Total score divided between each cell', 'Partial - score for each cell'];
576
- dropdownOptions.forEach((option, count) => {
577
- dragAndDropIntoCategoriesPage.scoringSubtypeDropdownListOption()
578
- .eq(count)
579
- .verifyInnerText(option);
580
- });
581
- //Note: Clicking on an option to close the dropdown
582
- cy.get('body')
583
- .click();
584
- commonComponents.dropdownList()
585
- .should('not.exist');
693
+ verifyDraggableOptionPreviewTab: (optionIndex, optionText) => {
694
+ dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
695
+ .within(() => {
696
+ utilities.verifyElementVisibilityState(utilities.getNthElement(draggableOptionContainer.draggableOptionDragIcon(), optionIndex), 'exist');
697
+ utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.draggableOption(), optionIndex), optionText);
698
+ });
586
699
  },
587
700
 
588
701
  /**
589
- * @param {string} optionName option from the scoring subtype dropdown. Should be one of 'All or nothing', 'Total score divided between each correct response', 'Partial - score for each correct response', 'Total score divided between each cell', 'Partial - score for each cell'
590
- * @description select an option from the scoring subtype dropdown
591
- */
592
- selectScoringSubTypeDropdownOption: (optionName) => {
593
- dragAndDropIntoCategoriesPage.scoringSubtypeDropdownListOption(optionName)
594
- .click();
702
+ * @description Verify the number of columns in the preview tab table
703
+ * @param {number} numberOfColumns Number of columns in the preview tab table
704
+ */
705
+ verifyColumnsCountInPreviewTabTable: (numberOfColumns) => {
706
+ dragAndDropIntoCategoriesPage.tableRowContainerPreviewTab()
707
+ .eq(0)
708
+ .within(($element) => {
709
+ utilities.verifyElementCount(cy.wrap($element).find('[class*="DragAndDropMatrixstyles__CellContainer"]'), numberOfColumns);
710
+ });
595
711
  },
596
712
 
597
713
  /**
598
- * @param {string[]} optionsArray the array of options present in the category container
599
- * @param {number} points allocated points present in the points input field
600
- * @description verify the correct answer options and points
714
+ * @description Verify the number of rows in the specify columns and rows section table
715
+ * @param {number} numberOfRows Number of rows in the specify columns and rows section table
601
716
  */
602
- verifyCorrectAnswerOptionsAndPointsInSetCorrectAnswerSection: (optionsArray, points) => {
603
- optionsArray.forEach((responseText, count) => {
604
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
605
- .eq(count)
606
- .verifyInnerText(responseText);
607
- });
608
- scoringSectionBase.pointsInputField()
609
- .should('have.value', points);
717
+ verifyRowsCountInSpecifyColumnsAndRowsTable: (numberOfRows) => {
718
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.specifyColumnsAndRowsTableRowContainer(), numberOfRows);
610
719
  },
611
720
 
612
- setQuestion: () => {
613
- questionInstructionsComponent.questionInstructionsInputField()
614
- .type('Fill the categories with the right answer.', { delay: 0 })
615
- .blur();
616
- dragAndDropIntoCategoriesPage.steps.enterTextInCategoryInputField(0, 'Mammal');
617
- dragAndDropIntoCategoriesPage.steps.enterTextInCategoryInputField(1, 'Not mammal');
618
- dragAndDropIntoCategoriesPage.addRowButton()
619
- .click()
620
- dragAndDropIntoCategoriesPage.steps.enterTextInRowInputField(0, 'Can fly');
621
- dragAndDropIntoCategoriesPage.steps.enterTextInRowInputField(1, 'Cannot fly');
622
- const numberOfClicks = 7;
623
- const addOptionButton = optionsWrapperComponent.addOptionButton();
624
- for (let i = 0; i < numberOfClicks; i++) {
625
- addOptionButton.click();
626
- };
627
- dragAndDropResponseOptions.steps.addInputToOptionsForDragAndDropFields(answerResponseOptions);
721
+ /**
722
+ * @description Verify the number of rows in the specify correct answer section table
723
+ * @param {number} numberOfRows Number of rows in the specify correct answer section table
724
+ */
725
+ verifyRowsCountInSpecifyCorrectAnswerSectionTable: (numberOfRows) => {
726
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.tableRowContainerSpecifyCorrectAnswerSection(), numberOfRows);
628
727
  },
629
728
 
630
729
  /**
631
- * Verifies the numeration of category cells in the question preview.
632
- * @param {Array<string>} numerationArray - An array of expected numeration values for category cells.
633
- * @returns {void}
634
- */
635
- verifyNumerationOfCategoryCellsInQuestionPreview: (numerationArray) => {
636
- numerationArray.forEach((option, count) => {
637
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
638
- .eq(count)
639
- .within(() => {
640
- dragAndDropIntoCategoriesPage.categoryCellNumeration()
641
- .should('have.text', option)
642
- .and('be.visible');
643
- });
644
- });
730
+ * @description Verify the number of rows in the preview tab table
731
+ * @param {number} numberOfRows Number of rows in the preview tab table
732
+ */
733
+ verifyRowsCountInPreviewTabTable: (numberOfRows) => {
734
+ utilities.verifyElementCount(dragAndDropIntoCategoriesPage.tableRowContainerPreviewTab(), numberOfRows);
645
735
  },
646
736
 
647
737
  /**
648
- * @param {string[][]} correctAnswerArray array of correct answer option of a category
649
- * @param {number[]} categoryCellIndexArray numeration of the category cells of the correct answer options
650
- * @description verify the correct answer options of a category and numeration of the category cell
738
+ * @description Add input to column input stepper input field
739
+ * @param {number} numberOfColumns Number of columns for the specify columns and rows section table
651
740
  */
652
- verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount: (correctAnswerArray, categoryCellIndexArray) => {
653
- dragAndDropIntoCategoriesPage.steps.verifyCountOfCorrectAnswerCategoryCells(correctAnswerArray.length);
654
- correctAnswerArray.forEach((correctAnswer, index) => {
655
- dragAndDropIntoCategoriesPage.correctAnswerCategoryCell()
656
- .eq(index)
657
- .within(() => {
658
- dragAndDropIntoCategoriesPage.categoryCellNumeration()
659
- .should('have.text', categoryCellIndexArray[index]);
660
- correctAnswer.forEach((answerOption, optionIndex) => {
661
- dragAndDropIntoCategoriesPage.correctAnswerOption()
662
- .eq(optionIndex)
663
- .should('have.text', answerOption);
664
- });
665
- });
666
- });
741
+ addInputToColumnInputStepper: (numberOfColumns) => {
742
+ dragAndDropIntoCategoriesPage.inputStepperCountInputField()
743
+ .eq(0)
744
+ .type(`{selectAll}${numberOfColumns}`);
667
745
  },
668
746
 
669
747
  /**
670
- * @param {number} categoryCellCount count of correct answer category cells
671
- * @description verify the count of correct answer category cells present in the correct answer section
748
+ * @description Add input to column input stepper input field
749
+ * @param {number} numberOfRows Number of rows for the specify columns and rows section table
672
750
  */
673
- verifyCountOfCorrectAnswerCategoryCells: (categoryCellCount) => {
674
- dragAndDropIntoCategoriesPage.correctAnswerCategoryCell()
675
- .should('have.length', categoryCellCount)
751
+ addInputToRowInputStepper: (numberOfRows) => {
752
+ dragAndDropIntoCategoriesPage.inputStepperCountInputField()
753
+ .eq(1)
754
+ .type(`{selectAll}${numberOfRows}`);
676
755
  },
677
756
 
678
- verifyCorrectAttemptBorder: () => {
679
- dragAndDropIntoCategoriesPage.correctIncorrectAnswerBorder()
680
- .should('have.css', 'border-width', '1px')
681
- .and('have.css', 'border-style', 'solid')
682
- .and('have.css', 'border-color', `${css.color.correctAnswer}`);
757
+ verifyRowInputStepperIncreaseButtonIsDisabled: () => {
758
+ utilities.verifyElementDisabled(dragAndDropIntoCategoriesPage.inputStepperIncreaseButton().eq(1));
683
759
  },
684
760
 
685
- verifyIncorrectAttemptBorder: () => {
686
- dragAndDropIntoCategoriesPage.correctIncorrectAnswerBorder()
687
- .should('have.css', 'border-width', '1px')
688
- .and('have.css', 'border-style', 'solid')
689
- .and('have.css', 'border-color', `${css.color.incorrectAnswer}`);
761
+ verifyColumnInputStepperDecreaseButtonIsDisabled: () => {
762
+ utilities.verifyElementDisabled(dragAndDropIntoCategoriesPage.inputStepperDecreaseButton().eq(0));
690
763
  },
691
764
 
692
- verifyCorrectIncorrectBorderNotVisible: () => {
693
- dragAndDropIntoCategoriesPage.correctIncorrectAnswerBorder()
694
- .should('have.css', 'border-style', 'none');
765
+ checkSetFirstColumnCellsAsHeadingCheckbox: () => {
766
+ dragAndDropIntoCategoriesPage.setFirstColumnCellsAsHeadingCheckbox()
767
+ .click();
768
+ dragAndDropIntoCategoriesPage.setFirstColumnCellsAsHeadingCheckbox()
769
+ .should('have.class', 'Mui-checked');
695
770
  },
696
771
 
697
- /**
698
- * @param {number} optionIndex index of the response option in category cell
699
- * @description verify the incorrect cross-mark icon against the incorrect response
700
- */
701
- verifyIncorrectOptionCrossmarkIcon: (optionIndex) => {
702
- dragAndDropIntoCategoriesPage.previewTabCategoryGrid()
703
- .within(() => {
704
- dragAndDropIntoCategoriesPage.optionsWrapper()
705
- .eq(optionIndex)
706
- .find('.tick-icon-wrapper')
707
- .should('have.class', 'icon-incorrect')
708
- .and('be.visible');
709
- })
772
+ uncheckSetFirstColumnCellsAsHeadingCheckbox: () => {
773
+ dragAndDropIntoCategoriesPage.setFirstColumnCellsAsHeadingCheckbox()
774
+ .click();
775
+ dragAndDropIntoCategoriesPage.steps.verifySetFirstColumnCellsAsHeadingCheckboxIsUnchecked();
710
776
  },
711
777
 
712
- /**
713
- * @param {number} optionIndex index of the response option in category cell
714
- * @description verify the correct cross-mark icon against the correct response
715
- */
716
- verifyCorrectOptionCheckmarkIcon: (optionIndex) => {
717
- dragAndDropIntoCategoriesPage.previewTabCategoryGrid()
718
- .within(() => {
719
- dragAndDropIntoCategoriesPage.optionsWrapper()
720
- .eq(optionIndex)
721
- .find('.tick-icon-wrapper')
722
- .should('have.class', 'icon-correct')
723
- .and('be.visible');
724
- })
778
+ verifySetFirstColumnCellsAsHeadingCheckboxIsUnchecked: () => {
779
+ dragAndDropIntoCategoriesPage.setFirstColumnCellsAsHeadingCheckbox()
780
+ .should('not.have.class', 'Mui-checked');
725
781
  },
726
782
 
727
- /**
728
- * @param {string} labelText correct/incorrect label
729
- * @description verify the correct/incorrect label
730
- */
731
- verifyCorrectIncorrectAnswerLabel: (labelText) => {
732
- let labelIconText = labelText.toLowerCase();
733
- dragAndDropIntoCategoriesPage.correctIncorrectAnswerLabel()
734
- .should('be.visible')
735
- .verifyInnerText(`${labelText} answer`)
736
- .parents('[class*="AnswerStatusWrapper"]')
737
- .find('[class*="AnswerStatusIcon"]')
738
- .should('be.visible')
739
- .should('have.class', `icon-${labelIconText}`);
783
+ checkSetFirstRowCellsAsHeadingCheckbox: () => {
784
+ dragAndDropIntoCategoriesPage.setFirstRowCellsAsHeadingCheckbox()
785
+ .click();
786
+ dragAndDropIntoCategoriesPage.steps.verifySetFirstRowCellsAsHeadingCheckboxIsChecked();
740
787
  },
741
788
 
742
- verifyCorrectAnswerSectionNotVisible: () => {
743
- dragAndDropIntoCategoriesPage.correctAnswerContainer()
744
- .should('not.visible');
789
+ verifySetFirstRowCellsAsHeadingCheckboxIsChecked: () => {
790
+ dragAndDropIntoCategoriesPage.setFirstRowCellsAsHeadingCheckbox()
791
+ .should('have.class', 'Mui-checked');
745
792
  },
746
793
 
747
- verifyQuestionPreviewStateWhenShowCorrectAnswerIsUnchecked: () => {
748
- cy.log('After deselecting Show correct answer checkbox, the question preview should return to the previous state');
749
- previewScoringAndShowCorrectAnswerComponent.steps.uncheckShowCorrectAnswerCheckbox();
750
- autoScoredPreviewBase.correctIcon()
751
- .should('not.exist');
752
- autoScoredPreviewBase.incorrectIcon()
753
- .should('not.exist');
754
- dragAndDropIntoCategoriesPage.correctIncorrectAnswerLabel()
755
- .should('not.exist');
756
- dragAndDropIntoCategoriesPage.steps.verifyCorrectIncorrectBorderNotVisible();
794
+ uncheckSetFirstRowCellsAsHeadingCheckbox: () => {
795
+ dragAndDropIntoCategoriesPage.setFirstRowCellsAsHeadingCheckbox()
796
+ .click();
797
+ dragAndDropIntoCategoriesPage.setFirstRowCellsAsHeadingCheckbox()
798
+ .should('not.have.class', 'Mui-checked');
757
799
  },
758
800
 
759
- resetQuestionPreview: () => {
760
- cy.log('Switching to edit tab and back to preview tab to reset the question preview')
761
- dragAndDropIntoCategoriesPage.steps.switchToEditTab();
762
- dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
801
+ /**
802
+ * @description Verify that cell property is displayed in cell
803
+ * @param {number} cellIndex Index of cell
804
+ */
805
+ verifyCellPropertyMenuButtonIsDisplayedInACell: (cellIndex) => {
806
+ dragAndDropIntoCategoriesPage.tableCellContainer()
807
+ .eq(cellIndex)
808
+ .within(() => {
809
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.editCellPropertyButton(), 'visible');
810
+ });
763
811
  },
764
812
 
765
- verifyCorrectAnswersLabel: () => {
766
- dragAndDropIntoCategoriesPage.correctAnswerContainer()
767
- .should('contain', 'Correct answers:')
768
- .and('be.visible');
813
+ /**
814
+ * @param {number} categoryIndex optionIndex of the category cell in set correct answer section
815
+ * @param {string[]} responseArray array of options set as correct responses in a category cell
816
+ */
817
+ verifyDraggableOptionInDropzoneOfPreviewTab: (dropzoneIndex, responseArray) => {
818
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
819
+ .eq(dropzoneIndex)
820
+ .within(() => {
821
+ responseArray.forEach((response, count) => {
822
+ utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.draggableOption(), count), response);
823
+ });
824
+ });
769
825
  },
770
826
 
771
- verifyCorrectIncorrectCellBorderNotExists: () => {
772
- dragAndDropIntoCategoriesPage.correctIncorrectCellBorder()
773
- .should('not.exist');
774
- dragAndDropIntoCategoriesPage.checkCellIcon()
775
- .should('not.exist');
827
+ /**
828
+ * @description Verifies that the equation text in the Preview tab is correct.
829
+ * @param {number} optionIndex - The index of the option in the Preview tab.
830
+ */
831
+ verifyDraggableOptionWithEquationTextInPreviewTab: (optionIndex) => {
832
+ dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
833
+ .within(() => {
834
+ draggableOptionContainer.draggableOption()
835
+ .eq(optionIndex)
836
+ .find('[role="math"]')
837
+ .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
838
+ .contains(constants.CKEditorInputFieldEnteredEquationText);
839
+ utilities.verifyElementVisibilityState(utilities.getNthElement(draggableOptionContainer.draggableOptionDragIcon(), optionIndex), 'exist');
840
+ });
776
841
  },
777
842
 
778
843
  /**
779
- * @param {string} optionName denotes the text content of the draggable option
780
- * @description click and drop a draggable option into the response container in the set correct answer section
781
- */
782
- clickAndDropDraggableOptionInResponseContainerOfSetCorrectAnswerSection: (optionName) => {
783
- draggableOptionsContainer.draggableOption()
784
- .contains(optionName)
844
+ * @param {number} categoryIndex optionIndex of the dropzone in set correct answer section
845
+ * @param {string[]} responseArray array of options set as correct responses in a dropzone
846
+ * @description Verify the cell properties menu list
847
+ * @param {number} cellIndex Index of cell in specify columns and rows table
848
+ */
849
+ verifyCellPropertyMenuList: (cellIndex) => {
850
+ dragAndDropIntoCategoriesPage.editCellPropertyButton()
851
+ .eq(cellIndex)
852
+ .click();
853
+ cellPropertyMenuOptions.forEach((cellProperty, index) => {
854
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.editCellPropertyListOption().eq(index), `${cellProperty}`);
855
+ });
856
+ //Close the list
857
+ dragAndDropIntoCategoriesPage.editCellPropertyListOption()
858
+ .eq(0)
785
859
  .click();
786
- draggableOptionsContainer.setCorrectAnswerDraggableOptionsWrapper('drag and drop into categories')
787
- .find('[class*="DroppableWrapper"]')
788
- .click({ force: true });
789
860
  },
790
861
 
791
862
  /**
792
- * @param {string} optionName denotes the text content of the draggable option
793
- * @description click and drop a draggable option into the grouped response container in the set correct answer section
794
- */
795
- clickAndDropDraggableOptionInResponseContainerOfPreviewTab: (optionName) => {
796
- dragAndDropIntoCategoriesPage.previewTabCategoryGrid()
863
+ * @description Verify the text in heading cell input field
864
+ * @param {number} cellIndex Index of cell in specify columns and rows table
865
+ * @param {string} text Text to be verified
866
+ */
867
+ verifyHeadingCellTypeInputFieldText: (cellIndex, text) => {
868
+ dragAndDropIntoCategoriesPage.tableCellContainer()
869
+ .eq(cellIndex)
797
870
  .within(() => {
798
- draggableOptionsContainer.draggableOption()
799
- .contains(optionName)
800
- .click();
871
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.cellHeadingTextArea(), `${text}`);
801
872
  });
802
- draggableOptionsContainer.previewTabDraggableOptionsWrapper('drag and drop into categories')
803
- .find('[class*="DroppableWrapper"]')
804
- .click({ force: true });
805
873
  },
806
874
 
807
875
  /**
808
- * @param {string} optionName denotes the text content of the draggable option
809
- * @description click and drop a draggable option into the grouped response container in the set correct answer section
810
- */
811
- clickAndDropDraggableOptionInGroupedResponseContainerOfSetCorrectAnswerSection: (optionName) => {
812
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryGrid()
876
+ * @description Verify the text in subheading cell input field
877
+ * @param {number} cellIndex Index of cell in specify columns and rows table
878
+ * @param {string} text Text to be verified
879
+ */
880
+ verifySubheadingCellTypeInputFieldText: (cellIndex, text) => {
881
+ dragAndDropIntoCategoriesPage.tableCellContainer()
882
+ .eq(cellIndex)
813
883
  .within(() => {
814
- draggableOptionsContainer.draggableOption()
815
- .contains(optionName)
816
- .click();
884
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.cellSubheadingTextArea(), `${text}`);
817
885
  });
818
- draggableOptionsContainer.setCorrectAnswerDraggableOptionsWrapper('drag and drop into categories')
819
- .find('.item-list')
820
- .eq(0)
821
- .click({ force: true });
822
886
  },
823
887
 
824
888
  /**
825
- * @param {string} optionName denotes the text content of the draggable option
826
- * @description click and drop a draggable option into the grouped response container in the set correct answer section
827
- */
828
- clickAndDropDraggableOptionInGroupedResponseContainerOfPreviewTab: (optionName) => {
829
- dragAndDropIntoCategoriesPage.previewTabCategoryGrid()
889
+ * @param {number} categoryIndex optionIndex of the category cell in set correct answer section
890
+ * @param {string[]} responseArray array of options set as correct responses in a category cell
891
+ */
892
+ verifyDraggableOptionInDropzoneOfPreviewTab: (dropzoneIndex, responseArray) => {
893
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
894
+ .eq(dropzoneIndex)
830
895
  .within(() => {
831
- draggableOptionsContainer.draggableOption()
832
- .contains(optionName)
833
- .click();
896
+ responseArray.forEach((response, count) => {
897
+ utilities.verifyTextContent(utilities.getNthElement(draggableOptionContainer.draggableOption(), count), response);
898
+ });
834
899
  });
835
- draggableOptionsContainer.previewTabDraggableOptionsWrapper('drag and drop into categories')
836
- .find('.item-list')
837
- .eq(0)
838
- .click({ force: true });
839
900
  },
840
901
 
841
- verifyCorrectCellCheckmarkIcon: (categoryCellIndexArray) => {
842
- categoryCellIndexArray.forEach((cellIndex) => {
843
- dragAndDropIntoCategoriesPage.correctIncorrectCellBorder()
844
- .eq(cellIndex)
845
- .within(() => {
846
- dragAndDropIntoCategoriesPage.checkCellIcon()
847
- .should('have.class', 'icon-correct')
848
- .and('be.visible');
849
- });
850
- });
902
+ /**
903
+ * @description Verify the text in text type cell input field
904
+ * @param {number} cellIndex Index of cell in specify columns and rows table
905
+ * @param {string} text Text to be verified
906
+ */
907
+ verifyTextCellTypeInputFieldText: (cellIndex, text) => {
908
+ dragAndDropIntoCategoriesPage.tableCellContainer()
909
+ .eq(cellIndex)
910
+ .within(() => {
911
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.cellTextTextArea(), `${text}`);
912
+ });
851
913
  },
852
914
 
853
- verifyIncorrectCellCrossmarkIcon: (categoryCellIndexArray) => {
854
- categoryCellIndexArray.forEach((cellIndex) => {
855
- dragAndDropIntoCategoriesPage.correctIncorrectCellBorder()
856
- .eq(cellIndex)
857
- .within(() => {
858
- dragAndDropIntoCategoriesPage.checkCellIcon()
859
- .should('have.class', 'icon-incorrect')
860
- .and('be.visible');
861
- });
862
- });
915
+ /**
916
+ * Verify the text content of a table cell in the preview tab.
917
+ * @param { number } cellIndex - The index of the table cell to verify.
918
+ * @param { string } textContent - The expected text content of the table cell.
919
+ */
920
+ verifyTextContentOfTableCellPreviewTab: (cellIndex, textContent) => {
921
+ utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerPreviewTab(), cellIndex), textContent);
863
922
  },
864
923
 
865
- verifyOptionsErrorMessageIsDisplayed: (index) => {
866
- optionsWrapperComponent.optionsSectionWrapper()
924
+ /**
925
+ * Verify the text content of a table cell in the preview tab.
926
+ * @param {number} cellIndex - The index of the table cell to verify.
927
+ * @param {string} textContent - The expected text content of the table cell.
928
+ */
929
+ verifyTextContentOfTableCellSpecifyCorrectAnswer: (cellIndex, textContent) => {
930
+ utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), cellIndex), textContent);
931
+ },
932
+
933
+ /**
934
+ * Clicks on the specified draggable option in the category grid preview tab
935
+ * and drops it onto the specified dropzone in the same tab.
936
+ * @param {string} optionText - The text content of the draggable option to be clicked.
937
+ * @param {number} dropzoneIndex - The index of the dropzone to drop the option into.
938
+ * @example - clickAndDropOptionFromOneDropzoneToOtherPreviewTab('Bat', 0);
939
+ */
940
+ clickAndDropOptionFromOneDropzoneToOtherPreviewTab: (optionText, dropzoneIndex) => {
941
+ dragAndDropIntoCategoriesPage.categoryGridPreviewTab()
867
942
  .within(() => {
868
- optionsWrapperComponent.optionWrapper()
869
- .eq(index)
870
- .within(() => {
871
- commonComponents.errorMessage()
872
- .should('have.text', 'Error: Option is required.');
873
- });
943
+ draggableOptionContainer.draggableOption()
944
+ .contains(optionText)
945
+ .click();
874
946
  });
947
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
948
+ .eq(dropzoneIndex)
949
+ .click({ force: true });
875
950
  },
876
951
 
877
- verifyOptionsErrorMessageIsNotDisplayed: (index) => {
878
- optionsWrapperComponent.optionsSectionWrapper()
952
+ /**
953
+ * @description Verify the text in subheading cell input field
954
+ * @param {number} cellIndex Index of cell in specify columns and rows table
955
+ * @param {string} text Text to be verified
956
+ */
957
+ verifySubheadingCellTypeInputFieldText: (cellIndex, text) => {
958
+ dragAndDropIntoCategoriesPage.tableCellContainer()
959
+ .eq(cellIndex)
879
960
  .within(() => {
880
- optionsWrapperComponent.optionWrapper()
881
- .eq(index)
882
- .within(() => {
883
- commonComponents.errorMessage()
884
- .should('not.exist');
885
- });
961
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.cellSubheadingTextArea(), `${text}`);
886
962
  });
887
963
  },
888
964
 
889
- setCorrectTabAnswerOptions: () => {
890
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfSetCorrectAnswerSection('Bat', 0);
891
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfSetCorrectAnswerSection('Eagle', 1);
892
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfSetCorrectAnswerSection('Parrot', 1);
893
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfSetCorrectAnswerSection('Platypus', 2);
894
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfSetCorrectAnswerSection('Whale', 2);
895
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfSetCorrectAnswerSection('Ostrich', 3);
965
+ /**
966
+ * @description Verify the text in text type cell input field
967
+ * @param {number} cellIndex Index of cell in specify columns and rows table
968
+ * @param {string} text Text to be verified
969
+ */
970
+ verifyTextCellTypeInputFieldText: (cellIndex, text) => {
971
+ dragAndDropIntoCategoriesPage.tableCellContainer()
972
+ .eq(cellIndex)
973
+ .within(() => {
974
+ utilities.verifyTextContent(dragAndDropIntoCategoriesPage.cellTextTextArea(), `${text}`);
975
+ });
896
976
  },
897
977
 
898
- verifyEmptyStateOfCategoryCellInSetCorrectAnswerSection: (cellIndex) => {
899
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
978
+ /**
979
+ * @description Verify the placeholder in text type cell input field
980
+ * @param {number} cellIndex Index of cell in specify columns and rows table
981
+ * @param {string} placeholder placeholder text to be verified
982
+ */
983
+ verifyTextCellTypeInputFieldPlaceholderText: (cellIndex, placeholder) => {
984
+ dragAndDropIntoCategoriesPage.tableCellContainer()
900
985
  .eq(cellIndex)
901
- .should('have.text', '');
986
+ .within(() => {
987
+ dragAndDropIntoCategoriesPage.cellTextTextArea()
988
+ .should('have.attr', 'placeholder', `${placeholder}`)
989
+ });
902
990
  },
903
991
 
904
- verifyEmptyStateOfCategoryCellInPreviewTab: (cellIndex) => {
905
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
992
+ /**
993
+ * @description Verify the text displayed in specify correct answer table cell
994
+ * @param {number} cellIndex Index of cell in specify correct answer table
995
+ * @param {*} cellLabel text to be verified in cell
996
+ */
997
+ verifyCellLabelInSpecifyCorrectAnswer: (cellIndex, cellLabel) => {
998
+ dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection()
906
999
  .eq(cellIndex)
907
- .should('have.text', '');
1000
+ .within(() => {
1001
+ utilities.verifyInnerText(dragAndDropIntoCategoriesPage.tableCellLabel(), `${cellLabel}`);
1002
+ });
908
1003
  },
909
1004
 
910
1005
  /**
911
- * @param {number} categoryIndex index of the category cell in preview tab
912
- * @param {string[]} responseArray array of options set as correct responses in a category cell
1006
+ * @description Verify the text displayed in preview tab table cell
1007
+ * @param {number} cellIndex Index of cell in preview tab table
1008
+ * @param {*} cellLabel text to be verified in cell
913
1009
  */
914
- verifyDraggableOptionInCategoryCellOfPreviewTab: (categoryIndex, responseArray) => {
915
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
916
- .eq(categoryIndex)
1010
+ verifyCellLabelInPreviewTabTable: (cellIndex, cellLabel) => {
1011
+ dragAndDropIntoCategoriesPage.cellContainerPreviewTab()
1012
+ .eq(cellIndex)
917
1013
  .within(() => {
918
- responseArray.forEach((response, count) => {
919
- draggableOptionsContainer.draggableOption()
920
- .eq(count)
921
- .verifyInnerText(response);
922
- });
1014
+ utilities.verifyInnerText(dragAndDropIntoCategoriesPage.tableCellLabel(), `${cellLabel}`);
923
1015
  });
924
1016
  },
925
1017
 
926
- setQuestionForGroupedResponseOptions: () => {
927
- let animals = [['Bat', 'Platypus', 'Panda', 'Zebra'],
928
- ['Peacock', 'Falcon', 'Eagle', 'Tiger'],
929
- ['Parrot', 'Lion', 'Whale', 'Elephant'],
930
- ['Giraffe', 'Kangaroo', 'Ostrich', 'Flying squirrel']
931
- ];
932
- let groupTitles = ['Group A', 'Group B', 'Group C', 'Group D'];
933
- questionInstructionsComponent.questionInstructionsInputField()
934
- .type('Fill the categories with the right answer.', { delay: 0 })
935
- .blur();
936
- dragAndDropIntoCategoriesPage.steps.enterTextInCategoryInputField(0, 'Mammal');
937
- dragAndDropIntoCategoriesPage.steps.enterTextInCategoryInputField(1, 'Not mammal');
938
- dragAndDropIntoCategoriesPage.addRowButton()
939
- .click()
940
- dragAndDropIntoCategoriesPage.steps.enterTextInRowInputField(0, 'Can fly');
941
- dragAndDropIntoCategoriesPage.steps.enterTextInRowInputField(1, 'Cannot fly');
942
- dragAndDropResponseOptions.steps.selectResponseOptionsLayout('Grouped')
943
- dragAndDropResponseOptions.steps.addGroupTitle(0, groupTitles[0]);
944
- optionsWrapperComponent.addOptionButton()
1018
+ clickOnLeftArrowNavigationButton: () => {
1019
+ dragAndDropIntoCategoriesPage.leftArrowNavigationButton()
945
1020
  .click();
946
- optionsWrapperComponent.addOptionButton()
1021
+ },
1022
+ clickOnLeftArrowNavigationButtonSpecifyCorrectAnswerSection: () => {
1023
+ dragAndDropIntoCategoriesPage.leftArrowNavigationButtonSpecifyCorrectAnswerSection()
947
1024
  .click();
948
- dragAndDropResponseOptions.steps.addInputToOptionsForGroupedResponseLayout(0, animals[0]);
949
- dragAndDropResponseOptions.steps.addGroupWithTitleAndOptionsInResponseOptionsSection(1, groupTitles[1], animals[1]);
950
- dragAndDropResponseOptions.steps.addGroupWithTitleAndOptionsInResponseOptionsSection(2, groupTitles[2], animals[2]);
951
- dragAndDropResponseOptions.steps.addGroupWithTitleAndOptionsInResponseOptionsSection(3, groupTitles[3], animals[3]);
952
1025
  },
953
1026
 
954
- verifyInactiveStateOfAllCategoryCellsInSetCorrectAnswerSection: () => {
955
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryGrid()
956
- .should('not.have.class', 'active-area-on-tap');
1027
+ clickOnRightArrowNavigationButton: () => {
1028
+ dragAndDropIntoCategoriesPage.rightArrowNavigationButton()
1029
+ .click();
957
1030
  },
958
1031
 
959
- verifyActiveStateOfAllCategoryCellsInSetCorrectAnswerSection: () => {
960
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryGrid()
961
- .should('have.class', 'active-area-on-tap');
1032
+ clickOnRightArrowNavigationButtonSpecifyCorrectAnswerSection: () => {
1033
+ dragAndDropIntoCategoriesPage.rightArrowNavigationButtonSpecifyCorrectAnswerSection()
1034
+ .click();
962
1035
  },
963
1036
 
964
- verifyInactiveStateOfAllCategoryCellsInPreviewTab: () => {
965
- dragAndDropIntoCategoriesPage.previewTabCategoryGrid()
966
- .should('not.have.class', 'active-area-on-tap');
1037
+ /**
1038
+ * @description Verify column is visible in the specify columns and rows section table
1039
+ * @param {number} columnIndex Index of the column
1040
+ */
1041
+ verifyColumnIsVisibleInSpecifyColumnsAndRowsTable: (columnIndex) => {
1042
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.tableCellContainer().eq(columnIndex), 'visible');
967
1043
  },
968
1044
 
969
- verifyActiveStateOfAllCategoryCellsInPreviewTab: () => {
970
- dragAndDropIntoCategoriesPage.previewTabCategoryGrid()
971
- .should('have.class', 'active-area-on-tap');
1045
+ /**
1046
+ * @description Verify column is visible in the specify correct answers section table
1047
+ * @param {number} columnIndex Index of the column
1048
+ */
1049
+ verifyColumnIsVisibleInTableSpecifyCorrectAnswer: (columnIndex) => {
1050
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection().eq(columnIndex), 'visible');
972
1051
  },
973
1052
 
974
1053
  /**
975
- * @param {number} responseAreaIndex Index of the stem response area in set correct answer section
976
- * @description Verify drag handle is not visible in filled category cell in set correct answer section
1054
+ * @description Verify column is not visible in the specify columns and rows section table
1055
+ * @param {number} columnIndex Index of the column
977
1056
  */
978
- verifyDragHandleNotVisibleInFilledCategoryCellOfSetCorrectAnswerSection: (responseAreaIndex) => {
979
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
980
- .eq(responseAreaIndex)
981
- .within(() => {
982
- draggableOptionsContainer.draggableOptionDragIcon()
983
- .should('not.be.visible');
984
- });
1057
+ verifyColumnIsNotVisibleInSpecifyColumnsAndRowsTable: (columnIndex) => {
1058
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.tableCellContainer().eq(columnIndex), 'hidden');
985
1059
  },
986
1060
 
987
1061
  /**
988
- * @param {number} responseAreaIndex Index of the stem response area in set correct answer section
989
- * @description Verify drag handle is not visible in filled category cell in preview tab
1062
+ * @description Verify column is not visible in the specify correct answers section table
1063
+ * @param {number} columnIndex Index of the column
990
1064
  */
991
- verifyDragHandleNotVisibleInFilledCategoryCellOfPreviewTab: (responseAreaIndex) => {
992
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
993
- .eq(responseAreaIndex)
994
- .within(() => {
995
- draggableOptionsContainer.draggableOptionDragIcon()
996
- .should('not.be.visible');
997
- });
1065
+ verifyColumnIsNotVisibleInTableSpecifyCorrectAnswer: (columnIndex) => {
1066
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection().eq(columnIndex), 'hidden');
998
1067
  },
999
1068
 
1000
- /**
1001
- * @param {string} optionName denotes the text content of the draggable option
1002
- * @description click on a draggable option present in the category cell of set correct answer section
1003
- */
1004
- clickOnDraggableOptionInCategoryCellOfSetCorrectAnswerSection: (optionName) => {
1005
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryGrid()
1069
+ verifyColumnInputStepperIncreaseDecreaseButton: () => {
1070
+ dragAndDropIntoCategoriesPage.columnsInputStepperWrapper()
1006
1071
  .within(() => {
1007
- draggableOptionsContainer.draggableOption()
1008
- .contains(optionName)
1009
- .click();
1072
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.inputStepperIncreaseButton(), 'visible');
1073
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.inputStepperDecreaseButton(), 'visible');
1010
1074
  });
1011
1075
  },
1012
1076
 
1013
- verifyPleaseSetACorrectAnswerErrorMessage: () => {
1014
- commonComponents.errorMessage()
1015
- .verifyInnerText('Error: Please set a correct answer.')
1016
- .should('be.visible');
1017
- },
1018
-
1019
- clickOnCategoryCellInCategoryCellOfSetCorrectAnswerSection: (categoryIndex) => {
1020
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
1021
- .eq(categoryIndex)
1022
- .click({ force: true });
1023
- },
1024
-
1025
- clickOnCategoryCellInCategoryCellOfPreviewTab: (categoryIndex) => {
1026
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
1027
- .eq(categoryIndex)
1028
- .click({ force: true });
1077
+ verifyRowInputStepperIncreaseDecreaseButton: () => {
1078
+ dragAndDropIntoCategoriesPage.rowsInputStepperWrapper()
1079
+ .within(() => {
1080
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.inputStepperIncreaseButton(), 'visible');
1081
+ utilities.verifyElementVisibilityState(dragAndDropIntoCategoriesPage.inputStepperDecreaseButton(), 'visible');
1082
+ });
1029
1083
  },
1030
1084
 
1031
1085
  /**
1032
- * @param {string} optionName denotes the text content of the draggable option
1033
- * @description click on a draggable option present in the category cell of preview tab
1086
+ * @param {("All or nothing" | "Per dropzone" | "Per correct option")} scoringSubtype option from the scoring subtype radio buttons
1087
+ * @description this function selects scoring subtype from the scoring section
1034
1088
  */
1035
- clickOnDraggableOptionInCategoryCellOfPreviewTab: (optionName) => {
1036
- dragAndDropIntoCategoriesPage.previewTabCategoryGrid()
1037
- .within(() => {
1038
- draggableOptionsContainer.draggableOption()
1039
- .contains(optionName)
1089
+ selectAutoScoredScoringSubtype: (scoringSubtype) => {
1090
+ switch (scoringSubtype.toLowerCase()) {
1091
+ case 'all or nothing':
1092
+ autoScoredScoringSectionMultiResponseType.allOrNothingRadioButton()
1040
1093
  .click();
1041
- });
1094
+ break;
1095
+ case 'per dropzone':
1096
+ dragAndDropIntoCategoriesPage.perDropzoneRadioButton()
1097
+ .click();
1098
+ break;
1099
+ case 'per correct option':
1100
+ dragAndDropIntoCategoriesPage.perCorrectOptionRadioButton()
1101
+ .click();
1102
+ break;
1103
+ default:
1104
+ throw new Error(`Invalid auto scored scoring subtype: ${scoringSubtype}`);
1105
+ }
1042
1106
  },
1043
1107
 
1044
1108
  /**
1045
- * Verifies the numeration of correct answer container category cells.
1046
- * @param {Array<string>} categoryCellIndexArray - An array of expected numeration values for category cells.
1109
+ * Verifies correct and incorrect icons for drop zones based on the provided mapping.
1110
+ * @param {Object} statusDropzoneIndexMapping - An object where keys represent the status ('correct' or 'incorrect') and values are drop zone indices.
1111
+ * @example - verifyCorrectIncorrectIconsForDropzone({'correct': 1, incorrect': 3});
1047
1112
  * @returns {void}
1048
1113
  */
1049
- verifyCorrectAnswerContainerNumeration: (categoryCellIndexArray) => {
1050
- categoryCellIndexArray.forEach((categoryCellNumeration, index) => {
1051
- dragAndDropIntoCategoriesPage.correctAnswerCategoryCell()
1052
- .eq(index)
1114
+ verifyCorrectIncorrectIconsForDropzone: (statusDropzoneIndexMapping) => {
1115
+ Object.entries(statusDropzoneIndexMapping).forEach(([status, dropzoneIndex]) => {
1116
+ dragAndDropIntoCategoriesPage.dropzoneCellNumeration()
1117
+ .eq(dropzoneIndex)
1053
1118
  .within(() => {
1054
- dragAndDropIntoCategoriesPage.categoryCellNumeration()
1055
- .should('have.text', `${categoryCellNumeration}`);
1119
+ const iconElement = (status === 'correct') ? autoScoredScoringPreviewTab.correctIcon() : autoScoredScoringPreviewTab.incorrectIcon();
1120
+ utilities.verifyElementVisibilityState(iconElement, 'visible');
1056
1121
  });
1057
1122
  });
1058
1123
  },
1059
1124
 
1060
1125
  /**
1061
- * Enters text into the row title width input field.
1062
- * @param {string} text - The text to be entered into the row input field.
1063
- * @returns {void}
1126
+ * @param {string} optionText aria label of the option to be selected
1127
+ * @description this function selects an option from penalty scoring dropdown and verifies its disability state
1064
1128
  */
1065
- enterTextInRowTitleWidthInputField: (text) => {
1066
- dragAndDropIntoCategoriesPage.rowTitleWidthInputField()
1067
- .type(text)
1068
- .blur();
1129
+ verifyPenaltyScoringDropdownOptionIsDisabled: (optionText) => {
1130
+ autoScoredScoringSectionMultiResponseType.penaltyScoringDropdownListOptions(optionText)
1131
+ .should('have.attr', 'aria-disabled', 'true');
1069
1132
  },
1070
1133
 
1071
- clearTextInRowTitleWidthInputField: () => {
1072
- dragAndDropIntoCategoriesPage.rowTitleWidthInputField()
1073
- .clear();
1134
+ /**
1135
+ * @param {string} optionText aria label of the option to be selected
1136
+ * @description this function selects an option from penalty scoring dropdown and verifies its enabled state
1137
+ */
1138
+ verifyPenaltyScoringDropdownOptionIsEnabled: (optionText) => {
1139
+ autoScoredScoringSectionMultiResponseType.penaltyScoringDropdownListOptions(optionText)
1140
+ .should('have.attr', 'aria-disabled', 'false');
1074
1141
  },
1075
1142
 
1076
1143
  /**
1077
- * Verifies the value of the row title width input field.
1078
- * @param {string} width - The expected width value to compare against.
1079
- * @returns {void}
1144
+ * @param {number} points value of total points
1145
+ * @description this function verifies total points value when pre dropzone is selected
1080
1146
  */
1081
- verifyRowTitleWidthInputFieldValue: (width) => {
1082
- dragAndDropIntoCategoriesPage.rowTitleWidthInputField()
1083
- .should('have.attr', 'value', width)
1147
+ verifyTotalPointsValue: (points) => {
1148
+ utilities.verifyInnerText(dragAndDropIntoCategoriesPage.totalPointsValue(), points)
1084
1149
  },
1085
1150
 
1086
- /**
1087
- * Enters text into the row minimum height input field.
1088
- * @param {string} text - The text to be entered into the row minimum height input field.
1089
- * @returns {void}
1090
- */
1091
- enterTextInRowMinHeightInputField: (text) => {
1092
- dragAndDropIntoCategoriesPage.rowMinHeightInputField()
1093
- .type(text)
1094
- .blur();
1151
+ addRow: () => {
1152
+ dragAndDropIntoCategoriesPage.addRowButton()
1153
+ .click();
1095
1154
  },
1096
1155
 
1097
- clearTextInRowMinHeightInputField: () => {
1098
- dragAndDropIntoCategoriesPage.rowMinHeightInputField()
1099
- .clear();
1156
+ addColumn: () => {
1157
+ dragAndDropIntoCategoriesPage.addColumnButton()
1158
+ .click();
1100
1159
  },
1101
1160
 
1102
- /**
1103
- * Verifies the value of the row minimum height input field.
1104
- * @param {string} value - The expected row minimum height value to compare against.
1105
- * @returns {void}
1161
+ deleteRow: () => {
1162
+ dragAndDropIntoCategoriesPage.deleteRowButton()
1163
+ .click();
1164
+ },
1165
+
1166
+ deleteColumn: () => {
1167
+ dragAndDropIntoCategoriesPage.deleteColumnButton()
1168
+ .click();
1169
+ },
1170
+
1171
+ verifyPerCorrectOptionRadioButtonIsUnchecked: () => {
1172
+ dragAndDropIntoCategoriesPage.perCorrectOptionRadioButton()
1173
+ .should('not.be.checked');
1174
+ },
1175
+
1176
+ verifyPerDropzoneRadioButtonIsUnchecked: () => {
1177
+ dragAndDropIntoCategoriesPage.perDropzoneRadioButton()
1178
+ .should('not.be.checked');
1179
+ },
1180
+
1181
+ /*
1182
+ * Allots penalty points for each incorrect dropzone by setting the specified points in the corresponding input field.
1183
+ * @param {number} points - The penalty points to be allotted for each incorrect dropzone.
1106
1184
  */
1107
- verifyRowMinHeightInputFieldValue: (value) => {
1108
- dragAndDropIntoCategoriesPage.rowMinHeightInputField()
1109
- .should('have.attr', 'value', value)
1185
+ allotPenaltyPointsForEachIncorrectDropzone: (points) => {
1186
+ dragAndDropIntoCategoriesPage.penaltyPointsForIncorrectDropzoneInputField()
1187
+ .clear()
1188
+ .type(points)
1189
+ .should('have.value', points)
1110
1190
  },
1111
1191
 
1112
1192
  /**
1113
- * Enters text into the row heading input field.
1114
- * @param {string} text - The text to be entered into the row heading input field.
1115
- * @returns {void}
1193
+ * @description Verify penalty points for each incorrect dropzone input field value.
1194
+ * @param {number} points - The penalty points for each incorrect dropzone input field
1116
1195
  */
1117
- enterTextInRowHeadingInputField: (text) => {
1118
- dragAndDropIntoCategoriesPage.rowHeadingInputField()
1119
- .type(text, { delay: 0 })
1120
- .blur();
1196
+ verifyPenaltyPointsForEachIncorrectDropzone: (points) => {
1197
+ dragAndDropIntoCategoriesPage.penaltyPointsForIncorrectDropzoneInputField()
1198
+ .should('have.value', points)
1121
1199
  },
1122
1200
 
1123
- clearTextInRowHeadingInputField: () => {
1124
- dragAndDropIntoCategoriesPage.rowHeadingInputField()
1125
- .clear();
1201
+ /**
1202
+ * Allots penalty points for each incorrect option by setting the specified points in the corresponding input field.
1203
+ * @param {number} points - The penalty points to be allotted for each incorrect option.
1204
+ */
1205
+ allotPenaltyPointsForEachIncorrectOption: (points) => {
1206
+ dragAndDropIntoCategoriesPage.penaltyPointsForIncorrectOptionInputField()
1207
+ .clear()
1208
+ .type(points)
1209
+ .should('have.value', points)
1126
1210
  },
1127
1211
 
1128
1212
  /**
1129
- * Verifies the value of the row heading input field.
1130
- * @param {string} value - The expected row heading value to compare against.
1131
- * @returns {void}
1132
- */
1133
- verifyRowHeadingInputFieldValue: (value) => {
1134
- dragAndDropIntoCategoriesPage.rowHeadingInputField()
1135
- .should('have.attr', 'value', value)
1213
+ * @param {number} responseAreaIndex Index of the stem response area in set correct answer section
1214
+ * @description Verify drag handle is not visible in filled category cell in preview tab
1215
+ */
1216
+ verifyDragHandleNotVisibleInFilledDropzoneCellOfSpecifyCorrectAnswerSection: (responseAreaIndex) => {
1217
+ dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection()
1218
+ .eq(responseAreaIndex)
1219
+ .within(() => {
1220
+ draggableOptionContainer.draggableOptionDragIcon()
1221
+ .should('not.be.visible');
1222
+ });
1136
1223
  },
1137
1224
 
1138
1225
  /**
1139
- * Verifies the width of the row title in the 'Set correct answer' section.
1140
- * @param {number} expectedWidth - The expected width value to compare against.
1141
- * @returns {void}
1142
- */
1143
- verifyRowTitleWidthSetCorrectAnswerSection: (expectedWidth) => {
1144
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionRowTitle()
1145
- .parents('[class*="RowHeaderCellContainer"]')
1146
- .should(($element) => {
1147
- const width = $element.width();
1148
- expect(width).to.be.equal(expectedWidth);
1226
+ * @param {number} responseAreaIndex Index of the stem response area in preview tab
1227
+ * @description Verify drag handle is not visible in filled category cell in preview tab
1228
+ */
1229
+ verifyDragHandleNotVisibleInFilledDropzoneCellOfPreviewTab: (responseAreaIndex) => {
1230
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
1231
+ .eq(responseAreaIndex)
1232
+ .within(() => {
1233
+ draggableOptionContainer.draggableOptionDragIcon()
1234
+ .should('not.be.visible');
1149
1235
  });
1150
1236
  },
1151
1237
 
1152
1238
  /**
1153
- * Verifies the width of the row title in the 'Preview tab'.
1154
- * @param {number} expectedWidth - The expected width value to compare against.
1155
- * @returns {void}
1156
- */
1157
- verifyRowTitleWidthPreviewTab: (expectedWidth) => {
1158
- dragAndDropIntoCategoriesPage.previewTabRowTitle()
1159
- .parents('[class*="RowHeaderCellContainer"]')
1160
- .should(($element) => {
1161
- const width = $element.width();
1162
- expect(width).to.be.equal(expectedWidth);
1239
+ * @param {number} categoryIndex index of the category cell in set correct answer section
1240
+ * @param {string[]} responseArray array of options set as correct responses in a category cell
1241
+ */
1242
+ verifyDraggableOptionInDropzoneCellOfSpecifyCorrectAnswerSection: (categoryIndex, responseArray) => {
1243
+ dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection()
1244
+ .eq(categoryIndex)
1245
+ .within(() => {
1246
+ responseArray.forEach((response, count) => {
1247
+ draggableOptionContainer.draggableOption()
1248
+ .eq(count)
1249
+ .verifyInnerText(response);
1250
+ });
1163
1251
  });
1164
1252
  },
1165
1253
 
1166
1254
  /**
1167
- * Verifies the minimum height of a row in the 'Set correct answer' section.
1168
- * @param {number} expectedMinHeight - The expected minimum height value to compare against.
1169
- * @returns {void}
1255
+ *
1256
+ * @param { number } points - The penalty points for each incorrect option input field
1170
1257
  */
1171
- verifyRowMinHeightSetCorrectAnswerSection: (expectedMinHeight) => {
1172
- dragAndDropIntoCategoriesPage.setCorrectAnswerSectionCategoryCell()
1173
- .parents('[class*="RowContainer"]')
1174
- .should(($element) => {
1175
- const minHeight = parseFloat($element.css('min-height'));
1176
- expect(minHeight).to.be.equal(expectedMinHeight);
1258
+ verifyPenaltyPointsForEachIncorrectOption: (points) => {
1259
+ dragAndDropIntoCategoriesPage.penaltyPointsForIncorrectOptionInputField()
1260
+ .should('have.value', points)
1261
+ },
1262
+
1263
+ clickAndDropOptionFromDropzoneToOptionContainerSpecifyCorrectAnswerSection: (optionText) => {
1264
+ dragAndDropIntoCategoriesPage.categoryGridSpecifyCorrectAnswerSection()
1265
+ .within(() => {
1266
+ draggableOptionContainer.draggableOption()
1267
+ .contains(optionText)
1268
+ .click();
1177
1269
  });
1270
+ draggableOptionContainer.optionContainerItemListSpecifyCorrectAnswerSection().first()
1271
+ .click({ force: true });
1272
+ },
1273
+
1274
+ clickAndDropOptionFromDropzoneToOptionContainerPreviewTab: (optionText) => {
1275
+ dragAndDropIntoCategoriesPage.categoryGridPreviewTab()
1276
+ .within(() => {
1277
+ draggableOptionContainer.draggableOption()
1278
+ .contains(optionText)
1279
+ .click();
1280
+ });
1281
+ draggableOptionContainer.optionContainerItemListPreviewTab().first()
1282
+ .click({ force: true });
1178
1283
  },
1179
1284
 
1180
1285
  /**
1181
- * Verifies the minimum height of a row in the 'Preview tab'.
1182
- * @param {number} expectedMinHeight - The expected minimum height value to compare against.
1183
- * @returns {void}
1286
+ * @param {number} categoryIndex optionIndex of the dropzone in set correct answer section
1287
+ * @param {string[]} responseArray array of options set as correct responses in a dropzone
1184
1288
  */
1185
- verifyRowMinHeightPreviewTab: (expectedMinHeight) => {
1186
- dragAndDropIntoCategoriesPage.previewTabCategoryCell()
1187
- .parents('[class*="RowContainer"]')
1188
- .should(($element) => {
1189
- const minHeight = parseFloat($element.css('min-height'));
1190
- expect(minHeight).to.be.equal(expectedMinHeight);
1289
+ verifyDraggableOptionInDropzoneOfSpecifyCorrectAnswerSection: (dropzoneIndex, responseArray) => {
1290
+ dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection()
1291
+ .eq(dropzoneIndex)
1292
+ .within(() => {
1293
+ responseArray.forEach((response, count) => {
1294
+ utilities.verifyTextContent(utilities.getNthElement(draggableOptionContainer.draggableOption(), count), response);
1295
+ });
1191
1296
  });
1192
1297
  },
1193
1298
 
1194
1299
  /**
1195
- * Sets the maximum response value per cell in max response per cell input field
1196
- * @param {string} value - The value to set as the maximum response per cell.
1197
- * @returns {void}
1198
- */
1199
- setMaxResponsePerCell: (value) => {
1200
- dragAndDropIntoCategoriesPage.maxResponsePerCellInputField()
1201
- .type(value, { delay: 0 })
1202
- .blur();
1300
+ * @param {string} optionName denotes the text content of the draggable option
1301
+ * @param {number} dropzoneIndex - The index of the dropzone.
1302
+ * @description click on a draggable option present in the category cell of specify correct answer section
1303
+ */
1304
+ clickOnDraggableOptionInDropzoneCellOfSpecifyCorrectAnswerSection: (optionName, dropzoneIndex) => {
1305
+ dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection()
1306
+ .eq(dropzoneIndex)
1307
+ .within(() => {
1308
+ draggableOptionContainer.draggableOption()
1309
+ .contains(optionName)
1310
+ .click();
1311
+ });
1203
1312
  },
1204
1313
 
1205
- clearMaxResponsePerCellInputField: () => {
1206
- dragAndDropIntoCategoriesPage.maxResponsePerCellInputField()
1207
- .clear()
1208
- .blur();
1314
+ clickOnDropzoneCellInDropzoneOfPreviewTab: (categoryIndex) => {
1315
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
1316
+ .eq(categoryIndex)
1317
+ .click({ force: true });
1209
1318
  },
1210
1319
 
1211
1320
  /**
1212
- * Verifies the value of the maximum response per cell input field.
1213
- * @param {string} value - The expected value to compare against.
1214
- * @returns {void}
1215
- */
1216
- verifyMaxResponsePerCellInputFieldValue: (value) => {
1217
- dragAndDropIntoCategoriesPage.maxResponsePerCellInputField()
1218
- .should('have.attr', 'value', value)
1321
+ * @param {string} optionName denotes the text content of the draggable option
1322
+ * @param {number} dropzoneIndex - The index of the dropzone.
1323
+ * @description click on a draggable option present in the category cell of preview tab
1324
+ */
1325
+ clickOnDraggableOptionInDropzoneCellOfPreviewTab: (optionName, dropzoneIndex) => {
1326
+ dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
1327
+ .eq(dropzoneIndex)
1328
+ .within(() => {
1329
+ draggableOptionContainer.draggableOption()
1330
+ .contains(optionName)
1331
+ .click();
1332
+ });
1219
1333
  },
1220
1334
 
1221
- clickOnResponseOptionPlacementDropdown: () => {
1222
- dragAndDropIntoCategoriesPage.responseOptionPlacementDropdown()
1223
- .click();
1335
+ clickOnDropzoneCellInDropzoneOfSpecifyCorrectAnswerSection: (categoryIndex) => {
1336
+ dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection()
1337
+ .eq(categoryIndex)
1338
+ .click({ force: true });
1224
1339
  },
1225
1340
 
1226
- /**
1227
- * Selects an option from the response option placement dropdown list.
1228
- * @param {string} dropdownOption - The option to select from the dropdown list ('Bottom', 'Top', 'Left', or 'Right')..
1229
- * @returns {void}
1230
- */
1231
- selectResponseOptionPlacementDropdownOption: (dropdownOption) => {
1232
- dragAndDropIntoCategoriesPage.responseOptionPlacementDropdownListOption(dropdownOption)
1233
- .click();
1341
+ verifyEmptyStateOfDropzoneCellInSpecifyCorrectAnswerSection: (cellIndex) => {
1342
+ dragAndDropIntoCategoriesPage.dropzoneCellSpecifyCorrectAnswerSection()
1343
+ .eq(cellIndex)
1344
+ .should('have.text', '');
1234
1345
  },
1235
1346
 
1236
- verifyResponseOptionPlacementDropdownOptions: () => {
1237
- let dropdownOptions = ['Top', 'Bottom', 'Left', 'Right'];
1238
- dragAndDropIntoCategoriesPage.responseOptionPlacementDropdownListOption()
1239
- .each(($el, index) => {
1240
- cy.wrap($el)
1241
- .should('have.text', dropdownOptions[index]);
1242
- });
1347
+ setGroupedOptions: () => {
1348
+ let animals = [['Bat', 'Platypus', 'Panda', 'Zebra'],
1349
+ ['Peacock', 'Falcon', 'Eagle', 'Tiger'],
1350
+ ['Parrot', 'Lion', 'Whale', 'Elephant'],
1351
+ ['Giraffe', 'Kangaroo', 'Ostrich', 'Flying squirrel']
1352
+ ];
1353
+ let groupTitles = ['Group A', 'Group B', 'Group C', 'Group D'];
1354
+ draggableOptionsSectionComponent.steps.expandDraggableOptionsLayoutDropdown()
1355
+ draggableOptionsSectionComponent.steps.selectOptionFromDraggableOptionsLayoutDropdown('Grouped')
1356
+ draggableOptionsSectionComponent.steps.addGroupTitle(groupTitles[0]);
1357
+ optionsWrapperComponent.steps.addMultipleOptionFields(2);
1358
+ optionsWrapperComponent.steps.addInputToOptionsInputField(animals[0]);
1359
+ draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[1], animals[1]);
1360
+ draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[2], animals[2]);
1361
+ draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[3], animals[3]);
1362
+ },
1363
+
1364
+ verifyInactiveStateOfAllDropzonesInSpecifyCorrectAnswerSection: () => {
1365
+ dragAndDropIntoCategoriesPage.dropzoneGridSpecifyCorrectAnswerSection()
1366
+ .should('not.have.class', 'active-area-on-tap');
1243
1367
  },
1244
1368
 
1245
- /**
1246
- * Verifies the placement option of a response option in the preview tab.
1247
- * @param {string} placementOption - The placement option to verify ('Bottom', 'Top', 'Left', or 'Right').
1248
- * @throws {Error} Throws an error if an invalid placement option is provided.
1249
- */
1250
- verifyResponseOptionPlacementPreviewTab: (placementOption) => {
1251
- const questionPreviewWrapper = dragAndDropIntoCategoriesPage.questionPreviewWrapper();
1252
- switch (placementOption) {
1253
- case 'Bottom':
1254
- questionPreviewWrapper
1255
- .should('not.have.class', 'classification-preview-top')
1256
- .and('not.have.class', 'classification-preview-left')
1257
- .and('not.have.class', 'classification-preview-right');
1258
- break;
1259
- case 'Top':
1260
- questionPreviewWrapper
1261
- .should('have.class', 'classification-preview-top');
1262
- break;
1263
- case 'Left':
1264
- questionPreviewWrapper
1265
- .should('have.class', 'classification-preview-left');
1266
- break;
1267
- case 'Right':
1268
- questionPreviewWrapper
1269
- .should('have.class', 'classification-preview-right');
1270
- break;
1271
- default:
1272
- throw new Error('Invalid placement option');
1273
- }
1274
- }
1369
+ verifyActiveStateOfAllDropzonesInSpecifyCorrectAnswerSection: () => {
1370
+ dragAndDropIntoCategoriesPage.dropzoneGridSpecifyCorrectAnswerSection()
1371
+ .should('have.class', 'active-area-on-tap');
1372
+ },
1373
+
1374
+ verifyInactiveStateOfAllDropzonesInPreviewTab: () => {
1375
+ dragAndDropIntoCategoriesPage.dropzoneGridPreviewTab()
1376
+ .should('not.have.class', 'active-area-on-tap');
1377
+ },
1378
+
1379
+ verifyActiveStateOfAllDropzonesInPreviewTab: () => {
1380
+ dragAndDropIntoCategoriesPage.dropzoneGridPreviewTab()
1381
+ .should('have.class', 'active-area-on-tap');
1382
+ },
1275
1383
  }
1276
1384
 
1277
1385
  const tests = {
1386
+ ...autoScoredScoringPreviewTab.tests,
1387
+ ...allowMultipleInstancesOfSameDraggableOptionComponent.tests,
1388
+ ...randomizeOptionsComponent.tests,
1389
+ ...studentViewSettingsLabelComponent.tests,
1390
+ ...autoScoredStudentViewSettings.tests,
1391
+ ...autoScoredSpecifyCorrectAnswerSection.tests,
1278
1392
  ...questionInstructionsComponent.tests,
1279
- ...dragAndDropResponseOptions.tests,
1280
- ...autoScoredSetCorrectAnswerSection.tests,
1281
- ...dragAndDropSetCorrectAnswerCheckboxComponents.tests,
1282
- ...autoScoredScoringSection.tests,
1283
- ...scoringSectionBase.tests,
1284
- ...dragAndDropResponseOptions.tests,
1285
- ...additionalSettingsPanel.tests,
1286
- ...autoScoredAdditionalSettings.tests,
1287
- ...autoScoredScoringSectionMultipleResponsesType.tests,
1288
- ...previewScoringAndShowCorrectAnswerComponent.tests,
1289
- ...createQuestionBasePage.tests,
1393
+ ...scoringSectionBaseEditTab.tests,
1394
+ ...optionsWrapperComponent.tests,
1395
+ ...draggableOptionsSectionComponent.tests,
1396
+ ...draggableOptionContainer.tests,
1290
1397
  ...commonComponents.tests,
1291
- ...draggableOptionsContainer.tests,
1292
- ...answerNumerationComponent.tests,
1293
- ...studentResponseAndLayoutComponent.tests,
1294
- ...autoScoredAdditionalSettings.tests,
1295
- /**
1296
- * @param {string} scoringSubtype option from the scoring subtype dropdown. Should be one of 'Total score divided between each correct response', 'Total score divided between each cell'
1297
- * @description verify the contents of the selected scoring subtype that have round down score feature
1298
- */
1299
- verifyScoringSubtypeWithRoundDownScoreContents: (scoringSubtype) => {
1300
- it(`When the user selects \'${scoringSubtype}\' option from the scoring subtype dropdown, penalty points label and input field, minimum score awarded (if attempted) label and input field and round down score label with checkbox in checked state should be displayed`, () => {
1301
- dragAndDropIntoCategoriesPage.steps.clickOnScoringSubtypeDropdown();
1302
- dragAndDropIntoCategoriesPage.steps.selectScoringSubTypeDropdownOption(scoringSubtype);
1303
- autoScoredScoringSectionMultipleResponsesType.steps.verifyDefaultPenaltyPointsInputFieldAndLabel();
1304
- scoringSectionBase.steps.verifyDefaultMinimumScoreIfAttemptedLabelAndPointsField();
1305
- autoScoredScoringSectionMultipleResponsesType.steps.verifyDefaultRoundDownScoreCheckboxCheckedAndLabel();
1306
- });
1307
- },
1308
-
1309
- /**
1310
- * @param {string} optionName option from the scoring subtype dropdown. Should be one of 'Partial - score for each correct response', 'Partial - score for each cell'
1311
- * @description verify the contents of the selected scoring subtype that do not have round down score feature
1312
- */
1313
- verifyScoringSubtypeWithoutRoundDownScoreContents: (scoringSubtype) => {
1314
- it(`When the user selects \'${scoringSubtype}\' option from the scoring subtype dropdown, penalty points label and input field, minimum score awarded (if attempted) label and input field should be displayed`, () => {
1315
- dragAndDropIntoCategoriesPage.steps.clickOnScoringSubtypeDropdown();
1316
- dragAndDropIntoCategoriesPage.steps.selectScoringSubTypeDropdownOption(scoringSubtype);
1317
- autoScoredScoringSectionMultipleResponsesType.steps.verifyDefaultPenaltyPointsInputFieldAndLabel();
1318
- scoringSectionBase.steps.verifyDefaultMinimumScoreIfAttemptedLabelAndPointsField();
1319
- autoScoredScoringSectionMultipleResponsesType.rounddownScoreCheckboxLabel()
1320
- .should('not.exist');
1321
- autoScoredScoringSectionMultipleResponsesType.rounddownScoreCheckbox()
1322
- .should('not.exist');
1398
+ ...autoScoredScoringSectionMultiResponseType.tests,
1399
+ ...enableOuterBorderComponent.tests,
1400
+
1401
+ verifyContentsOfSpecifyCorrectAnswerSection: (scoringType) => {
1402
+ it(`When the user selects ${scoringType} from scoring type dropdown then the specify correct answer sections should be displayed`, () => {
1403
+ dragAndDropIntoCategoriesPage.steps.verifyTableCellPropertySpecifyCorrectAnswer(0, 'None');
1404
+ utilities.verifyInnerText(utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), 0), '');
1405
+ dragAndDropIntoCategoriesPage.steps.verifyTableCellPropertySpecifyCorrectAnswer(1, 'Heading');
1406
+ dragAndDropIntoCategoriesPage.steps.verifyTextContentOfTableCellSpecifyCorrectAnswer(1, 'Mammal');
1407
+ dragAndDropIntoCategoriesPage.steps.verifyTextContentOfTableCellSpecifyCorrectAnswer(2, 'Not mammal');
1408
+ dragAndDropIntoCategoriesPage.steps.verifyTextContentOfTableCellSpecifyCorrectAnswer(3, 'Can fly');
1409
+ dragAndDropIntoCategoriesPage.steps.verifyTableCellPropertySpecifyCorrectAnswer(4, 'Dropzone');
1410
+ dragAndDropIntoCategoriesPage.steps.verifyTableCellPropertySpecifyCorrectAnswer(6, 'Subheading');
1411
+ dragAndDropIntoCategoriesPage.steps.verifyTextContentOfTableCellSpecifyCorrectAnswer(6, 'Can walk');
1412
+ utilities.verifyInnerText(utilities.getNthElement(dragAndDropIntoCategoriesPage.cellContainerSpecifyCorrectAnswer(), 6), 'Can walk');
1413
+ dragAndDropIntoCategoriesPage.steps.verifyTableCellPropertySpecifyCorrectAnswer(9, 'Text');
1414
+ dragAndDropIntoCategoriesPage.steps.verifyTextContentOfTableCellSpecifyCorrectAnswer(9, 'Can swim');
1323
1415
  });
1324
1416
  },
1325
1417
 
1326
1418
  /**
1327
- * @param {number} allocatedPoints points allocated to the question
1328
- * @description verify the contents of the question preview on selecting the show correct answer checkbox without attempting the question
1419
+ * Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
1420
+ * @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
1421
+ * @example - verifySpecifyCorrectAnswerAccordionContentsAndFunctionality('Correct');
1329
1422
  */
1330
- verifyQuestionPreviewOnSelectingShowCorrectAnswerWithoutAttempting: (allocatedPoints) => {
1331
- it('When the user selects \'Show correct answer\' checkbox without attempting the question, numeration should appear in each category cell, correct/incorrect cell border or icons should not be displayed, a correct answer section with \'Correct answers:\' label and all correct answers should be displayed below the question preview', () => {
1332
- dragAndDropIntoCategoriesPage.steps.checkShowCorrectAnswerCheckbox();
1333
- dragAndDropIntoCategoriesPage.steps.verifyNumerationOfCategoryCellsInQuestionPreview([1, 2, 3, 4]);
1334
- dragAndDropIntoCategoriesPage.steps.verifyCorrectIncorrectBorderNotVisible();
1335
- dragAndDropIntoCategoriesPage.steps.verifyCorrectIncorrectCellBorderNotExists();
1336
- dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswersLabel();
1337
- dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount(correctTabAnswerArray, [1, 2, 3, 4]);
1338
- dragAndDropIntoCategoriesPage.previewScoreText()
1339
- .verifyInnerText(`0/${allocatedPoints}`);
1423
+ verifySpecifyCorrectAnswerAccordionContentsAndFunctionality: (accordionName) => {
1424
+ it(`The user should be able to drop an option in the dropzone in the ${accordionName} accordion`, () => {
1425
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Bat': 0 });
1340
1426
  });
1341
- },
1342
1427
 
1343
- verifyQuestionPreviewOnClickingCheckAnswerWithoutAttempting: () => {
1344
- it('When user selects Check answer button without attempting the question, correct/incorrect border and icon for cell should not be displayed, correct/incorrect answer border for the question and label should not be displayed below the question preview and no correct answer section should not be displayed', () => {
1345
- cy.log('Pre-step: Deselect the show correct checkbox')
1346
- dragAndDropIntoCategoriesPage.steps.uncheckShowCorrectAnswerCheckbox();
1347
- dragAndDropIntoCategoriesPage.steps.checkAnswer();
1348
- dragAndDropIntoCategoriesPage.correctIncorrectAnswerLabel()
1349
- .should('not.exist');
1350
- dragAndDropIntoCategoriesPage.steps.verifyCorrectIncorrectBorderNotVisible();
1351
- dragAndDropIntoCategoriesPage.steps.verifyCorrectAnswerSectionNotVisible();
1428
+ it(`When the user has removed all the options from the dropzone in the ${accordionName} accordion, \'Error: Please set a correct answer.\' error message should be thrown along with an error icon on the \'${accordionName}\' accordion`, () => {
1429
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Bat');
1430
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible')
1431
+ utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Please set a correct answer.');
1432
+ if (accordionName == 'Correct') {
1433
+ autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
1434
+ .within(() => {
1435
+ utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
1436
+ });
1437
+ } else {
1438
+ autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
1439
+ .eq(1)
1440
+ .within(() => {
1441
+ utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
1442
+ });
1443
+ };
1352
1444
  });
1353
- },
1354
1445
 
1355
- /**
1356
- * @param {number} totalPoints the maximum points that can be scored by the user
1357
- * @description verify the functionality of minimum points when penalty points are not set and user attempts incorrect answer
1358
- */
1359
- verifyMinimumScoreAwardedIfAttemptedFunctionalityForIncorrectAnswer: (totalPoints) => {
1360
- it('When user has provided minimum score awarded (if attempted) points, then in Preview tab on entering incorrect answer, minimum score should be provided for the question', () => {
1361
- cy.log('Switch to edit tab and set minimum score if attempted points')
1362
- createQuestionBasePage.steps.switchToEditTab();
1363
- scoringSectionBase.steps.expandMinimumScoringDropdown();
1364
- scoringSectionBase.steps.selectMinimumScoringTypeListOption('Award minimum score only if attempted');
1365
- scoringSectionBase.steps.allotMinimumScoreAwardedIfAttempted(1)
1366
- createQuestionBasePage.steps.switchToPreviewTab()
1367
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 2);
1368
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 3);
1369
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 1);
1370
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
1371
- .verifyInnerText(`1/${totalPoints}`);
1372
- });
1446
+ autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredCorrectAnswerErrorMessageCSSAndA11y();
1373
1447
 
1374
- it('When user removes minimum score awarded (if attempted) points, then in Preview tab on selecting any options other than correct answers, points should not be provided', () => {
1375
- cy.log('Switch to edit tab and remove minimum score if attempted points')
1376
- createQuestionBasePage.steps.switchToEditTab();
1377
- dragAndDropIntoCategoriesPage.steps.clearMinimumScoreIfAttemptedPointsField();
1378
- createQuestionBasePage.steps.switchToPreviewTab()
1379
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 2);
1380
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 3);
1381
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 1);
1382
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
1383
- .verifyInnerText(`0/${totalPoints}`);
1448
+ it('When the user drops an option in the dropzone, the error message should disappear', () => {
1449
+ dragAndDropIntoCategoriesPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Eagle': 1 });
1384
1450
  });
1385
- },
1386
1451
 
1387
- /**
1388
- * @param {number} scoredPoints the points scored by the user
1389
- * @param {number} totalPoints the maximum points that can be scored by the user
1390
- * @description verify the functionality of Penalty points when minimum points are not set and user attempts incorrect answer
1391
- */
1392
- verifyPenaltyPointsFunctionalityForIncorrectAnswer: (scoredPoints, totalPoints) => {
1393
- it('When user has defined penalty points', () => {
1394
- cy.log('Pre-step: Switch to edit tab and set penalty points');
1395
- createQuestionBasePage.steps.switchToEditTab();
1396
- autoScoredScoringSectionMultipleResponsesType.steps.allotPenaltyPoints(3)
1397
-
1398
- cy.log('After switching to preview tab, when user adds an incorrect answer input, then 0 points should be awarded(no negative points)');
1399
- createQuestionBasePage.steps.switchToPreviewTab();
1400
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 2);
1401
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 3);
1402
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 1);
1403
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
1404
- .verifyInnerText(`0/${totalPoints}`);
1405
-
1406
- cy.log('When user adds a partially correct answer input, the points should be updated accordingly with deducted penalty points');
1407
- dragAndDropIntoCategoriesPage.steps.resetQuestionPreview();
1408
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 0);
1409
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 1);
1410
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Parrot', 1);
1411
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 2);
1412
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Flying squirrel', 2);
1413
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
1414
- .verifyInnerText(`${scoredPoints}/${totalPoints}`);
1415
- });
1416
- },
1452
+ autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredPointsErrorMessageWhenPointsFieldIsEmpty(accordionName);
1417
1453
 
1418
- /**
1419
- * @param {number[]} pointsScoredArray An array of numbers representing points scored in different cases.
1420
- * - The first element represents points scored for incorrect answers.
1421
- * - The second element represents points scored for partially correct answers.
1422
- * - The third element represents points scored when minimum score awarded (if attempted) points is greater than the points achieved by attempting the question partially correct
1423
- * @param {number} minimumPointsForPartialCorrectAnswers minimum score awarded (if attempted) points on attempting the question partially correct
1424
- * @param {number} totalPoints the maximum points that can be achieved by the user
1425
- * @description verify the functionality of Minimum score awarded (if attempted) and penalty points are set and user attempts the question for the following cases.
1426
- * - For all incorrect responses
1427
- * - For partially correct responses, when points scored > minimum score awarded(if attempted) points
1428
- * - For partially correct responses, when minimum score awarded(if attempted) points > points scored
1429
- */
1430
- verifyMinimumScoreIfAttemptedAndPenaltyPointsFunctionalityForIncorrectAnswer: (pointsScoredArray, minimumPointsForPartialCorrectAnswers, totalPoints) => {
1431
- it('When user has defined both penalty points and minimum score awarded (if attempted) points', () => {
1432
- cy.log('Pre-step: Switch to edit tab and set minimum score awarded (if attempted) points');
1433
- createQuestionBasePage.steps.switchToEditTab();
1434
- scoringSectionBase.steps.allotMinimumScoreAwardedIfAttempted(1);
1435
-
1436
- cy.log('Switch to preview tab and give incorrect answer input to check that minimum points are displayed');
1437
- createQuestionBasePage.steps.switchToPreviewTab();
1438
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 2);
1439
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 3);
1440
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 1);
1441
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
1442
- .verifyInnerText(`${pointsScoredArray[0]}/${totalPoints}`);
1443
-
1444
- cy.log('When user adds a partially correct answer such that the points of the attempt(with penalty points deducted) is more than the minimum score awarded(if attempted) points');
1445
- dragAndDropIntoCategoriesPage.steps.resetQuestionPreview();
1446
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 0);
1447
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 1);
1448
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Parrot', 1);
1449
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 2);
1450
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Flying squirrel', 3);
1451
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
1452
- .verifyInnerText(`${pointsScoredArray[1]}/${totalPoints}`);
1453
-
1454
- cy.log('When user switches to edit tab and increases the minimum score awarded (if attempted) points to check the case for an attempt in which points of the attempt is less than minimum score awarded (if attempted) points, then the minimum score awarded (if attempted) points should be displayed to the user');
1455
- createQuestionBasePage.steps.switchToEditTab();
1456
- scoringSectionBase.steps.clearMinimumScoreIfAttemptedPointsField()
1457
- scoringSectionBase.steps.allotMinimumScoreAwardedIfAttempted(minimumPointsForPartialCorrectAnswers);
1458
- cy.log('Switching to preview tab');
1459
- createQuestionBasePage.steps.switchToPreviewTab();
1460
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 0);
1461
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
1462
- .verifyInnerText(`${pointsScoredArray[2]}/${totalPoints}`);
1454
+ it('When user clicks on right arrow navigation button, then the table should be scrolled to the right by 1 column and left arrow navigation button should be enabled', () => {
1455
+ dragAndDropIntoCategoriesPage.steps.clickOnRightArrowNavigationButtonSpecifyCorrectAnswerSection();
1456
+ dragAndDropIntoCategoriesPage.steps.verifyColumnIsVisibleInTableSpecifyCorrectAnswer(8);
1457
+ utilities.verifyElementNotDisabled(dragAndDropIntoCategoriesPage.leftArrowNavigationButtonSpecifyCorrectAnswerSection());
1463
1458
  });
1464
- },
1465
1459
 
1466
- /**
1467
- * @param {number[]} pointsScoredArray An array of numbers representing points scored in different cases.
1468
- * - The first element represents points scored for a partially correct answer when round down score is selected.
1469
- * - The second element represents points scored for full correct answer when round down score is selected.
1470
- * - The third element represents points scored for a partially correct answer when round down score is deselected.
1471
- * @param {number} totalPoints the maximum points that can be achieved by the user
1472
- * @description verify the functionality of round down score for following cases.
1473
- * - For partially correct response, when round down score is selected.
1474
- * - For full correct answer response, when round down score is selected
1475
- * - For partially correct response, when round down score is deselected.
1476
- * - For full correct answer response, when round down score is deselected
1477
- */
1478
- verifyRoundDownScoreFunctionality: (pointsScoredArray, totalPoints) => {
1479
- it('When the \'Round down score\' checkbox is selected, then in preview tab when user enters partially or fully correct answer responses, the score displayed should be rounded down to the nearest whole number', () => {
1480
- dragAndDropIntoCategoriesPage.previewScoreText()
1481
- .verifyInnerText(`0/${totalPoints}`);
1482
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 0);
1483
- dragAndDropIntoCategoriesPage.previewScoreText()
1484
- .verifyInnerText(`${pointsScoredArray[0]}/${totalPoints}`);
1485
- dragAndDropIntoCategoriesPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
1486
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 1);
1487
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Parrot', 1);
1488
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 2);
1489
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Whale', 2);
1490
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Ostrich', 3);
1491
- dragAndDropIntoCategoriesPage.previewScoreText()
1492
- .verifyInnerText(`${pointsScoredArray[1]}/${totalPoints}`);
1493
- dragAndDropIntoCategoriesPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
1460
+ it('When user has scrolled to the rightmost column using the right arrow navigation button, then the table right arrow navigation button should be enabled', () => {
1461
+ for (let index = 9; index < 15; index++) {
1462
+ dragAndDropIntoCategoriesPage.steps.clickOnRightArrowNavigationButtonSpecifyCorrectAnswerSection();
1463
+ }
1464
+ utilities.verifyElementDisabled(dragAndDropIntoCategoriesPage.rightArrowNavigationButtonSpecifyCorrectAnswerSection());
1494
1465
  });
1495
1466
 
1496
- it('When the \'Round down score\' checkbox is not selected, then in preview tab when user selects partially or fully correct answers the points should be displayed in decimal points if applicable as per the options selected by the user', () => {
1497
- cy.log('Switching to Edit tab')
1498
- dragAndDropIntoCategoriesPage.steps.switchToEditTab();
1499
- dragAndDropIntoCategoriesPage.steps.expandRoundingDropdown();
1500
- dragAndDropIntoCategoriesPage.steps.selectOptionFromRoundingDropdownOption('none');
1501
- cy.log('Switching to Preview tab')
1502
- dragAndDropIntoCategoriesPage.steps.switchToPreviewTab();
1503
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 0);
1504
- dragAndDropIntoCategoriesPage.previewScoreText()
1505
- .verifyInnerText(`${pointsScoredArray[2]}/${totalPoints}`);
1506
- dragAndDropIntoCategoriesPage.steps.verifyPreviewTabPointsBackgroundForIncorrectOrPartiallyCorrectAnswer();
1507
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Eagle', 1);
1508
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Parrot', 1);
1509
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Platypus', 2);
1510
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Whale', 2);
1511
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Ostrich', 3);
1512
- dragAndDropIntoCategoriesPage.previewScoreText()
1513
- .verifyInnerText(`${totalPoints}/${totalPoints}`);
1467
+ it('When user clicks on left arrow navigation button, then the table should be scrolled to the left by 1 column and right arrow navigation button should be enabled again', () => {
1468
+ dragAndDropIntoCategoriesPage.steps.clickOnLeftArrowNavigationButtonSpecifyCorrectAnswerSection();
1469
+ dragAndDropIntoCategoriesPage.steps.verifyColumnIsVisibleInTableSpecifyCorrectAnswer(8);
1470
+ dragAndDropIntoCategoriesPage.steps.verifyColumnIsNotVisibleInSpecifyColumnsAndRowsTable(14);
1471
+ utilities.verifyElementNotDisabled(dragAndDropIntoCategoriesPage.leftArrowNavigationButtonSpecifyCorrectAnswerSection());
1514
1472
  });
1515
- },
1516
1473
 
1517
- verifyReuseOptionScoring: () => {
1518
- it('When the user has set same answer options in the \'Set correct answer\' section, then the user should be awarded full points on attempting the question with reused options', () => {
1519
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 0);
1520
- dragAndDropIntoCategoriesPage.steps.clickAndDropDraggableOptionInCategoryCellOfPreviewTab('Bat', 1);
1521
- dragAndDropIntoCategoriesPage.previewScoreText()
1522
- .verifyInnerText('5/5');
1523
- dragAndDropIntoCategoriesPage.steps.verifyPreviewTabPointsBackgroundForCorrectAnswer();
1474
+ it('CSS of \'Correct\' accordion contents', { tags: 'css' }, () => {
1475
+ //Navigation button
1476
+ utilities.verifyCSS(dragAndDropIntoCategoriesPage.leftArrowNavigationButtonSpecifyCorrectAnswerSection().find('path'), {
1477
+ 'fill': css.color.nextPreviousButtonFill
1478
+ });
1479
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), 15), {
1480
+ 'background-color': css.color.defaultBackground,
1481
+ 'border-color': css.color.matrixCellBorder
1482
+ });
1483
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), 15), {
1484
+ 'background-color': css.color.matrixHeadingCellBg,
1485
+ 'border-color': css.color.matrixCellBorder
1486
+ });
1487
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), 16), {
1488
+ 'background-color': css.color.matrixDropzoneCellBg,
1489
+ 'border': `1px dashed ${css.color.matrixCellBorder}`
1490
+ });
1491
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), 30), {
1492
+ 'background-color': css.color.matrixSubheadingCellBg,
1493
+ 'border-color': css.color.matrixCellBorder
1494
+ });
1495
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection(), 45), {
1496
+ 'background-color': css.color.defaultBackground,
1497
+ 'border-color': css.color.matrixCellBorder
1498
+ });
1499
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellLabel(), 16), {
1500
+ 'color': css.color.text,
1501
+ 'font-size': css.fontSize.heading,
1502
+ 'font-weight': css.fontWeight.bold
1503
+ });
1504
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellLabel(), 17), {
1505
+ 'color': css.color.text,
1506
+ 'font-size': css.fontSize.default,
1507
+ 'font-weight': css.fontWeight.semibold
1508
+ });
1509
+ utilities.verifyCSS(utilities.getNthElement(dragAndDropIntoCategoriesPage.tableCellLabel(), 18), {
1510
+ 'color': css.color.text,
1511
+ 'font-size': css.fontSize.default,
1512
+ 'font-weight': css.fontWeight.regular
1513
+ });
1524
1514
  });
1525
- },
1526
1515
 
1527
- //Additional settings
1528
- /**
1529
- * @param {string[]} numerationArray array of the numeration displayed with options numbers| lowercase| uppercase
1530
- * @description this function checks the numeration displayed for the options and correct answer container options when Show correct answer is checked
1531
- */
1532
- verifyCategoryCellsAndCorrectAnswerContainerNumerationWhenShowCorrectAnswerCheckboxIsChecked: (numerationArray) => {
1533
- it('When user clicks on \'Show correct answer\' checkbox then the numeration should be displayed on the options as well as \'Correct answers:\' section', () => {
1534
- previewScoringAndShowCorrectAnswerComponent.steps.checkShowCorrectAnswerCheckbox()
1535
- steps.verifyNumerationOfCategoryCellsInQuestionPreview(numerationArray)
1536
- steps.verifyCorrectAnswerContainerNumeration(numerationArray)
1537
- cy.log('Post step: Uncheck \'Show correct answer\' checkbox')
1538
- previewScoringAndShowCorrectAnswerComponent.steps.uncheckShowCorrectAnswerCheckbox()
1516
+ it('Accessibility of \'Correct\' accordion contents', { tags: 'a11y' }, () => {
1517
+ cy.checkAccessibility(dragAndDropIntoCategoriesPage.tableCellContainerSpecifyCorrectAnswerSection().parents('.correct-answer-accordion'))
1539
1518
  });
1540
1519
  },
1541
-
1542
- verifyCategoryCellsNumerationNotDisplayedWhenCheckAnswerIsSelected: () => {
1543
- it('When user clicks on \'Check answer\' button then the numeration should not be displayed in the category cells', () => {
1544
- autoScoredPreviewBase.steps.checkAnswer()
1545
- dragAndDropIntoCategoriesPage.categoryCellNumeration()
1546
- .should('not.exist');
1547
- });
1548
- }
1549
1520
  }
1521
+
1550
1522
  export const dragAndDropIntoCategoriesPage = {
1551
1523
  ...selectors,
1552
1524
  steps,
1553
1525
  tests
1554
- };
1526
+ }