itemengine-cypress-automation 1.0.349-TEMRegression4-f1b48a1.0 → 1.0.349-miscellaneous-questions-r2-a9064f0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/Dockerfile +1 -0
  2. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  3. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  4. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +398 -0
  5. package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +329 -0
  6. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +260 -0
  7. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +368 -0
  8. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  13. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  14. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  15. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  16. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  17. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  18. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  19. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  20. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  21. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  22. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  23. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  24. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +2 -4
  25. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  26. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerHeaderSectionAndButtons.js +2 -2
  27. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTab.js +1 -1
  28. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerPreviewTabTranscript.js +2 -3
  29. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  30. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +4 -4
  31. package/cypress/e2e/ILC/CkEditorInsertTable/tableStyle.js +2 -2
  32. package/cypress/e2e/ILC/CkEditorLink/uploadSection.js +1 -1
  33. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +3 -3
  34. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  35. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  36. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  37. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  38. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  39. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  40. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  41. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  42. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  43. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  44. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  45. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  46. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  47. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  48. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  49. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  50. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  51. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  52. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  53. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +1 -0
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  64. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  65. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  66. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  70. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +1 -1
  71. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  72. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  73. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  74. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  75. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  76. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  77. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  78. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  79. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  80. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  81. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  82. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  83. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  84. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  85. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  86. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  87. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  88. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  89. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  90. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  91. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  92. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  93. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  94. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  95. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  96. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  97. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  98. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  99. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  100. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  101. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  102. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  103. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  104. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  105. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  106. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  107. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  108. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  109. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  110. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  111. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  112. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  113. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  114. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  115. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  116. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  117. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  118. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  119. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  120. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  121. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  122. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  123. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  124. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  125. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  126. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  127. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  128. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  129. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  130. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +227 -0
  131. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  132. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  133. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  134. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  135. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  136. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  137. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  138. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  139. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  140. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  141. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  142. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +5 -2
  143. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  144. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  145. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  146. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  147. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  148. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  149. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  150. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  151. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  152. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  153. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  154. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  155. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  156. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  157. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  158. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  159. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  160. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
  161. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  162. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  163. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  164. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  165. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  166. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  167. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  168. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  169. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  170. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  171. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  172. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  173. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  174. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  175. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  176. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  177. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  178. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  179. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  180. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  181. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  182. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  183. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  184. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  185. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  186. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  187. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  188. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  189. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  190. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  191. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  192. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  193. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  194. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  195. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  196. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  197. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  198. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  199. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  200. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  201. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -1
  202. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  203. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +7 -5
  204. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  205. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  206. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
  207. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
  208. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
  209. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +276 -0
  210. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  211. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
  212. package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
  213. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +621 -0
  214. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  215. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  216. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
  217. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  218. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  219. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +1 -1
  220. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  221. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  222. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  223. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  224. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  225. package/cypress/e2e/Sessions/scores.js +8 -10
  226. package/cypress/e2e/applitools.config.js +3 -3
  227. package/cypress/fixtures/theme/ilc.json +14 -1
  228. package/cypress/fixtures/uploads/sample.webm +0 -0
  229. package/cypress/fixtures/uploads/sample.wmv +0 -0
  230. package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
  231. package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
  232. package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
  233. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  234. package/cypress/pages/audioPlayerPage.js +45 -22
  235. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  236. package/cypress/pages/chartsBarPage.js +20 -0
  237. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  238. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  239. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  240. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +16 -28
  241. package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
  242. package/cypress/pages/components/browseItemsPage.js +998 -7
  243. package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
  244. package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
  245. package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
  246. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  247. package/cypress/pages/components/commonComponents.js +8 -1
  248. package/cypress/pages/components/createQuestionBasePage.js +8 -1
  249. package/cypress/pages/components/defaultToolDropdown.js +7 -6
  250. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  251. package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
  252. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -3
  253. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -35
  254. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  255. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  256. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  257. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  258. package/cypress/pages/components/scoringSectionBaseEditTab.js +5 -0
  259. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  260. package/cypress/pages/desmosGeometryPage.js +184 -4
  261. package/cypress/pages/dialogBoxBase.js +2 -1
  262. package/cypress/pages/drawingResponsePage.js +6 -4
  263. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  264. package/cypress/pages/gradingViewPage.js +8 -0
  265. package/cypress/pages/graphingPage.js +27 -8
  266. package/cypress/pages/gridFillPage.js +15 -6
  267. package/cypress/pages/index.js +2 -1
  268. package/cypress/pages/listOrderingPage.js +32 -1
  269. package/cypress/pages/matchingPage.js +26 -7
  270. package/cypress/pages/multipleSelectionPage.js +10 -39
  271. package/cypress/pages/numberLineLabelPage.js +31 -8
  272. package/cypress/pages/numberLinePage.js +19 -7
  273. package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
  274. package/cypress/pages/singleSelectionPage.js +0 -37
  275. package/cypress/pages/textEntryMathPage.js +24 -1
  276. package/cypress/pages/thinkSpherePage.js +2185 -0
  277. package/cypress/pages/uploadResponsePage.js +2 -1
  278. package/cypress/pages/videoResponsePage.js +3 -0
  279. package/cypress/support/commands.js +7 -4
  280. package/cypress/support/e2e.js +1 -0
  281. package/cypress/support/helpers/createItem.js +1200 -1
  282. package/cypress/support/helpers/utilities.js +88 -1
  283. package/package.json +2 -2
