itemengine-cypress-automation 1.0.343 → 1.0.344-graph-and-chart-r2-8153722.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 (260) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  3. package/cypress/e2e/ILC/BrowseItems/browseReviewItems.js +398 -0
  4. package/cypress/e2e/ILC/BrowseItems/browseReviewItemsMobileView.js +329 -0
  5. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItems.js +260 -0
  6. package/cypress/e2e/ILC/BrowseItems/browseThinkSphereItemsMobileView.js +368 -0
  7. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  8. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightBasic.js +2 -2
  9. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  10. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  11. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  12. package/cypress/e2e/ILC/ChartsBar/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  13. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  14. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  15. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightBasic.js +1 -0
  16. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -0
  17. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +1 -0
  18. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +1 -0
  19. package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +1 -0
  20. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  21. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddFeatureRadioButton.js +2 -3
  22. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabAddTranscriptRadioButton .js +0 -2
  23. package/cypress/e2e/ILC/CkEditorAudioPlayer/audioPlayerEditTabStudentViewSettings.js +3 -3
  24. package/cypress/e2e/ILC/CkEditorEquationEditor/equationEditorBasicFile.js +4 -4
  25. package/cypress/e2e/ILC/CkEditorInsertImage/imageInfo.js +1 -1
  26. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +3 -3
  27. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +2 -0
  28. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/manuallyAndNonScoredScoringEditTab.js +4 -1
  29. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +3 -0
  30. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +3 -0
  31. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +1 -0
  32. package/cypress/e2e/ILC/DrawingResponse/drawingResponseBackground.js +2 -8
  33. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +1 -0
  34. package/cypress/e2e/ILC/DrawingResponse/drawingResponseEditTabBasicSection.js +3 -3
  35. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +3 -4
  36. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +1 -1
  37. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +0 -1
  38. package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +23 -37
  39. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +29 -25
  40. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +210 -0
  41. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneStyleAndLayoutCustomization.js +6 -3
  42. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +1 -0
  43. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +201 -0
  44. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  45. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  46. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +0 -1
  47. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +18 -20
  48. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +216 -0
  49. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +0 -1
  50. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +1 -0
  51. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +5 -1
  52. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/styleAndLayoutCustomization.js +2 -1
  53. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +21 -30
  54. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +211 -0
  55. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +4 -1
  56. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +0 -1
  57. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +2 -2
  58. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +2 -2
  59. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +23 -30
  60. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +213 -0
  61. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +2 -0
  62. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +2 -0
  63. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +1 -1
  64. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +25 -30
  65. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +207 -0
  66. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +2 -10
  67. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +2 -0
  68. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +73 -0
  69. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  70. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  71. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +87 -0
  72. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  73. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  74. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  75. package/cypress/e2e/ILC/Graphing/editTabScoringSection.js +1 -0
  76. package/cypress/e2e/ILC/Graphing/headerSection.js +36 -4
  77. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +6 -3
  78. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  79. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +5 -6
  80. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
  81. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +3 -0
  82. package/cypress/e2e/ILC/GridFill/headerSection.js +1 -3
  83. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  84. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  85. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  86. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  87. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  88. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  89. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  90. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +2 -4
  91. package/cypress/e2e/ILC/ImageHighlight/Scoring/partialDifferentWeightsScoring.js +2 -1
  92. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +2 -1
  93. package/cypress/e2e/ILC/ImageHighlight/studentViewSettings.js +2 -2
  94. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  95. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  96. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  97. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  98. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  99. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  100. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  101. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  102. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  103. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  104. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  105. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  106. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +2 -1
  107. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  108. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  109. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  110. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  111. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  112. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  113. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  114. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  115. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  116. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  117. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  118. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  119. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  120. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  121. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  122. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  123. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  124. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +226 -0
  125. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +6 -3
  126. package/cypress/e2e/ILC/MultipleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  127. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +6 -3
  128. package/cypress/e2e/ILC/MultipleSelection/headerSection.js +1 -0
  129. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  130. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsBasic.js +1 -1
  131. package/cypress/e2e/ILC/MultipleSelection/partialDifferentWeightsWithAlternativeAnswer.js +69 -64
  132. package/cypress/e2e/ILC/MultipleSelection/partialEqualWeightsWithAlternativeAnswer.js +6 -4
  133. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +220 -0
  134. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabScoringSection.js +11 -5
  135. package/cypress/e2e/ILC/MultipleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +4 -2
  136. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  137. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  138. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  139. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +75 -0
  140. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  141. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  142. package/cypress/e2e/ILC/NumberLine/headerSection.js +33 -4
  143. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  144. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  145. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  146. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  147. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +1 -1
  148. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  149. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  150. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -5
  151. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  152. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +31 -48
  153. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  154. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +192 -0
  155. package/cypress/e2e/ILC/SingleSelection/checkScoringLabelBannerAndCorrectAnswer.js +3 -1
  156. package/cypress/e2e/ILC/SingleSelection/headerSection.js +1 -0
  157. package/cypress/e2e/ILC/SingleSelection/manuallyAndNonScoredScoring.js +94 -88
  158. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +3 -1
  159. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +209 -0
  160. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabScoringSection.js +5 -0
  161. package/cypress/e2e/ILC/SingleSelectionGridNew/styleAndLayoutCustomizationLayoutProperties.js +8 -2
  162. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +84 -0
  163. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +84 -0
  164. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +63 -0
  165. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -1
  166. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +2 -2
  167. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -2
  168. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -3
  169. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +62 -0
  170. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +62 -0
  171. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +63 -0
  172. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +0 -4
  173. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +0 -8
  174. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  175. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +86 -0
  176. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.smoke.js +97 -0
  177. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.smoke.js +97 -0
  178. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.smoke.js +167 -0
  179. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.smoke.js +167 -2
  180. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  181. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +8 -6
  182. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  183. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -1
  184. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +7 -12
  185. package/cypress/e2e/ILC/ThinkSphere/additionalSettings.js +52 -0
  186. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +112 -0
  187. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +561 -0
  188. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +185 -0
  189. package/cypress/e2e/ILC/ThinkSphere/equationEditorCreateCustomCategory.smoke.js +417 -0
  190. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +289 -0
  191. package/cypress/e2e/ILC/ThinkSphere/headerSection.js +53 -0
  192. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +581 -0
  193. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +541 -0
  194. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +296 -0
  195. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +1 -1
  196. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  197. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  198. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  199. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  200. package/cypress/e2e/Sessions/fetchResponses.js +3 -3
  201. package/cypress/e2e/Sessions/scores.js +9 -5
  202. package/cypress/e2e/applitools.config.js +3 -3
  203. package/cypress/fixtures/theme/ilc.json +14 -1
  204. package/cypress/fixtures/uploads/sample.webm +0 -0
  205. package/cypress/fixtures/uploads/sample.wmv +0 -0
  206. package/cypress/fixtures/uploads/sample20MB.mp4 +0 -0
  207. package/cypress/fixtures/uploads/sample2MB.mp4 +0 -0
  208. package/cypress/fixtures/uploads/sample2MB_2.mp4 +0 -0
  209. package/cypress/fixtures/uploads/sample30MB.mp4 +0 -0
  210. package/cypress/pages/audioPlayerPage.js +22 -22
  211. package/cypress/pages/chartsBarPage.js +20 -0
  212. package/cypress/pages/components/additionalSettingsPanel.js +3 -2
  213. package/cypress/pages/components/autoScoredScoringPreviewTab.js +7 -1
  214. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  215. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +16 -28
  216. package/cypress/pages/components/backgroundImageUploadComponent.js +32 -25
  217. package/cypress/pages/components/browseItemsPage.js +998 -7
  218. package/cypress/pages/components/ckEditorAudioPlayerComponent.js +1 -1
  219. package/cypress/pages/components/ckEditorEquationEditorComponent.js +4 -4
  220. package/cypress/pages/components/ckEditorInsertImageComponent.js +3 -3
  221. package/cypress/pages/components/ckEditorLinkComponent.js +3 -3
  222. package/cypress/pages/components/commonComponents.js +8 -1
  223. package/cypress/pages/components/createQuestionBasePage.js +8 -1
  224. package/cypress/pages/components/defaultToolDropdown.js +7 -6
  225. package/cypress/pages/components/editCategoryFlyout.js +2 -2
  226. package/cypress/pages/components/equationEditorSectionCommonComponent.js +13 -26
  227. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +3 -3
  228. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +29 -35
  229. package/cypress/pages/components/gridQuestionCommonComponent.js +8 -37
  230. package/cypress/pages/components/imageCanvasComponent.js +7 -6
  231. package/cypress/pages/components/mcqAdditionalSettingsBase.js +4 -0
  232. package/cypress/pages/components/questionInstructionsComponent.js +7 -0
  233. package/cypress/pages/components/scoringSectionBaseEditTab.js +6 -4
  234. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  235. package/cypress/pages/desmosGeometryPage.js +184 -4
  236. package/cypress/pages/dialogBoxBase.js +2 -1
  237. package/cypress/pages/drawingResponsePage.js +16 -15
  238. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +1 -1
  239. package/cypress/pages/gradingViewPage.js +8 -0
  240. package/cypress/pages/graphingPage.js +27 -8
  241. package/cypress/pages/gridFillPage.js +15 -6
  242. package/cypress/pages/index.js +2 -1
  243. package/cypress/pages/listOrderingPage.js +32 -1
  244. package/cypress/pages/matchingPage.js +26 -7
  245. package/cypress/pages/multipleSelectionPage.js +10 -39
  246. package/cypress/pages/numberLineLabelPage.js +31 -8
  247. package/cypress/pages/numberLinePage.js +19 -7
  248. package/cypress/pages/selectQuestionResourceToolPage.js +8 -2
  249. package/cypress/pages/singleSelectionPage.js +0 -37
  250. package/cypress/pages/textEntryMathPage.js +21 -0
  251. package/cypress/pages/thinkSpherePage.js +1874 -0
  252. package/cypress/pages/uploadResponsePage.js +2 -1
  253. package/cypress/pages/videoResponsePage.js +3 -0
  254. package/cypress/support/commands.js +7 -4
  255. package/cypress/support/e2e.js +1 -0
  256. package/cypress/support/helpers/createItem.js +1181 -1
  257. package/cypress/support/helpers/utilities.js +75 -1
  258. package/package.json +4 -4
  259. package/scripts/dataApi.mjs +3 -0
  260. package/scripts/sorry-cypress.mjs +13 -0
