itemengine-cypress-automation 1.0.349-TEMRegression4-f1b48a1.0 → 1.0.349

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 (287) 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/ContentBlocks/editTabBasics.js +62 -4
  34. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +115 -6
  35. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  36. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  37. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  38. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  39. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  40. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  41. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  42. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  43. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  44. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  45. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  46. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  47. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  48. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  49. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  50. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  51. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  52. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  53. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  54. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +1 -0
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  64. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  65. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  66. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  67. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  68. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  69. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  70. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  71. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +1 -1
  72. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  73. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  74. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  75. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  76. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  77. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  78. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  79. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  80. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  81. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  82. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  83. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  84. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  85. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  86. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  87. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  88. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  89. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  90. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  91. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  92. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  93. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  94. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  95. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  96. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  97. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  98. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  99. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  100. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  101. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  102. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  103. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  104. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  105. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  106. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  107. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  108. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  109. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  110. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  111. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  112. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  113. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  114. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  115. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  116. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  117. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  118. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  119. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  120. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  121. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  122. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  123. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  124. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  125. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +210 -0
  126. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  127. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  128. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  129. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  130. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  131. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  132. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +208 -0
  133. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +227 -0
  134. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  135. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  136. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  137. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  138. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  139. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  140. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  141. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  142. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +1 -0
  143. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  144. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  145. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +5 -2
  146. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  147. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  148. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  149. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  150. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  151. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  152. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  153. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  154. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  155. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  156. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  157. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  158. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  159. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  160. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  161. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  162. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  163. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
  164. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  165. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  166. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  167. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  168. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  169. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  170. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  171. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  172. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  173. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  174. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  175. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  176. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  177. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  178. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  179. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  180. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  181. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  182. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  183. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  184. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  185. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  186. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  187. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  188. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  189. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  190. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  191. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  192. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  193. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  194. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  195. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  196. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  197. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  198. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  199. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  200. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  201. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  202. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  203. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  204. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -1
  205. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  206. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +7 -5
  207. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  208. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  209. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
  210. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
  211. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
  212. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +276 -0
  213. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  214. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +291 -0
  215. package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
  216. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +621 -0
  217. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  218. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  219. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
  220. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  221. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  222. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +90 -2
  223. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  224. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  225. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  226. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  227. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  228. package/cypress/e2e/Sessions/scores.js +8 -10
  229. package/cypress/e2e/applitools.config.js +3 -3
  230. package/cypress/fixtures/theme/ilc.json +14 -1
  231. package/cypress/fixtures/uploads/sample.webm +0 -0
  232. package/cypress/fixtures/uploads/sample.wmv +0 -0
  233. package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
  234. package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
  235. package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
  236. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  237. package/cypress/pages/audioPlayerPage.js +47 -22
  238. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  239. package/cypress/pages/chartsBarPage.js +20 -0
  240. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  241. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  242. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  243. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +16 -28
  244. package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
  245. package/cypress/pages/components/browseItemsPage.js +998 -7
  246. package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
  247. package/cypress/pages/components/ckEditorEquationEditorComponent.js +5 -4
  248. package/cypress/pages/components/ckEditorInsertImageComponent.js +2 -2
  249. package/cypress/pages/components/ckEditorLinkComponent.js +8 -9
  250. package/cypress/pages/components/commonComponents.js +8 -1
  251. package/cypress/pages/components/createQuestionBasePage.js +15 -2
  252. package/cypress/pages/components/defaultToolDropdown.js +7 -6
  253. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  254. package/cypress/pages/components/equationEditorSectionCommonComponent.js +10 -25
  255. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -3
  256. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -35
  257. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  258. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  259. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  260. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  261. package/cypress/pages/components/scoringSectionBaseEditTab.js +5 -0
  262. package/cypress/pages/contentBlocksPage.js +2 -0
  263. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  264. package/cypress/pages/desmosGeometryPage.js +184 -4
  265. package/cypress/pages/dialogBoxBase.js +2 -1
  266. package/cypress/pages/drawingResponsePage.js +6 -4
  267. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  268. package/cypress/pages/gradingViewPage.js +8 -0
  269. package/cypress/pages/graphingPage.js +27 -8
  270. package/cypress/pages/gridFillPage.js +15 -6
  271. package/cypress/pages/index.js +2 -1
  272. package/cypress/pages/listOrderingPage.js +32 -1
  273. package/cypress/pages/matchingPage.js +26 -7
  274. package/cypress/pages/multipleSelectionPage.js +10 -39
  275. package/cypress/pages/numberLineLabelPage.js +31 -8
  276. package/cypress/pages/numberLinePage.js +19 -7
  277. package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
  278. package/cypress/pages/singleSelectionPage.js +0 -37
  279. package/cypress/pages/textEntryMathPage.js +24 -1
  280. package/cypress/pages/thinkSpherePage.js +2185 -0
  281. package/cypress/pages/uploadResponsePage.js +2 -1
  282. package/cypress/pages/videoResponsePage.js +3 -0
  283. package/cypress/support/commands.js +7 -4
  284. package/cypress/support/e2e.js +1 -0
  285. package/cypress/support/helpers/createItem.js +1200 -1
  286. package/cypress/support/helpers/utilities.js +88 -1
  287. package/package.json +3 -3