@@ -159,31 +159,21 @@ describe('Create item page - Video response: Question instructions, Maximum reco
159
159
  });
160
160
  });
161
161
 
162
- it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, \'Error: Maximum recording duration is required.\' validation error should be displayed below the \'Maximum recording duration\' input field', () => {
162
+ it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, Validation error should not be displayed below the \'Maximum recording duration\' input field and it should take up default value i.e. 300', () => {
163
163
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
164
- utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Maximum recording duration is required.');
165
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
164
+ videoResponsePage.steps.verifyMaximumRecordingDuration(300);
165
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
166
166
  });
167
167
 
168
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
169
-
170
168
  it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Maximum recording duration is required.\' should disappear.', () => {
171
169
  videoResponsePage.steps.setMaximumRecordingDuration(1000);
172
170
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
173
171
  });
174
172
 
175
- it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message \'Error: Value must be greater than 0 secs.\' should be displayed', () => {
173
+ it('When the user has set \'Maximum recording duration\' to \'0\' (zero), error message should not be displayed and it should take default value i.e 300', () => {
176
174
  videoResponsePage.steps.setMaximumRecordingDuration(0);
177
- videoResponsePage.steps.verifyMaximumRecordingDuration(0);
178
- utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Value must be greater than 0 secs.');
179
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
180
- });
181
-
182
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
183
-
184
- it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Value must be greater than 0 secs.\' should disappear', () => {
185
- videoResponsePage.steps.setMaximumRecordingDuration(1000);
186
- videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
175
+ videoResponsePage.steps.verifyMaximumRecordingDuration(300);
176
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
187
177
  });
188
178
 