@@ -0,0 +1,296 @@
1
+ import { equationEditorCategoriesAndSymbols } from "../../../fixtures/equationEditorCategoriesAndSymbols ";
2
+ import { thinkSpherePage } from "../../../pages";
3
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
4
+ import utilities from "../../../support/helpers/utilities";
5
+ const css = Cypress.env('css');
6
+ const canvasTools = [
7
+ 'Text', 'Pen', 'Highlighter', 'Image', 'Shapes',
8
+ 'Stamps', 'Unifix Cube', 'Diagrams', 'Array',
9
+ 'Number line', 'Fraction bars', 'Protractor', 'Table', 'Grids',
10
+ 'Equation editor', 'Algebra tiles'
11
+ ];
12
+ const defaultSelectedCanvasTools = ['Text', 'Pen', 'Highlighter', 'Image', 'Shapes', 'Stamps'];
13
+ const canvasControls = ['Move', 'Delete', 'Undo', 'Redo', 'Clear all'];
14
+ const defaultSelectedCanvasControls = ['Move', 'Delete', 'Undo', 'Redo', 'Clear all'];
15
+ const defaultTool = 'Pen';
16
+ const defaultSelectedCategories = ['Numpad', 'Keypad', 'Intermediate', 'Primary', 'General', 'Common', 'Algebra', 'Geo', 'Compare', 'Matrices'];
17
+ const defaultSelectedStamps = ['Stamp 1', 'Stamp 2', 'Stamp 3', 'Stamp 4', 'Stamp 5', 'Stamp 6', 'Stamp 7', 'Stamp 8', 'Stamp 9', 'Stamp 10', 'Stamp 11', 'Stamp 12', 'Stamp 13'];
18
+ const defaultToolsOptions = ['Text', 'Pen', 'Highlighter'];
19
+
20
+
21
+ describe('ThinkSphere Question - Solve Phases Section', () => {
22
+ before(() => {
23
+ cy.loginAs('admin');
24
+ });
25
+
26
+ describe('Create item : ThinkSphere Question - Solve Phases Section - Edit tab', () => {
27
+ abortEarlySetup();
28
+ before(() => {
29
+ cy.loginAs('admin');
30
+ thinkSpherePage.steps.navigateToThinkSphereCreateQuestion();
31
+ cy.barsPreLoaderWait();
32
+ });
33
+
34
+ it('By default \'Solve phase\' accordion should be expanded', () => {
35
+ utilities.verifyInnerText(thinkSpherePage.solvePhaseAccordionLabel(), 'Solve');
36
+ utilities.verifyElementVisibilityState(thinkSpherePage.solvePhaseAccordionExpandIcon(), 'exist');
37
+ });
38
+
39
+ it('When the user clicks the expanded \'Solve phase\' accordion should be collapsed when collapsed accordion is clicked it should be expanded', () => {
40
+ thinkSpherePage.steps.clickOnSolvePhaseAccordionIcon();
41
+ thinkSpherePage.steps.verifySolvePhaseAccordionCollapsed();
42
+ thinkSpherePage.steps.clickOnSolvePhaseAccordionIcon();
43
+ thinkSpherePage.steps.verifySolvePhaseAccordionExpanded();
44
+ });
45
+
46
+ it('By default \'Customize toolbar options and controls\' accordion should be collapsed and by clicking on the \'Customize toolbar options and controls\' accordion, user should be able to expand the accordion', () => {
47
+ utilities.verifyInnerText(thinkSpherePage.customizeToolsAndControlsLabel(), 'Customize toolbar options and controls');
48
+ utilities.verifyElementVisibilityState(thinkSpherePage.customizeToolsAndControlsIcon(), 'exist');
49
+ thinkSpherePage.steps.expandCustomizeToolsAndControls();
50
+ });
51
+
52
+ it('Accessibility of \'Solve phase\' accordion and contents', { tags: 'a11y' }, () => {
53
+ cy.checkAccessibility(thinkSpherePage.solvePhaseAccordionContentWrapper());
54
+ });
55
+
56
+ it('CSS of \'Solve phase\' accordion and contents', { tags: 'css' }, () => {
57
+ cy.log('CSS of accordion label and chevron icon')
58
+ utilities.verifyCSS(thinkSpherePage.solvePhaseAccordionLabel(), {
59
+ 'color': css.color.accordionLabel,
60
+ 'font-size': css.fontSize.default,
61
+ 'font-weight': css.fontWeight.bold
62
+ });
63
+ utilities.verifyCSS(thinkSpherePage.solvePhaseAccordionSvg(), {
64
+ 'fill': css.color.activeButtons
65
+ });
66
+ utilities.verifyCSS(thinkSpherePage.customizeToolsAndControlsLabel(), {
67
+ 'color': css.color.accordionLabel,
68
+ 'font-size': css.fontSize.default,
69
+ 'font-weight': css.fontWeight.bold
70
+ });
71
+ utilities.verifyCSS(thinkSpherePage.customizeToolsAndControlsPath(), {
72
+ 'fill': css.color.activeButtons
73
+ });
74
+
75
+ cy.log('CSS of selected toolbar formatting option')
76
+ utilities.verifyCSS(thinkSpherePage.solveToolsAndControlsOptionsTiles('Text'), {
77
+ 'background-color': css.color.primaryBtnBg
78
+ });
79
+ cy.log('CSS of tick icon of selected toolbar formatting option')
80
+ utilities.verifyCSS(thinkSpherePage.solvePhaseToolsAndControlsOptionsTilesFeatherCheckIcon(), {
81
+ 'fill': css.color.activeButtons
82
+ });
83
+ cy.log('CSS of background of tick icon of selected toolbar formatting option')
84
+ utilities.verifyCSS(thinkSpherePage.solvePhaseToolsAndControlsOptionsTilesRectangle(), {
85
+ 'fill': css.color.defaultBackground
86
+ });
87
+ cy.log('CSS of icon of selected toolbar formatting option')
88
+ utilities.verifyCSS(thinkSpherePage.solvePhaseToolsAndControlsOptionsTilesDragItemFlexWrapperSvg(), {
89
+ 'fill': 'none'
90
+ });
91
+ cy.log('CSS of drag handle of selected toolbar formatting option')
92
+ utilities.verifyCSS(
93
+ utilities.getNthElement(thinkSpherePage.solvePhaseToolsAndControlsOptionsTilesTextDragIconSvgPath(), 1),
94
+ {
95
+ 'color': css.color.activeButtons
96
+ },
97
+ );
98
+ cy.log('CSS of unselected toolbar formatting option')
99
+ utilities.verifyCSS(thinkSpherePage.solveToolsAndControlsOptionsTiles('Array'), {
100
+ 'background-color': css.color.secondaryBtnBg
101
+ });
102
+ cy.log('CSS of drag handle of unselected toolbar formatting option')
103
+ utilities.verifyCSS(
104
+ utilities.getNthElement(thinkSpherePage.solvePhaseToolsAndControlsOptionsTilesArrayDragIconSvgPath(), 1),
105
+ {
106
+ 'fill': css.color.secondaryBtn
107
+ },
108
+ );
109
+ });
110
+
111
+ it('When \'Solve phase\' accordion is in expanded state, then all the tool options should be displayed along with drag handle.', () => {
112
+ thinkSpherePage.steps.verifyToolsAndControlsOptions(canvasTools);
113
+ });
114
+
115
+ it(`When the \'Solve phase\' accordion is in expanded state, then the following tools should be in selected state by default - ${defaultSelectedCanvasTools}. All the other options should be in unselected state.`, () => {
116
+ defaultSelectedCanvasTools.forEach(tool => {
117
+ thinkSpherePage.steps.verifyOptionIsSelected(tool);
118
+ });
119
+ canvasTools.filter(tool => !defaultSelectedCanvasTools.includes(tool)).forEach(tool => {
120
+ thinkSpherePage.steps.verifyOptionIsNotSelected(tool);
121
+ });
122
+ });
123
+
124
+ it('User should be able to unselect any default selected tool and should be able to select any default unselected tool.', () => {
125
+ thinkSpherePage.steps.deselectOptionFromToolsAndControls('Text');
126
+ thinkSpherePage.steps.verifyOptionIsNotSelected('Text');
127
+ thinkSpherePage.steps.selectOptionFromToolsAndControls('Array');
128
+ thinkSpherePage.steps.verifyOptionIsSelected('Array');
129
+ });
130
+
131
+ it('When \'Solve phase\' accordion is in expanded state, then all the control options should be displayed along with drag handle.', () => {
132
+ thinkSpherePage.steps.verifyToolsAndControlsOptions(canvasControls);
133
+ });
134
+
135
+ it(`When the \'Solve phase\' accordion is in expanded state, then the following controls should be in selected state by default - ${defaultSelectedCanvasControls}. All the other options should be in unselected state.`, () => {
136
+ defaultSelectedCanvasControls.forEach(control => {
137
+ thinkSpherePage.steps.verifyOptionIsSelected(control);
138
+ });
139
+ canvasControls.filter(control => !defaultSelectedCanvasControls.includes(control)).forEach(control => {
140
+ thinkSpherePage.steps.verifyOptionIsNotSelected(control);
141
+ });
142
+ });
143
+
144
+ it('User should be able to unselect any default selected control.', () => {
145
+ thinkSpherePage.steps.deselectOptionFromToolsAndControls('Move');
146
+ thinkSpherePage.steps.verifyOptionIsNotSelected('Move');
147
+ });
148
+
149
+ thinkSpherePage.tests.verifyDefaultToolDropdown(defaultToolsOptions, defaultTool);
150
+
151
+ it('\'Customize stamps\' component should be present inside \'Customize toolbar options and controls\' accordion of solve phase', () => {
152
+ thinkSpherePage.steps.verifyCustomizeStampsComponent();
153
+ utilities.verifyInnerText(thinkSpherePage.customizeStampHeading(), 'Customize stamp');
154
+ });
155
+
156
+ it('Default stamps should be displayed and selected by default in the \'Customize stamps\' component', () => {
157
+ thinkSpherePage.steps.verifyDefaultStamps(defaultSelectedStamps);
158
+ });
159
+
160
+ it('Default stamps should have visible tool tips', () => {
161
+ defaultSelectedStamps.forEach((ele) => {
162
+ thinkSpherePage.customizeStampCard(ele).verifyTooltip(ele);
163
+ });
164
+ });
165
+
166
+ it('When user select deselect stamps tool from tools section, then customize stamps section should be visible and hide respectively', () => {
167
+ thinkSpherePage.steps.clickOnStampsTool();
168
+ utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampComponent(), 'notExist');
169
+ thinkSpherePage.steps.clickOnStampsTool();
170
+ utilities.verifyElementVisibilityState(thinkSpherePage.customizeStampComponent(), 'visible');
171
+ });
172
+
173
+ it('CSS of \'Customize stamps\' component', { tags: 'css' }, () => {
174
+ thinkSpherePage.customizeStampComponent()
175
+ .within(() => {
176
+ utilities.verifyCSS(thinkSpherePage.customizeStampHeading(), {
177
+ 'color': css.color.sectionHeading,
178
+ 'font-size': css.fontSize.normal,
179
+ 'font-weight': css.fontWeight.semibold,
180
+ 'padding-bottom': '8px'
181
+ });
182
+ utilities.verifyCSS(utilities.getNthElement(thinkSpherePage.customizeStampCard(), 0), {
183
+ 'width': '80px',
184
+ 'height': '80px',
185
+ 'border': `1px solid ${css.color.figDefaultComponentBorder}`,
186
+ 'background-color': css.color.primaryBtn,
187
+ 'border-radius': '8px',
188
+ });
189
+ });
190
+ });
191
+
192
+ it('User should be able to select and unselect any stamp from the \'Customize stamps\' component', () => {
193
+ thinkSpherePage.steps.verifySelectAndUnselectStamps();
194
+ });
195
+
196
+ it('CSS of unselected \'Customize stamp\' card component', { tags: 'css' }, () => {
197
+ thinkSpherePage.steps.clickOnCustomizeCard(0);
198
+ utilities.verifyCSS(utilities.getNthElement(thinkSpherePage.customizeStampCard(), 0), {
199
+ 'width': '80px',
200
+ 'height': '80px',
201
+ 'border': `1px solid ${css.color.secondaryBtnDisabled}`,
202
+ 'background-color': css.color.primaryBtn,
203
+ 'border-radius': '8px',
204
+ });
205
+ thinkSpherePage.steps.clickOnCustomizeCard(0);
206
+ });
207
+
208
+ thinkSpherePage.tests.verifyDefaultToolDropdown(defaultToolsOptions, defaultTool);
209
+
210
+ it('By default, Equation Editor categories should not be displayed', () => {
211
+ utilities.verifyElementVisibilityState(thinkSpherePage.equationEditorSectionWrapper(), 'notExist');
212
+ });
213
+
214
+ it('When clicking the Equation Editor Tool, Equation Editor categories should be displayed', () => {
215
+ thinkSpherePage.steps.selectCustomizedFormattingOption(['Equation editor']);
216
+ utilities.verifyElementVisibilityState(thinkSpherePage.equationEditorSectionWrapper(), 'exist');
217
+ });
218
+
219
+ it(`By default, ${defaultSelectedCategories.toString()} should be selected`, () => {
220
+ defaultSelectedCategories.forEach((category) => {
221
+ thinkSpherePage.steps.verifySelectedCategoryInEquationEditorSectionEditTab(category);
222
+ });
223
+ });
224
+
225
+ it('CSS of selected and deselected category', { tags: 'css' }, () => {
226
+ cy.log('CSS of selected category')
227
+
228
+ utilities.verifyCSS(utilities.getNthElement(thinkSpherePage.equationEditorSectionCategories(), 0), {
229
+ 'background-color': css.color.activeButtons
230
+ });
231
+
232
+ utilities.getNthElement(thinkSpherePage.equationEditorSectionCategories(), 0)
233
+ .within(() => {
234
+ utilities.verifyCSS(thinkSpherePage.equationEditorSectionCategoryLabel(), {
235
+ 'color': css.color.primaryBtn,
236
+ 'font-size': css.fontSize.small,
237
+ 'font-weight': css.fontWeight.regular
238
+ });
239
+ utilities.verifyCSS(thinkSpherePage.equationEditorSectionTickIcon(), {
240
+ 'fill': css.color.activeButtons
241
+ });
242
+ utilities.verifyCSS(thinkSpherePage.equationEditorSectionCategoriesDragIcon(), {
243
+ 'fill': css.color.activeButtons
244
+ });
245
+ });
246
+
247
+ cy.log('CSS of deselected category')
248
+
249
+ utilities.verifyCSS(utilities.getNthElement(thinkSpherePage.equationEditorSectionCategories(), 12), {
250
+ 'background-color': css.color.primaryBtn
251
+ });
252
+
253
+ utilities.getNthElement(thinkSpherePage.equationEditorSectionCategories(), 12)
254
+ .within(() => {
255
+ utilities.verifyCSS(thinkSpherePage.equationEditorSectionCategoryLabel(), {
256
+ 'color': css.color.secondaryBtn,
257
+ 'font-size': css.fontSize.small,
258
+ 'font-weight': css.fontWeight.regular
259
+ });
260
+ utilities.verifyCSS(thinkSpherePage.equationEditorSectionCategoriesDragIcon(), {
261
+ 'fill': css.color.secondaryBtn
262
+ });
263
+ });
264
+ });
265
+
266
+ it('The edit button should not be displayed for the keypad category button.', () => {
267
+ utilities.verifyElementVisibilityState(thinkSpherePage.equationEditorSectionCategories().contains(`${equationEditorCategoriesAndSymbols['keyPad'].displayName}`).find(thinkSpherePage.equationEditorSectionCategoriesEditIcon()), 'visible');
268
+ })
269
+
270
+ it('User should be able to unselect default selected category and should be able to select default unselected category.', () => {
271
+ thinkSpherePage.equationEditorSectionCategories().contains(`${equationEditorCategoriesAndSymbols['keyPad'].displayName}`).click();
272
+ thinkSpherePage.steps.verifyEquationEditorSectionCategoryNotPressed()
273
+ thinkSpherePage.equationEditorSectionCategories().contains(`${equationEditorCategoriesAndSymbols['setNotation'].displayName}`).click();
274
+ thinkSpherePage.steps.verifyEquationEditorSectionCategoryIsPressed();
275
+ });
276
+
277
+ it('The \'Equation Editor\' should be displayed along with helper text \'Select the categories to display to the students in the equation editor.\' and \'Create custom category\' button should be displayed', () => {
278
+ utilities.verifyElementVisibilityState(thinkSpherePage.equationEditorSectionTitle(), 'visible');
279
+ utilities.verifyInnerText(thinkSpherePage.equationEditorSectionTitle(), 'Equation editor');
280
+ utilities.verifyElementVisibilityState(thinkSpherePage.equationEditorSectionHelperText(), 'visible');
281
+ utilities.verifyInnerText(thinkSpherePage.equationEditorSectionHelperText(), 'Select the categories to display to the students in the equation editor.');
282
+ utilities.verifyElementVisibilityState(thinkSpherePage.createCustomCategoryButton(), 'visible');
283
+ utilities.verifyInnerText(thinkSpherePage.createCustomCategoryButton(), 'Create custom category');
284
+ });
285
+
286
+ it.skip('Accessibility of selected and deselected category', { tags: 'a11y' }, () => {
287
+ cy.checkAccessibility(thinkSpherePage.equationEditorSectionCategories().contains(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`).parents('[class*="DraggableItemsGrid"]'))
288
+ });
289
+
290
+ it('When user add question image then it should replicate at customize stamps first card and it should be unselected', () => {
291
+ thinkSpherePage.steps.uploadFile('uploads/highlightImage.jpg');
292
+ cy.wait(5000);
293
+ thinkSpherePage.steps.verifyQuestionImageCustomStamp();
294
+ });
295
+ });
296
+ })
@@ -99,7 +99,7 @@ describe('Create question page - Audio player: Header section and saving resourc
99
99
  });
100
100
 
101
101
  describe('Validation error messages', () => {
102
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
102
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please upload a file']);
103
103
 
104
104
  it('Validation error message(s) should be displayed below required input field(s)', () => {
105
105
  utilities.verifyElementVisibilityState(audioPlayerPage.errorMessage(), 'visible');
@@ -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
  });
@@ -5,7 +5,15 @@ describe('Scores API cases', () => {
5
5
  var sessionData = [{}, {}, {}];
6
6
  var timestamp;
7
7
  var dtScoreUpdateArray = [];
8
- let itemReferenceIdNew = "cd2f017-4f0-33b3-062b-ab6150047a83";
8
+
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;
9
17
  let dt_score_update;
10
18
  let response_id;
11
19
  let dt_saved;
@@ -121,10 +129,6 @@ describe('Scores API cases', () => {
121
129
  it('If the user clicks on the Scores option from the menu bar, user should be navigated to the Scores API page', () => {
122
130
  cy.contains('Scores')
123
131
  .click();
124
- cy.contains('Scores')
125
- .parent()
126
- .parent()
127
- .should('have.class', 'Mui-selected');
128
132
  cy.url()
129
133
  .should('eq', Cypress.config().baseUrl + '/item-engine/data-api/sessions/fetch-scores');
130
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",