@@ -2,6 +2,7 @@ import abortEarlySetup from "../../../support/helpers/abortEarly";
2
2
  import { uploadResponsePage } from "../../../pages";
3
3
  import utilities from "../../../support/helpers/utilities";
4
4
  import { supportedFileType } from "../../../fixtures/uploadResponseFileType";
5
+ import { commonComponents } from "../../../pages/components";
5
6
  const css = Cypress.env('css');
6
7
 
7
8
  const fileSizeLimitOptions = ['5', '10', '15', '20', '100'];
@@ -373,4 +374,37 @@ describe('Create question page - Upload Response: Question Instructions, Support
373
374
 
374
375
  uploadResponsePage.tests.verifyWarningMessageDisappear();
375
376
  });
377
+
378
+ describe('User should be able to edit incomplete authored question', () => {
379
+ abortEarlySetup();
380
+ before(() => {
381
+ uploadResponsePage.steps.navigateToCreateQuestion('upload response');
382
+ cy.barsPreLoaderWait();
383
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
384
+ uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
385
+ uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
386
+ uploadResponsePage.steps.editItem();
387
+ });
388
+
389
+ it('Warning icons should be displayed on the required fields', () => {
390
+ uploadResponsePage.steps.verifyWarningIconOnRequiredFields(['Please select a file type']);
391
+ });
392
+
393
+ it('When file type is selected then warning icons should disappear', () => {
394
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
395
+ uploadResponsePage.steps.selectSupportedFileTypeOption(0);
396
+ uploadResponsePage.supportedFileTypesAccordionWrapper()
397
+ .within(() => {
398
+ utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'notExist');
399
+ });
400
+ });
401
+
402
+ it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
403
+ uploadResponsePage.steps.saveAQuestionAndVerifySnackbar();
404
+ });
405
+
406
+ it('Warning icon should not be visible', () => {
407
+ utilities.verifyElementVisibilityState(uploadResponsePage.warningIcon(), 'notExist');
408
+ });
409
+ });
376
410
  });
@@ -1,6 +1,9 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { uploadResponsePage, dialogBoxBase } from "../../../pages";
2
+ import { uploadResponsePage, dialogBoxBase, itemPreviewPage } from "../../../pages";
3
3
  import utilities from "../../../support/helpers/utilities";
4
+ import { browseItemsPage } from "../../../pages/components";
5
+ var itemReferenceID = ""
6
+
4
7
 
5
8
  describe('Create question page - Upload Response: Header section and Saving question', () => {
6
9
  before(() => {
@@ -49,4 +52,38 @@ describe('Create question page - Upload Response: Header section and Saving ques
49
52
 
50
53
  uploadResponsePage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
51
54
  });
55
+
56
+ describe('Saving a question with incomplete authoring', () => {
57
+ abortEarlySetup();
58
+ before(() => {
59
+ uploadResponsePage.steps.navigateToCreateQuestion('upload response');
60
+ cy.barsPreLoaderWait();
61
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
62
+ uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
63
+ });
64
+
65
+ it('User should be able to save the question with incomplete authoring and display a snackbar with the text "Saved successfully!" when the Save Question button is clicked', () => {
66
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please select a file type']);
67
+ uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
68
+ });
69
+ uploadResponsePage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
70
+ });
71
+
72
+ describe('Save as you go - Browse item page contents', () => {
73
+ abortEarlySetup();
74
+ before(() => {
75
+ uploadResponsePage.steps.navigateToCreateQuestion('upload response');
76
+ cy.barsPreLoaderWait();
77
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
78
+ uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
79
+ uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
80
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
81
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
82
+ browseItemsPage.steps.navigateToBrowseItemsPage();
83
+ });
84
+
85
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
86
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
87
+ });
88
+ });
52
89
  });