189
179
  it('When user adds decimal values or alphanumeric values then only numeric values should be displayed in the maximum recording length input field', () => {
@@ -204,32 +194,27 @@ describe('Create item page - Video response: Question instructions, Maximum reco
204
194
  videoResponsePage.steps.verifyMaximumRecordingDuration(5);
205
195
  });
206
196
 
207
- it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, \'Error: Maximum recording duration is required.\' validation error should be displayed below the \'Maximum recording duration\' input field', () => {
197
+ it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, validation error should not be displayed below the \'Maximum recording duration\' input field', () => {
208
198
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
209
199
  videoResponsePage.steps.toggleMaximumRecordingDurationInputField('Secs');
210
200
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
211
- utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Maximum recording duration is required.');
212
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
201
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
213
202
  });
214
203
 
215
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
216
-
217
- it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Maximum recording duration is required.\' should disappear.', () => {
204
+ it('When the user updates the \'Maximum recording duration\' value, then the validation message should not be displayed', () => {
218
205
  videoResponsePage.steps.setMaximumRecordingDuration(5);
219
206
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
220
207
  });
221
208
 
222
- it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message \'Error: Value must be greater than 0 mins.\' should be displayed', () => {
223
- videoResponsePage.steps.setMaximumRecordingDurationNew(0);
224
- videoResponsePage.steps.verifyMaximumRecordingDuration(0);
209
+ it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message should not be displayed and it should take default value i.e. 300', () => {
210
+ videoResponsePage.steps.setMaximumRecordingDuration(0);
211
+ videoResponsePage.steps.verifyMaximumRecordingDuration(300);
225
212
  // Uncomment once https://redmine.zeuslearning.com/issues/583618 is resolved
226
213
  // utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Value must be greater than 0 mins.');
227
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
214
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
228
215
  });
229
216
 
230
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
231
-
232
- it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Value must be greater than 0 mins.\' should disappear', () => {
217
+ it('When the user updates the \'Maximum recording duration\' value, then the validation message should not be displayed', () => {
233
218
  videoResponsePage.steps.setMaximumRecordingDuration(5);
234
219
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
235
220
  videoResponsePage.steps.toggleMaximumRecordingDurationInputField('Mins');
@@ -98,7 +98,22 @@ describe('Create item page - Charts - Dot plot: Header section and saving questi
98
98
  chartsDotPlotPage.steps.selectDotPlot();
99
99
  });
100
100
 
101
- chartsDotPlotPage.tests.verifyCreateItemWrapperContentsA11y();
101
+ describe('Validation error messages', () => {
102
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please set points']);
103
+
104
+ it('Validation error messages should be displayed below required input fields', () => {
105
+ chartsDotPlotPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
106
+ chartsDotPlotPage.steps.verifyWarningIconOnRequiredFields(['Please set points']);
107
+ chartsDotPlotPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
108
+ });
109
+
110
+ it('Validation error messages should disappear when required input fields are filled', () => {
111
+ chartsDotPlotPage.steps.allotPoints(10);
112
+ chartsDotPlotPage.steps.verifyErrorMessageIsNotDisplayed();
113
+ });
114
+
115
+ chartsDotPlotPage.tests.verifyCreateItemWrapperContentsA11y();
116
+ });
102
117
 
103
118
  describe('Saving a question', () => {
104
119
  it('When user clicks on "Save question" button, then the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
@@ -15,7 +15,7 @@ describe('Fetch Responses API', () => {
15
15
  let activityTemplateIdNew1;
16
16
  before(() => {
17
17
  cy.loginAs('admin');
18
- cy.createItem('FetchResponseTest1');
18
+ cy.createItem('FetchResponseTest12');
19
19
  cy.wait(5000)
20
20
  cy.visit(`${Cypress.env('itemEngineHomePage')}`);
21
21
  });
@@ -40,7 +40,7 @@ describe('Fetch Responses API', () => {
40
40
  .click();
41
41
  cy.get('textarea[class="body-param__text"]')
42
42
  .clear()
43
- .fill(`{\n "item_references": ["FetchResponseTest1"],\n "references": [],\n "types": [],\n "limit": 50,\n "sort_field": "created",\n "sort": "desc"\n}\n`);
43
+ .fill(`{\n "item_references": ["FetchResponseTest12"],\n "references": [],\n "types": [],\n "limit": 50,\n "sort_field": "created",\n "sort": "desc"\n}\n`);
44
44
  cy.get('.execute')
45
45
  .click();
46
46
  cy.wait(2000);
@@ -52,7 +52,7 @@ describe('Fetch Responses API', () => {
52
52
  .then((text) => {
53
53
  // Parse the JSON from the DOM
54
54
  const actualResponse = JSON.parse(text);
55
- const test1Data = actualResponse.data.FetchResponseTest1[0];
55
+ const test1Data = actualResponse.data.FetchResponseTest12[0];
56
56
  const { reference: ref1 } = test1Data;
57
57
  itemReferenceIdNew = ref1;
58
58
  });
@@ -6,7 +6,14 @@ describe('Scores API cases', () => {
6
6
  var timestamp;
7
7
  var dtScoreUpdateArray = [];
8
8
 
9
- let itemReferenceIdNew = "cd2f017-4f0-33b3-062b-ab6150047a83";
9
+ let itemReferenceIdNew;
10
+ const domainMapping = {
11
+ 'sandbox.itemengine-qa.il-apps.com': "0ee6c7-ef6e-717-4b8-cda87eaac101",
12
+ 'sandbox.itemengine-staging.il-apps.com': "a50ba14-5603-b55e-7cc-d17404ce5afb",
13
+ 'sandbox.itemengine-prod.il-apps.com': "444d582-3e4-b18f-e52c-5c8c732717"
14
+ };
15
+
16
+ itemReferenceIdNew = domainMapping[domainName] || null;
10
17
  let dt_score_update;
11
18
  let response_id;
12
19
  let dt_saved;
@@ -120,17 +127,8 @@ describe('Scores API cases', () => {
120
127
  });
121
128
 
122
129
  it('If the user clicks on the Scores option from the menu bar, user should be navigated to the Scores API page', () => {
123
- cy.get('[aria-label="Navigation Drawer List"]')
124
- .contains('Sessions')
125
- .click()
126
- .parents('[class*="MuiListItemButton-gutters"]')
127
- .should('have.attr', 'aria-expanded', 'true');
128
130
  cy.contains('Scores')
129
131
  .click();
130
- cy.contains('Scores')
131
- .parent()
132
- .parent()
133
- .should('have.class', 'Mui-selected');
134
132
  cy.url()
135
133
  .should('eq', Cypress.config().baseUrl + '/item-engine/data-api/sessions/fetch-scores');
136
134
  });
@@ -3,9 +3,9 @@ module.exports = {
3
3
  serverUrl: 'https://eyes.applitools.com',
4
4
  browser: [
5
5
  { width: 1366, height: 609, name: 'chrome' },
6
- // { width: 1280, height: 832, name: 'edgechromium' },
7
- // { width: 1536, height: 960, name: 'safari' },
8
- // { width: 1024, height: 1366, name: 'safari' }
6
+ { width: 1280, height: 832, name: 'edgechromium' },
7
+ { width: 1536, height: 960, name: 'safari' },
8
+ { width: 1024, height: 1366, name: 'safari' }
9
9
  ],
10
10
  //Configuration options: https://applitools.com/tutorials/sdks/cypress/configuration
11
11
  APPLITOOLS_IS_DISABLED: true
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "color": {
3
+ "boxShadow": "rgba(82, 0, 255, 0.1)",
3
4
  "primaryBtn": "rgb(255, 255, 255)",
4
5
  "primaryBtnBg": "rgb(82, 0, 255)",
5
6
  "primaryBtnBorder": "rgb(0, 0, 124)",
@@ -157,7 +158,19 @@
157
158
  "newFontColor": "rgb(128, 25, 0)",
158
159
  "newResponseFieldColor": "rgb(119, 60, 60)",
159
160
  "blackText": "rgb(0, 0, 0)",
160
- "blackTextBoxText":"rgba(0, 0, 0, 0.38)"
161
+ "blackTextBoxText":"rgba(0, 0, 0, 0.38)",
162
+ "whiteColor": "rgba(255, 255, 255, 1)",
163
+ "phasesSectionBorderColor": "rgba(186, 201, 255, 1)",
164
+ "optionColor": "rgb(13, 71, 161)",
165
+ "borderColor": "rgb(205, 205, 206)",
166
+ "buttonHoverColor": "rgb(68, 0, 211)",
167
+ "tableRowHoverColor": "rgba(0, 0, 0, 0.04)",
168
+ "dialogBoxBoxShadow": "rgba(0, 0, 0, 0.25)",
169
+ "desktopMobileViewtoggleButtonSelectedBg": "rgb(227, 242, 253)",
170
+ "progressBarBackgroundColor": "rgba(0, 0, 46, 0.7)",
171
+ "questionInstructionBG": "rgb(235, 239, 255)",
172
+ "deletePageColor": "rgb(124, 0, 0)",
173
+ "dropdownDefaultBG": "rgb(227, 240, 237)"
161
174
  },
162
175
  "fontSize": {
163
176
  "extraSmall": "10px",
@@ -14,11 +14,11 @@ const selectors = {
14
14
  uploadAudioFileUploadLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(0),
15
15
  uploadAudioFileNameLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(1),
16
16
  deleteAudioFileButton: () => cy.get('[aria-label="Delete"]'),
17
- sourceUrlLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(0),
18
- sourceUrlInputField: () => cy.get('input[aria-label="Source URL"]'),
17
+ sourceUrlLabel: () => cy.get('[class*="AudioPlayerFormstyles__TextFieldLabel"]').eq(0),
18
+ sourceUrlInputField: () => cy.get('[class*="AudioPlayerFormstyles__Text"] input[type="text"]'),
19
19
  uploadAudioChooseFileButton: () => cy.get('.choose-file-upload-button'),
20
20
  uploadAudioNoFileChosenLabel: () => cy.get('[aria-label="No file chosen"]').eq(0),
21
- uploadedFileNameLabel: () => cy.get('.selected-file').eq(0),
21
+ uploadedFileNameLabel: () => cy.get('[class*="AudioPlayerFormstyles__FileInputWrapper"] .selected-file-wrapper').eq(0),
22
22
  audioFileUploadProgressBar: () => cy.get('[class*="AudioPlayerstyles__ProgressBar-"]').eq(0),
23
23
  inputTypeFile: () => cy.get('input[type="file"]'),
24
24
  audioPlayerStyleLabel: () => cy.get('.player-style-label'),
@@ -28,7 +28,7 @@ const selectors = {
28
28
  standardStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="standard-toggle-button"] .ngie-toggle-button-label'),
29
29
  barStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="bar-toggle-button"] .ngie-toggle-button-label'),
30
30
  compactStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="compact-toggle-button"] .ngie-toggle-button-label'),
31
- compactPlayerOptionsLabel: () => cy.get('.options-label'),
31
+ compactPlayerOptionsLabel: () => cy.get('.compact-player-wrapper .options-label'),
32
32
  defaultPlayerOptionButton: () => cy.get('[data-ngie-testid="default-toggle-button"]'),
33
33
  textPlayerOptionButton: () => cy.get('[data-ngie-testid="text-toggle-button"]'),
34
34
  imagePlayerOptionButton: () => cy.get('[data-ngie-testid="image-toggle-button"]'),
@@ -45,28 +45,30 @@ const selectors = {
45
45
  customizePlayerLayoutProgressIndicatorButton: () => cy.get('[data-ngie-testid="progressbar-toggle-button"]'),
46
46
  customizePlayerLayoutToggleButtonLabel: () => cy.get('[class*="ToggleButtonMUI5style__ButtonLabelWrapper"]'),
47
47
  uncheckAllButton: () => cy.get('[class*="AudioPlayerstyles__UncheckButton"]'),
48
- uploadTranscriptFileLabel: () => cy.get('[class*="RadioGroupMUI5styles__RadioOptionContainer"] .ngie-radio-label').eq(2),
49
- uploadTranscriptFileRadioButton: () => cy.get('.ngie-radio-btn input').eq(2),
50
- typeInTranscriptLabel: () => cy.get('[class*="RadioGroupMUI5styles__RadioOptionContainer"] .ngie-radio-label').eq(3),
51
- typeInTranscriptRadioButton: () => cy.get('.ngie-radio-btn input').eq(3),
52
- transcriptInputField: () => cy.get('[role="textbox"][title="Transcript"]'),
53
- allowStudentsToDownloadAudioLabel: () => cy.get('[data-ngie-testid="allow-students-to-download-the-audio-checkbox"] .MuiFormControlLabel-label'),
54
- allowStudentsToDownloadAudioCheckbox: () => cy.get('[data-ngie-testid="allow-students-to-download-the-audio-checkbox"] input'),
55
- limitPlayAttemptsLabel: () => cy.get('[data-ngie-testid="limit-play-attempts-checkbox"] .MuiFormControlLabel-label'),
56
- limitPlayAttemptsCheckbox: () => cy.get('[data-ngie-testid="limit-play-attempts-checkbox"] input'),
48
+ uploadTranscriptFileLabel: () => cy.get('.upload-transcript-opt-label'),
49
+ uploadTranscriptFileRadioButton: () => cy.get('.upload-transcript-opt-label input'),
50
+ typeInTranscriptLabel: () => cy.get('.type-in-transcript-opt-label'),
51
+ typeInTranscriptRadioButton: () => cy.get('[aria-label="Type in transcript"][type="radio"]'),
52
+ transcriptInputField: () => cy.get('[title="Transcript"]'),
53
+ cKEditorTranscriptInputField: () => cy.get('textarea[aria-label="Transcript"]'),
54
+ ckEditorPlayAttemptsLimitInputField: () => cy.get('input[aria-label="Playback Limit"]'),
55
+ allowStudentsToDownloadAudioLabel: () => cy.get('.allow-students-to-download-audio .MuiFormControlLabel-label').eq(0),
56
+ allowStudentsToDownloadAudioCheckbox: () => cy.get('.allow-students-to-download-audio input'),
57
+ limitPlayAttemptsLabel: () => cy.get('.allow-students-to-download-audio .MuiFormControlLabel-label').eq(1),
58
+ limitPlayAttemptsCheckbox: () => cy.get('.allow-students-to-download-audio input').eq(1),
57
59
  playAttemptsLimitLabel: () => cy.get('.playback-limit-wrapper [class*="Label"]'),
58
- playAttemptsLimitInputField: () => cy.get('.playback-limit-wrapper input'),
60
+ playAttemptsLimitInputField: () => cy.get('.freeResponseAudioFormTextInput input'),
59
61
  studentViewSettingsLabel: () => cy.get('[class*="AudioPlayerstyles__TranscriptLabelWrapper"]').eq(0),
60
62
  audioOverviewLabel: () => cy.get('.additional-settings-label'),
61
63
  audioOverviewInputField: () => cy.get('[title="Description"]'),
62
- transcriptLabel: () => cy.get('.audio-resource-label-wrapper').eq(1),
64
+ transcriptLabel: () => cy.get('.freeResponseAudioFormTextInput .transcript-label'),
63
65
  uploadTranscriptUploadLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(2),
64
66
  uploadTranscriptFileNameLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(3),
65
67
  uploadTranscriptChooseFileButton: () => cy.get('.upload-audio-file-input-wrapper button').eq(1),
66
68
  uploadTranscriptNoFileChosenLabel: () => cy.get('[aria-label="No file chosen"]').eq(1),
67
- transcriptInputTypeFile: () => cy.get('input[type="file"]').eq(1),
68
- uploadedTranscriptFileNameLabel: () => cy.get('.selected-file').eq(1),
69
- transcriptFileUploadProgressBar: () => cy.get('[class*="AudioPlayerstyles__ProgressBar-"]').eq(1),
69
+ transcriptInputTypeFile: () => cy.get('.upload-transcript-file input[type="file"]'),
70
+ uploadedTranscriptFileNameLabel: () => cy.get('.upload-transcript-file .selected-file-wrapper'),
71
+ transcriptFileUploadProgressBar: () => cy.get('.audio-player-form-progressbar'),
70
72
  transcriptInputFieldLabel: () => cy.get('.additional-settings-label').eq(1),
71
73
  deleteTranscriptButton: () => cy.get('[aria-label*="Delete"]'),
72
74
 
@@ -166,6 +168,13 @@ const steps = {
166
168
  .blur();
167
169
  },
168
170
 
171
+ enterTextInCKEditorTranscriptInputField: (text) => {
172
+ audioPlayerPage.cKEditorTranscriptInputField()
173
+ .type(text)
174
+ .blur();
175
+ },
176
+
177
+
169
178
  verifyTextInTranscriptInputField: (text) => {
170
179
  audioPlayerPage.transcriptInputField()
171
180
  .should('have.text', text);
@@ -706,6 +715,20 @@ const steps = {
706
715
  .type(value)
707
716
  },
708
717
 
718
+ /**
719
+ * Sets the playback limit value in the audio player's input field.
720
+ * @param {string|number} value - The value to set as the playback limit.
721
+ * @returns {void}
722
+ */
723
+ setCKEditorPlaybackLimit: (value) => {
724
+ audioPlayerPage.ckEditorPlayAttemptsLimitInputField()
725
+ .clear()
726
+ .type(value);
727
+ cy.wait(2000);
728
+ audioPlayerPage.ckEditorPlayAttemptsLimitInputField()
729
+ .blur();
730
+ },
731
+
709
732
  /**
710
733
  * Verify the playback limit help text in preview tab
711
734
  * @param {string|number} value - The value to set as the playback limit.
@@ -788,14 +811,14 @@ const steps = {
788
811
  audioPlayerPage.audioOverviewInputField()
789
812
  .find('[data-widget="ngie_equation"]')
790
813
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
791
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
814
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
792
815
  },
793
816
 
794
817
  verifyEquationInAudioOverviewPreviewTab: () => {
795
818
  audioPlayerPage.audioOverviewPreviewTab()
796
819
  .find('[role="math"]')
797
820
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
798
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
821
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
799
822
  },
800
823
 
801
824
  verifyLinkInAudioOverviewInputField: () => {
@@ -896,14 +919,14 @@ const steps = {
896
919
  audioPlayerPage.transcriptInputField()
897
920
  .find('[data-widget="ngie_equation"]')
898
921
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
899
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
922
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
900
923
  },
901
924
 
902
925
  verifyEquationInTranscriptPreviewTab: () => {
903
926
  audioPlayerPage.transcriptContentPreviewTab()
904
927
  .find('[role="math"]')
905
928
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
906
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
929
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
907
930
  },
908
931
 
909
932
  verifyLinkInTranscriptInputField: () => {
@@ -20,7 +20,7 @@ const selectors = {
20
20
  selectAManipulativeLabel: () => cy.get('[class*="SelectManipulativeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
21
21
  enterAShareCodeLabel: () => cy.get('[class*="EnterShareCodeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
22
22
  enterAShareCodeInputField: () => cy.get('[class*="EnterShareCodeWrapper"] input'),
23
- previewTabCanvas: () => cy.get('.canvas'),
23
+ previewTabCanvas: () => cy.get('.bcm-inner')
24
24
  }
25
25
 
26
26
  const steps = {
@@ -1306,6 +1306,26 @@ const steps = {
1306
1306
  verifyPenaltyPointsForEachIncorrectBar: (penaltyPoints) => {
1307
1307
  utilities.verifyInnerText(autoScoredScoringSectionMultiResponseType.penaltyPointsDetailsSectionAllottedPointsLabel(), `Penalty points for each incorrect bar: ${penaltyPoints}`);
1308
1308
  },
1309
+
1310
+ verifyAnswerStatusBannerNotExist: () => {
1311
+ chartsBarPage.correctIncorrectAnswerTextWrapper()
1312
+ .should('not.exist');
1313
+ },
1314
+
1315
+ verifyAnswerStatusBannerExist: () => {
1316
+ chartsBarPage.correctIncorrectAnswerTextWrapper()
1317
+ .should('be.visible');
1318
+ },
1319
+
1320
+ verifyCorrectAnswerSectionExist: () => {
1321
+ chartsBarPage.correctAnswersLabel()
1322
+ .should('be.visible');
1323
+ },
1324
+
1325
+ verifyCorrectAnswerSectionNotExist: () => {
1326
+ chartsBarPage.correctAnswersLabel()
1327
+ .should('not.exist');
1328
+ },
1309
1329
  }
1310
1330
 
1311
1331
  const tests = {
@@ -23,8 +23,8 @@ const selectors = {
23
23
  return cy.get('[aria-labelledby*="Font-Size-dropdown-label"] [role="option"]')
24
24
  }
25
25
  },
26
- fontSizeListOptionLabels: () => cy.get('[aria-labelledby="Font-Size-dropdown-label Font-Size-placeholder"] li[role="option"] .dropdown-label-text'),
27
- fontSizesLabels: () => cy.get('[aria-labelledby="Font-Size-dropdown-label Font-Size-placeholder"] li[role="option"] .dropdown-post-label-text'),
26
+ fontSizeListOptionLabels: () => cy.get('[aria-labelledby*="Font-Size-dropdown-label"] li[role="option"] .dropdown-label-text'),
27
+ fontSizesLabels: () => cy.get('[aria-labelledby*="Font-Size-dropdown-label"] li[role="option"] .dropdown-post-label-text'),
28
28
  }
29
29
 
30
30
  const steps = {
@@ -69,6 +69,7 @@ const steps = {
69
69
 
70
70
  expandFontSizeDropdown: () => {
71
71
  additionalSettingsPanel.fontSizeDropdown()
72
+ .trigger('mouseover')
72
73
  .click();
73
74
  }
74
75
  }
@@ -149,6 +149,12 @@ const steps = {
149
149
  checkManuallyScoredScoringLabel: () => {
150
150
  autoScoredScoringPreviewTab.scoringTypeLabelPreviewTab()
151
151
  .should('have.text', 'Manually scored');
152
+ },
153
+
154
+ checkNonScoredScoringLabel: () => {
155
+ //Need to update once https://weldnorthed.atlassian.net/browse/IEI-5618 is resolved
156
+ autoScoredScoringPreviewTab.scoringTypeLabelPreviewTab()
157
+ .contains('Non scored', { matchCase: false });
152
158
  }
153
159
  }
154
160
 
@@ -161,7 +167,7 @@ const tests = {
161
167
  .should('be.checked');
162
168
  autoScoredScoringPreviewTab.gradingViewRadioButton()
163
169
  .should('not.be.checked');
164
- autoScoredScoringPreviewTab.steps.verifyPreviewScore(0, 0);
170
+ autoScoredScoringPreviewTab.steps.checkManuallyScoredScoringLabel();
165
171
  autoScoredScoringPreviewTab.steps.verifyCorrectIncorrectIconsNotExist();
166
172
  });
167
173
 
@@ -76,6 +76,7 @@ const steps = {
76
76
 
77
77
  expandPenaltyScoringDropdown: () => {
78
78
  autoScoredScoringSectionMultiResponseType.penaltyScoringDropdown()
79
+ .trigger('mouseover')
79
80
  .click();
80
81
  cy.wait(500);
81
82
  utilities.verifyElementVisibilityState(autoScoredScoringSectionMultiResponseType.penaltyScoringDropdownListOptions(), 'visible');
@@ -147,6 +148,7 @@ const steps = {
147
148
 
148
149
  expandRoundingDropdown: () => {
149
150
  autoScoredScoringSectionMultiResponseType.roundingDropdown()
151
+ .trigger('mouseover')
150
152
  .click();
151
153
  },
152
154
 
@@ -326,43 +326,31 @@ const tests = {
326
326
  .verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
327
327
  });
328
328
 
329
- it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
330
- utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
331
- autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
332
- });
333
-
334
- it('CSS of warning popup', { tags: 'css' }, () => {
335
- utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
336
- 'color': css.color.flyoutTitle,
337
- 'font-size': css.fontSize.heading,
338
- 'font-weight': css.fontWeight.semibold
339
- });
340
- utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
341
- 'color': css.color.labels,
342
- 'font-size': css.fontSize.default,
343
- 'font-weight': css.fontWeight.regular
344
- });
345
- utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
346
- 'fill': css.color.closeIcon
347
- });
348
- });
349
-
350
- it('Accessibility of warning popup', { tags: 'a11y' }, () => {
351
- cy.checkAccessibility(dialogBoxBase.dialogBox());
352
- dialogBoxBase.steps.closeWarningPopup();
329
+ it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in disabled state', () => {
330
+ utilities.verifyElementDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
353
331
  });
354
332
  },
355
333
 
356
334
  verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
357
- it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then a warning popup should be displayed and on closing the popup, alternative 2 accordion should be in expanded state', () => {
335
+ it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then correct answer accordion should be expanded and alternative 2 accordion should be in collapsed state', () => {
358
336
  autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
359
337
  .click();
360
- dialogBoxBase.steps.closeWarningPopup();
361
- //TODO: Need to add error message according to question types
362
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
338
+ autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
339
+ .eq(1)
340
+ .should('have.attr', 'aria-expanded', 'false');
341
+ autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
342
+ .should('have.attr', 'aria-expanded', 'true');
343
+ });
344
+
345
+ it('When user tries to expand alternative accordion when all the mandatory fields are not filled in the correct accordion, then correct answer accordion should be collapsed and alternative 2 accordion should be in expanded state', () => {
346
+ autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
347
+ .eq(1)
348
+ .click();
363
349
  autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
364
350
  .eq(1)
365
351
  .should('have.attr', 'aria-expanded', 'true');
352
+ autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
353
+ .should('have.attr', 'aria-expanded', 'false');
366
354
  });
367
355
  }
368
356
  }
@@ -59,29 +59,7 @@ const steps = {
59
59
  }
60
60
 
61
61
  const tests = {
62
- verifyBackgroundImageSectionContentWithCSSAndA11y: (questionType = null) => {
63
- it('\'Background image\' label should be visible', () => {
64
- if (questionType === 'graphing') {
65
- utilities.verifyInnerText(backgroundImageUploadComponent.backgroundImageLabel(), 'Background');
66
- } else {
67
- utilities.verifyInnerText(backgroundImageUploadComponent.backgroundImageLabel(), 'Background image');
68
- }
69
- });
70
-
71
- it('\'Upload\' label and \'Choose file\' button should be displayed', () => {
72
- utilities.verifyInnerText(backgroundImageUploadComponent.uploadLabel(), 'Upload');
73
- utilities.verifyElementVisibilityState(backgroundImageUploadComponent.uploadLabel(), 'visible');
74
- utilities.verifyInnerText(backgroundImageUploadComponent.chooseFileButton(), 'Choose file');
75
- utilities.verifyElementVisibilityState(backgroundImageUploadComponent.chooseFileButton(), 'visible');
76
- });
77
-
78
- it('\'File name\' label should be displayed and by default \'No file chosen\' text should be displayed below the \'File name\' label.', () => {
79
- utilities.verifyInnerText(backgroundImageUploadComponent.fileNameLabel(), 'File name');
80
- utilities.verifyElementVisibilityState(backgroundImageUploadComponent.fileNameLabel(), 'visible');
81
- utilities.verifyInnerText(backgroundImageUploadComponent.noFileChosenLabel(), 'No file chosen');
82
- utilities.verifyElementVisibilityState(backgroundImageUploadComponent.noFileChosenLabel(), 'visible');
83
- });
84
-
62
+ verifyCSSAndA11yBeforeUpload: () => {
85
63
  it('CSS of upload section', { tags: 'css' }, () => {
86
64
  utilities.verifyCSS(backgroundImageUploadComponent.uploadLabel(), {
87
65
  'color': css.color.labels,
@@ -109,12 +87,13 @@ const tests = {
109
87
  it('Accessibility of Upload section before uploading image', { tags: 'a11y' }, () => {
110
88
  cy.checkAccessibility(backgroundImageUploadComponent.uploadLabel().parents('.edit-question-edit-tab-wrapper'));
111
89
  });
90
+ },
112
91
 
92
+ verifyImageUploadFunctionality: (questionType = null) => {
113
93
  it('When the user adds the image file and file upload is inprogress, file name and progress bar should be displayed below \'File name\' label. Progress bar should disappear once file is uploaded and uploaded image should be displayed', () => {
114
94
  backgroundImageUploadComponent.steps.uploadFile('highlightImage.jpg');
115
- utilities.verifyElementVisibilityState(backgroundImageUploadComponent.uploadImageProgressBar(), 'visible');
116
95
  backgroundImageUploadComponent.steps.verifyFileNameLabel('highlightImage.jpg');
117
- if (questionType !== 'graphing' && questionType !== 'grid fill' && questionType !== 'image highlight') {
96
+ if (!['graphing', 'grid fill', 'image highlight', 'thinkSphere'].includes(questionType)) {
118
97
  imageCanvasComponent.steps.verifyImageIsUploaded();
119
98
  }
120
99
  });
@@ -129,6 +108,34 @@ const tests = {
129
108
  });
130
109
  },
131
110
 
111
+ verifyBackgroundImageSectionContentWithCSSAndA11y: (questionType = null) => {
112
+ it('\'Background image\' label should be visible', () => {
113
+ if (questionType === 'graphing') {
114
+ utilities.verifyInnerText(backgroundImageUploadComponent.backgroundImageLabel(), 'Background');
115
+ } else {
116
+ utilities.verifyInnerText(backgroundImageUploadComponent.backgroundImageLabel(), 'Background image');
117
+ }
118
+ });
119
+
120
+ it('\'Upload\' label and \'Choose file\' button should be displayed', () => {
121
+ utilities.verifyInnerText(backgroundImageUploadComponent.uploadLabel(), 'Upload');
122
+ utilities.verifyElementVisibilityState(backgroundImageUploadComponent.uploadLabel(), 'visible');
123
+ utilities.verifyInnerText(backgroundImageUploadComponent.chooseFileButton(), 'Choose file');
124
+ utilities.verifyElementVisibilityState(backgroundImageUploadComponent.chooseFileButton(), 'visible');
125
+ });
126
+
127
+ it('\'File name\' label should be displayed and by default \'No file chosen\' text should be displayed below the \'File name\' label.', () => {
128
+ utilities.verifyInnerText(backgroundImageUploadComponent.fileNameLabel(), 'File name');
129
+ utilities.verifyElementVisibilityState(backgroundImageUploadComponent.fileNameLabel(), 'visible');
130
+ utilities.verifyInnerText(backgroundImageUploadComponent.noFileChosenLabel(), 'No file chosen');
131
+ utilities.verifyElementVisibilityState(backgroundImageUploadComponent.noFileChosenLabel(), 'visible');
132
+ });
133
+
134
+ tests.verifyCSSAndA11yBeforeUpload();
135
+
136
+ tests.verifyImageUploadFunctionality(questionType);
137
+ },
138
+
132
139
  verifyDeleteImagePopupContentAndFunctionality: () => {
133
140
  it('When the user hovers on \'Delete\' button, \'Delete image\' text should be displayed in tooltip', () => {
134
141
  backgroundImageUploadComponent.deleteImageIcon()