@@ -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",
@@ -2,6 +2,7 @@ import constants from "../fixtures/constants";
2
2
  import utilities from "../support/helpers/utilities";
3
3
  import { ckEditorToolbar, commonComponents, createQuestionBasePage, equationEditorFlyout, playbackControlsBaseComponent } from "./components";
4
4
  import { dialogBoxBase } from "./dialogBoxBase";
5
+ import { createItemPage } from "./createItemPage";
5
6
 
6
7
  const selectors = {
7
8
  ...playbackControlsBaseComponent,
@@ -14,11 +15,11 @@ const selectors = {
14
15
  uploadAudioFileUploadLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(0),
15
16
  uploadAudioFileNameLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(1),
16
17
  deleteAudioFileButton: () => cy.get('[aria-label="Delete"]'),
17
- sourceUrlLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(0),
18
- sourceUrlInputField: () => cy.get('input[aria-label="Source URL"]'),
18
+ sourceUrlLabel: () => cy.get('[class*="AudioPlayerFormstyles__TextFieldLabel"]').eq(0),
19
+ sourceUrlInputField: () => cy.get('[class*="AudioPlayerFormstyles__Text"] input[type="text"]'),
19
20
  uploadAudioChooseFileButton: () => cy.get('.choose-file-upload-button'),
20
21
  uploadAudioNoFileChosenLabel: () => cy.get('[aria-label="No file chosen"]').eq(0),
21
- uploadedFileNameLabel: () => cy.get('.selected-file').eq(0),
22
+ uploadedFileNameLabel: () => cy.get('[class*="AudioPlayerFormstyles__FileInputWrapper"] .selected-file-wrapper').eq(0),
22
23
  audioFileUploadProgressBar: () => cy.get('[class*="AudioPlayerstyles__ProgressBar-"]').eq(0),
23
24
  inputTypeFile: () => cy.get('input[type="file"]'),
24
25
  audioPlayerStyleLabel: () => cy.get('.player-style-label'),
@@ -28,7 +29,7 @@ const selectors = {
28
29
  standardStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="standard-toggle-button"] .ngie-toggle-button-label'),
29
30
  barStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="bar-toggle-button"] .ngie-toggle-button-label'),
30
31
  compactStyleToggleButtonLabel: () => cy.get('[data-ngie-testid="compact-toggle-button"] .ngie-toggle-button-label'),
31
- compactPlayerOptionsLabel: () => cy.get('.options-label'),
32
+ compactPlayerOptionsLabel: () => cy.get('.compact-player-wrapper .options-label'),
32
33
  defaultPlayerOptionButton: () => cy.get('[data-ngie-testid="default-toggle-button"]'),
33
34
  textPlayerOptionButton: () => cy.get('[data-ngie-testid="text-toggle-button"]'),
34
35
  imagePlayerOptionButton: () => cy.get('[data-ngie-testid="image-toggle-button"]'),
@@ -45,28 +46,30 @@ const selectors = {
45
46
  customizePlayerLayoutProgressIndicatorButton: () => cy.get('[data-ngie-testid="progressbar-toggle-button"]'),
46
47
  customizePlayerLayoutToggleButtonLabel: () => cy.get('[class*="ToggleButtonMUI5style__ButtonLabelWrapper"]'),
47
48
  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'),
49
+ uploadTranscriptFileLabel: () => cy.get('.upload-transcript-opt-label'),
50
+ uploadTranscriptFileRadioButton: () => cy.get('.upload-transcript-opt-label input'),
51
+ typeInTranscriptLabel: () => cy.get('.type-in-transcript-opt-label'),
52
+ typeInTranscriptRadioButton: () => cy.get('[aria-label="Type in transcript"][type="radio"]'),
53
+ transcriptInputField: () => cy.get('[title="Transcript"]'),
54
+ cKEditorTranscriptInputField: () => cy.get('textarea[aria-label="Transcript"]'),
55
+ ckEditorPlayAttemptsLimitInputField: () => cy.get('input[aria-label="Playback Limit"]'),
56
+ allowStudentsToDownloadAudioLabel: () => cy.get('.allow-students-to-download-audio .MuiFormControlLabel-label').eq(0),
57
+ allowStudentsToDownloadAudioCheckbox: () => cy.get('.allow-students-to-download-audio input'),
58
+ limitPlayAttemptsLabel: () => cy.get('.allow-students-to-download-audio .MuiFormControlLabel-label').eq(1),
59
+ limitPlayAttemptsCheckbox: () => cy.get('.allow-students-to-download-audio input').eq(1),
57
60
  playAttemptsLimitLabel: () => cy.get('.playback-limit-wrapper [class*="Label"]'),
58
- playAttemptsLimitInputField: () => cy.get('.playback-limit-wrapper input'),
61
+ playAttemptsLimitInputField: () => cy.get('.freeResponseAudioFormTextInput input'),
59
62
  studentViewSettingsLabel: () => cy.get('[class*="AudioPlayerstyles__TranscriptLabelWrapper"]').eq(0),
60
63
  audioOverviewLabel: () => cy.get('.additional-settings-label'),
61
64
  audioOverviewInputField: () => cy.get('[title="Description"]'),
62
- transcriptLabel: () => cy.get('.audio-resource-label-wrapper').eq(1),
65
+ transcriptLabel: () => cy.get('.freeResponseAudioFormTextInput .transcript-label'),
63
66
  uploadTranscriptUploadLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(2),
64
67
  uploadTranscriptFileNameLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(3),
65
68
  uploadTranscriptChooseFileButton: () => cy.get('.upload-audio-file-input-wrapper button').eq(1),
66
69
  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),
70
+ transcriptInputTypeFile: () => cy.get('.upload-transcript-file input[type="file"]'),
71
+ uploadedTranscriptFileNameLabel: () => cy.get('.upload-transcript-file .selected-file-wrapper'),
72
+ transcriptFileUploadProgressBar: () => cy.get('.audio-player-form-progressbar'),
70
73
  transcriptInputFieldLabel: () => cy.get('.additional-settings-label').eq(1),
71
74
  deleteTranscriptButton: () => cy.get('[aria-label*="Delete"]'),
72
75
 
@@ -125,6 +128,7 @@ const steps = {
125
128
  ...ckEditorToolbar.steps,
126
129
  ...equationEditorFlyout.steps,
127
130
  ...commonComponents.steps,
131
+ ...createItemPage.steps,
128
132
  /**
129
133
  * Uploads a file to the audio player by attaching the file located at the specified filePath.
130
134
  * @param {string} filePath - The file path to the file to be uploaded.
@@ -166,6 +170,13 @@ const steps = {
166
170
  .blur();
167
171
  },
168
172
 
173
+ enterTextInCKEditorTranscriptInputField: (text) => {
174
+ audioPlayerPage.cKEditorTranscriptInputField()
175
+ .type(text)
176
+ .blur();
177
+ },
178
+
179
+
169
180
  verifyTextInTranscriptInputField: (text) => {
170
181
  audioPlayerPage.transcriptInputField()
171
182
  .should('have.text', text);
@@ -706,6 +717,20 @@ const steps = {
706
717
  .type(value)
707
718
  },
708
719
 
720
+ /**
721
+ * Sets the playback limit value in the audio player's input field.
722
+ * @param {string|number} value - The value to set as the playback limit.
723
+ * @returns {void}
724
+ */
725
+ setCKEditorPlaybackLimit: (value) => {
726
+ audioPlayerPage.ckEditorPlayAttemptsLimitInputField()
727
+ .clear()
728
+ .type(value);
729
+ cy.wait(2000);
730
+ audioPlayerPage.ckEditorPlayAttemptsLimitInputField()
731
+ .blur();
732
+ },
733
+
709
734
  /**
710
735
  * Verify the playback limit help text in preview tab
711
736
  * @param {string|number} value - The value to set as the playback limit.
@@ -788,14 +813,14 @@ const steps = {
788
813
  audioPlayerPage.audioOverviewInputField()
789
814
  .find('[data-widget="ngie_equation"]')
790
815
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
791
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
816
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
792
817
  },
793
818
 
794
819
  verifyEquationInAudioOverviewPreviewTab: () => {
795
820
  audioPlayerPage.audioOverviewPreviewTab()
796
821
  .find('[role="math"]')
797
822
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
798
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
823
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
799
824
  },
800
825
 
801
826
  verifyLinkInAudioOverviewInputField: () => {
@@ -896,14 +921,14 @@ const steps = {
896
921
  audioPlayerPage.transcriptInputField()
897
922
  .find('[data-widget="ngie_equation"]')
898
923
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
899
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
924
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
900
925
  },
901
926
 
902
927
  verifyEquationInTranscriptPreviewTab: () => {
903
928
  audioPlayerPage.transcriptContentPreviewTab()
904
929
  .find('[role="math"]')
905
930
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
906
- // .contains(constants.CKEditorInputFieldEnteredEquationText);
931
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
907
932
  },
908
933
 
909
934
  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
  }