itemengine-cypress-automation 1.0.189-e2e-execution-crash-83cdbd4.0 → 1.0.190-repoUpdate3May-f180558.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. package/cypress/e2e/ILC/AudioPlayerNew/allSupportedFileTypes.js +79 -0
  2. package/cypress/e2e/ILC/AudioPlayerNew/barAudioPlayerStyle.js +647 -0
  3. package/cypress/e2e/ILC/AudioPlayerNew/compactAudioPlayerStyle.js +429 -0
  4. package/cypress/e2e/ILC/AudioPlayerNew/customizePlayerLayoutSettings.js +596 -0
  5. package/cypress/e2e/ILC/AudioPlayerNew/previewContents.smoke.js +162 -0
  6. package/cypress/e2e/ILC/AudioPlayerNew/standardAudioPlayerStyle.js +792 -0
  7. package/cypress/e2e/ILC/AudioPlayerNew/studentViewSettings.js +253 -0
  8. package/cypress/e2e/ILC/AudioPlayerNew/uploadAndAddAudioFile.js +313 -0
  9. package/cypress/e2e/ILC/AudioResponseNew/additionalSettingsBasic.js +1 -22
  10. package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +1 -1
  11. package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +1 -1
  12. package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.smoke.js +1 -1
  13. package/cypress/e2e/ILC/AudioResponseNew/studentViewSettings.js +2 -11
  14. package/cypress/e2e/ILC/ChartsBar/previewContentsForAllViews.smoke.js +359 -0
  15. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +1 -1
  16. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +6 -8
  17. package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +417 -28
  18. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +1 -1
  19. package/cypress/e2e/ILC/FeedbackScaleNew/headerSection.js +29 -1
  20. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +2 -2
  21. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettings.js +1 -1
  22. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/studentViewSettings.js +1 -1
  23. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +1 -0
  24. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +2 -2
  25. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -1
  26. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/studentViewSettings.js +1 -1
  27. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +4 -4
  28. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  29. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +1 -1
  30. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +5 -5
  31. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +3 -4
  32. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  33. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +1 -0
  34. package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +1 -1
  35. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
  36. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +2 -2
  37. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +2 -2
  38. package/cypress/e2e/ILC/Graphing/addBackgroundShapesSection.js +2 -2
  39. package/cypress/e2e/ILC/Graphing/studentViewSettings.js +1 -1
  40. package/cypress/e2e/ILC/GridFill/checkAnswerFunctionalityForAllViews.smoke.js +3 -2
  41. package/cypress/e2e/ILC/GridFill/gridLayoutContents.js +11 -3
  42. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +3 -3
  43. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingScoringCellShadeCount.js +2 -2
  44. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +143 -0
  45. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountPartialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +132 -0
  46. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountPartialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +143 -0
  47. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountPartialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +144 -0
  48. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +143 -0
  49. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +131 -0
  50. package/cypress/e2e/ILC/GridFill/scoring/matchExactAndCellShadeCountCombinedScoring.js +87 -0
  51. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsCellShadeCountBasics.js +446 -0
  52. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +1 -1
  53. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +194 -0
  54. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +195 -0
  55. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +274 -0
  56. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingPenaltyScoring.js +48 -0
  57. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +144 -0
  58. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +252 -0
  59. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsBasic.js +102 -0
  60. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +256 -0
  61. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +253 -0
  62. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +308 -0
  63. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +225 -0
  64. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +151 -0
  65. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +196 -0
  66. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +227 -0
  67. package/cypress/e2e/ILC/ListOrderingDropdown/additionalSettings.js +91 -0
  68. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +230 -0
  69. package/cypress/e2e/ILC/ListOrderingDropdown/checkAnswerFunctionalityForAllViews.smoke.js +124 -0
  70. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +221 -0
  71. package/cypress/e2e/ILC/ListOrderingDropdown/editTabScoring.js +203 -0
  72. package/cypress/e2e/ILC/ListOrderingDropdown/manuallyAndNonScoredEditTab.js +71 -0
  73. package/cypress/e2e/ILC/ListOrderingDropdown/minimumScoringPenaltyPointsAndRoundingDropdown.js +197 -0
  74. package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +201 -0
  75. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +115 -0
  76. package/cypress/e2e/ILC/ListOrderingDropdown/studentViewSettings.js +183 -0
  77. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +216 -0
  78. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +214 -0
  79. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +273 -0
  80. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingPenaltyScoring.js +52 -0
  81. package/cypress/e2e/ILC/ListOrderingNew/Scoring/manuallyAndNonScored.js +128 -0
  82. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +279 -0
  83. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsBasic.js +109 -0
  84. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +278 -0
  85. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +278 -0
  86. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +335 -0
  87. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +250 -0
  88. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsBasic.js +161 -0
  89. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +216 -0
  90. package/cypress/e2e/ILC/ListOrderingNew/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +252 -0
  91. package/cypress/e2e/ILC/ListOrderingNew/additionalSettings.js +118 -0
  92. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +243 -0
  93. package/cypress/e2e/ILC/ListOrderingNew/checkAnswerFunctionalityForAllViews.smoke.js +128 -0
  94. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +155 -0
  95. package/cypress/e2e/ILC/ListOrderingNew/editTabScoring.js +195 -0
  96. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +78 -0
  97. package/cypress/e2e/ILC/ListOrderingNew/manuallyAndNonScoredEditTab.js +69 -0
  98. package/cypress/e2e/ILC/ListOrderingNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +194 -0
  99. package/cypress/e2e/ILC/ListOrderingNew/previewContentsForAllViews.smoke.js +176 -0
  100. package/cypress/e2e/ILC/ListOrderingNew/specifyCorrectAnswerSection.js +112 -0
  101. package/cypress/e2e/ILC/ListOrderingNew/studentViewSettings.js +244 -0
  102. package/cypress/e2e/ILC/Matching/studentViewSettings.js +1 -1
  103. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +1 -0
  104. package/cypress/e2e/ILC/MultipleSelectionGridNew/studentViewSettings.js +1 -1
  105. package/cypress/e2e/ILC/NumberLine/LayoutSection.js +209 -0
  106. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +1 -1
  107. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +1 -1
  108. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +4 -4
  109. package/cypress/e2e/ILC/NumberLine/Scoring/manualAndNonScoredScoring.js +1 -1
  110. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsBasic.js +1 -1
  111. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithAlternatePointsGreaterThanCorrectPoints.js +1 -1
  112. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternatePoints.js +1 -1
  113. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeigtsWithCorrectPointsEqualToAlternatePoints.js +1 -1
  114. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +58 -2
  115. package/cypress/e2e/ILC/NumberLine/checkAnswerFunctionalityForAllViews.smoke.js +1 -1
  116. package/cypress/e2e/ILC/NumberLine/editTabScoringSection.js +1 -1
  117. package/cypress/e2e/ILC/NumberLine/gradingViewAndCorrectAnswerView.smoke.js +2 -2
  118. package/cypress/e2e/ILC/NumberLine/headerSection.js +1 -1
  119. package/cypress/e2e/ILC/NumberLine/lineSettingsSection.js +33 -0
  120. package/cypress/e2e/ILC/NumberLine/numberLineSection.js +50 -0
  121. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +2 -2
  122. package/cypress/e2e/ILC/NumberLine/specifyCorrectAnswerSection.js +1 -1
  123. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +2 -2
  124. package/cypress/e2e/ILC/NumberLine/toolSettings.js +2 -1
  125. package/cypress/e2e/ILC/NumberLine/toolsAndControls.js +1 -1
  126. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +696 -0
  127. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +173 -0
  128. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/layoutSection.js +211 -0
  129. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/numberLineSection.js +75 -0
  130. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/previewTabContentsForAllViews.smoke.js +204 -0
  131. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +229 -0
  132. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +229 -0
  133. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +229 -0
  134. package/cypress/e2e/ILC/NumberLineLabel/Scoring/manualAndNonScoredScoring.js +169 -0
  135. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +274 -0
  136. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsBasic.js +433 -0
  137. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +274 -0
  138. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +274 -0
  139. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +249 -0
  140. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsBasic.js +135 -0
  141. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +210 -0
  142. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +248 -0
  143. package/cypress/e2e/ILC/NumberLineLabel/additionalSettingsBasic.js +115 -0
  144. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +288 -0
  145. package/cypress/e2e/ILC/NumberLineLabel/checkAnswerFunctionalityForAllViews.smoke.js +153 -0
  146. package/cypress/e2e/ILC/NumberLineLabel/editTabBasicSection.js +326 -0
  147. package/cypress/e2e/ILC/NumberLineLabel/editTabScoring.js +234 -0
  148. package/cypress/e2e/ILC/NumberLineLabel/gradingViewAndCorrectAnswerView.smoke.js +164 -0
  149. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +80 -0
  150. package/cypress/e2e/ILC/NumberLineLabel/layoutSection.js +204 -0
  151. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +79 -0
  152. package/cypress/e2e/ILC/NumberLineLabel/minimumScoringPenaltyPointsAndRoundingDropdown.js +85 -0
  153. package/cypress/e2e/ILC/NumberLineLabel/numberLineSection.js +51 -0
  154. package/cypress/e2e/ILC/NumberLineLabel/previewContentsForAllViews.smoke.js +120 -0
  155. package/cypress/e2e/ILC/NumberLineLabel/specifyCorrectAnswerSection.js +74 -0
  156. package/cypress/e2e/ILC/NumberLineLabel/studentViewSettings.js +183 -0
  157. package/cypress/e2e/ILC/NumberLineLabel/toolSettings.js +76 -0
  158. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +292 -0
  159. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/checkAnswerFunctionalityForAllViews.smoke.js +155 -0
  160. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +166 -0
  161. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/layoutSection.js +360 -0
  162. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/numberLineSection.js +80 -0
  163. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/previewContentsForAllViews.smoke.js +111 -0
  164. package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
  165. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +49 -1
  166. package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +1 -1
  167. package/cypress/e2e/ILC/SingleSelectionGridNew/studentViewSettings.js +1 -1
  168. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +2 -2
  169. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -1
  170. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -1
  171. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -1
  172. package/cypress/e2e/ILC/TextSelection/Scoring/basicScoringForAllTextSelectionTypes.smoke.js +0 -1
  173. package/cypress/e2e/ILC/TextSelection/additionalSettings.js +125 -0
  174. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +0 -1
  175. package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +2 -2
  176. package/cypress/e2e/ILC/TextSelection/editTabScoringSection.js +5 -4
  177. package/cypress/e2e/ILC/TextSelection/headerSection.js +73 -0
  178. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +6 -7
  179. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +179 -0
  180. package/cypress/e2e/ILC/TextSelection/specifyCorrectAnswerSection.js +89 -0
  181. package/cypress/e2e/ILC/TextSelection/studentViewSettings.js +436 -0
  182. package/cypress/e2e/ILC/TextSelection/styleAndLayoutCustomizationAccordion.js +277 -0
  183. package/cypress/e2e/ILC/TextSelection/textSelectionModesInPreviewTab.js +222 -0
  184. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyCorrectAnswerSection.js +260 -0
  185. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +380 -0
  186. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +5 -5
  187. package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +3 -3
  188. package/cypress/e2e/ILC/VideoResponseNew/additionalSettingsBasic.js +77 -0
  189. package/cypress/e2e/ILC/VideoResponseNew/customizePlaybackControls.js +313 -0
  190. package/cypress/e2e/ILC/VideoResponseNew/editAndPreviewTabScoringSection.js +99 -0
  191. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +171 -0
  192. package/cypress/e2e/ILC/VideoResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +179 -0
  193. package/cypress/e2e/ILC/VideoResponseNew/headerSection.js +79 -0
  194. package/cypress/e2e/ILC/VideoResponseNew/previewContentsForAllViews.smoke.js +201 -0
  195. package/cypress/e2e/ILC/VideoResponseNew/standardRecorderStyle.js +567 -0
  196. package/cypress/e2e/ILC/VideoResponseNew/studentViewSettings.js +194 -0
  197. package/cypress/fixtures/constants.js +1 -1
  198. package/cypress/fixtures/drawingToolbarOptionsAdditionalOptionsAndSpecialAndMathCharacters.js +1 -1
  199. package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +20 -20
  200. package/cypress/fixtures/theme/ilc.json +22 -18
  201. package/cypress/pages/audioPlayerPage.js +668 -446
  202. package/cypress/pages/audioResponsePage.js +8 -80
  203. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  204. package/cypress/pages/chartsBarPage.js +231 -0
  205. package/cypress/pages/chartsDotPlotPage.js +8 -0
  206. package/cypress/pages/chartsLinePage.js +42 -0
  207. package/cypress/pages/components/allowTeachersToDownloadStudentResponseComponent.js +58 -0
  208. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +13 -23
  209. package/cypress/pages/components/autoScoredStudentViewSettings.js +6 -6
  210. package/cypress/pages/components/barAndLineChartComponent.js +120 -0
  211. package/cypress/pages/components/chartsCommonComponent.js +105 -0
  212. package/cypress/pages/components/commonComponents.js +1 -0
  213. package/cypress/pages/components/draggableOptionContainer.js +2 -1
  214. package/cypress/pages/components/equationEditorFlyout.js +3 -2
  215. package/cypress/pages/components/essayResponseCommonComponents.js +8 -2
  216. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +1 -0
  217. package/cypress/pages/components/imageCanvasComponent.js +2 -1
  218. package/cypress/pages/components/index.js +7 -0
  219. package/cypress/pages/components/layoutSectionComponent.js +1156 -0
  220. package/cypress/pages/components/limitNumberOfRetakeComponent.js +90 -0
  221. package/cypress/pages/components/numberLineCommonComponent.js +685 -0
  222. package/cypress/pages/components/optionsWrapperComponent.js +13 -2
  223. package/cypress/pages/components/playbackControlsBaseComponent.js +20 -13
  224. package/cypress/pages/components/questionInstructionsComponent.js +3 -19
  225. package/cypress/pages/components/styleAndLayoutCustomizationAccordionComponent.js +46 -0
  226. package/cypress/pages/components/toolSettingsComponent.js +6 -0
  227. package/cypress/pages/contentBlocksPage.js +18 -2
  228. package/cypress/pages/createItemPage.js +75 -8
  229. package/cypress/pages/dialogBoxBase.js +2 -2
  230. package/cypress/pages/drawingResponsePage.js +24 -4
  231. package/cypress/pages/feedbackScalePage.js +3 -0
  232. package/cypress/pages/graphingPage.js +19 -1
  233. package/cypress/pages/gridFillPage.js +47 -59
  234. package/cypress/pages/index.js +5 -1
  235. package/cypress/pages/itemPreviewSettingsPage.js +4 -0
  236. package/cypress/pages/listOrderingPage.js +561 -555
  237. package/cypress/pages/matchingPage.js +1 -1
  238. package/cypress/pages/multipleSelectionPage.js +23 -1
  239. package/cypress/pages/numberLineLabelPage.js +1086 -0
  240. package/cypress/pages/numberLinePage.js +696 -78
  241. package/cypress/pages/rulerPage.js +6 -2
  242. package/cypress/pages/textSelectionPage.js +461 -23
  243. package/cypress/pages/videoResponsePage.js +393 -81
  244. package/package.json +1 -1
@@ -0,0 +1,1156 @@
1
+ import utilities from "../../support/helpers/utilities";
2
+ import { dialogBoxBase } from "../dialogBoxBase";
3
+ const css = Cypress.env('css');
4
+ const orientationToggleButton = ['Horizontal', 'Vertical'];
5
+ const lineSettingsOptions = ['Whole numbers', 'Decimals', 'Fractions', 'Mixed fractions'];
6
+
7
+ const selectors = {
8
+ //layout
9
+ layoutLabel: () => cy.get('.customized-options-label'),
10
+ layoutAccordionChevronButton: () => cy.get('.number-line-response-accordion [class*="MuiAccordionSummary-expandIconWrapper"]'),
11
+ layoutAccordionButton: () => cy.get('.number-line-response-accordion .ngie-accordion-summary'),
12
+ orientationLabel: () => cy.get('.number-line-layout-options .single-select-toggle-group-title'),
13
+ orientationToggleButton: (ariaLabel = null) => {
14
+ if (ariaLabel !== null) {
15
+ return cy.get(`.number-line-layout-options [class*="SingleSelectToggleGroupstyles__ButtonContainer"] button[aria-label*="${ariaLabel}"]`);
16
+ } else {
17
+ return cy.get('.number-line-layout-options [class*="SingleSelectToggleGroupstyles__ButtonContainer"] button');
18
+ }
19
+ },
20
+ widthLabel: () => cy.get('.number-line-layout-options [aria-labelledby="Width (px)"]'),
21
+ widthInputField: () => cy.get('.number-line-layout-options input[aria-label="Width (px)"]'),
22
+ heightLabel: () => cy.get('.number-line-layout-options [aria-labelledby="Height (px)"]'),
23
+ heightInputField: () => cy.get('.number-line-layout-options input[aria-label="Height (px)"]'),
24
+ marginLabel: () => cy.get('.margin-input-wrapper [aria-labelledby="Margin (px)"]'),
25
+ marginInputField: () => cy.get('.number-line-layout-options input[aria-label="Margin (px)"]'),
26
+ responseSpacingLabel: () => cy.get('.dropdown-wrapper [aria-labelledby="Response Spacing"]'),
27
+ responseSpacingInputField: () => cy.get('.dropdown-wrapper input[aria-label="Response Spacing"]'),
28
+ makeResponsiveLabel: () => cy.get('.mobile-responsive-wrapper .MuiFormControlLabel-label'),
29
+ makeResponsiveCheckbox: () => cy.get('.mobile-responsive-wrapper input'),
30
+ makeResponsiveCheckboxIcon: () => cy.get('.mobile-responsive-wrapper .MuiSwitch-thumb'),
31
+ whatIsThisLabel: () => cy.get('.what-is-wrapper [class*="StyledLink"]'),
32
+ makeResponsiveHelpText: () => cy.get('[class*="WhatIsThisDescriptionWrapper"]'),
33
+ showMinArrowLabel: () => cy.get('[data-ngie-testid="show-min-arrow-checkbox"] .MuiFormControlLabel-label'),
34
+ showMinArrowCheckbox: () => cy.get('[data-ngie-testid="show-min-arrow-checkbox"] input'),
35
+ showMaxArrowLabel: () => cy.get('[data-ngie-testid="show-max-arrow-checkbox"] .MuiFormControlLabel-label'),
36
+ showMaxArrowCheckbox: () => cy.get('[data-ngie-testid="show-max-arrow-checkbox"] input'),
37
+ stackResponsesLabel: () => cy.get('[data-ngie-testid="stack-responses-checkbox"] .MuiFormControlLabel-label'),
38
+ stackResponsesCheckbox: () => cy.get('[data-ngie-testid="stack-responses-checkbox"] input'),
39
+ staggerResponseLabel: () => cy.get('[data-ngie-testid="stagger-response-checkbox"] .MuiFormControlLabel-label'),
40
+ staggerResponseCheckbox: () => cy.get('[data-ngie-testid="stagger-response-checkbox"] input'),
41
+ showLabelsLabel: () => cy.get('[data-ngie-testid="show-labels-checkbox"] .MuiFormControlLabel-label'),
42
+ showLabelsCheckbox: () => cy.get('[data-ngie-testid="show-labels-checkbox"] input'),
43
+ showTicksLabel: () => cy.get('[data-ngie-testid="show-ticks-checkbox"] .MuiFormControlLabel-label'),
44
+ showTicksCheckbox: () => cy.get('[data-ngie-testid="show-ticks-checkbox"] input'),
45
+ showMinLabel: () => cy.get('[data-ngie-testid="show-min-checkbox"] .MuiFormControlLabel-label'),
46
+ showMinCheckbox: () => cy.get('[data-ngie-testid="show-min-checkbox"] input'),
47
+ showMaxLabel: () => cy.get('[data-ngie-testid="show-max-checkbox"] .MuiFormControlLabel-label'),
48
+ showMaxCheckbox: () => cy.get('[data-ngie-testid="show-max-checkbox"] input'),
49
+ limitNumbersOfResponsesLabel: () => cy.get('[data-ngie-testid="limit-number-of-responses-checkbox"] .MuiFormControlLabel-label'),
50
+ limitNumbersOfResponsesCheckbox: () => cy.get('[data-ngie-testid="limit-number-of-responses-checkbox"] input'),
51
+ limitNumbersOfResponsesInputField: () => cy.get('.limit-number-line-response-wrapper .text-input-field input'),
52
+
53
+ //Number line section
54
+ titlePopupAddLabelLabel: () => cy.get('[aria-labelledby="alert-dialog-title"] .inline-text-property-label'),
55
+ titlePopupAddLabelInputField: () => cy.get('[aria-labelledby="alert-dialog-title"] input'),
56
+ titlePopupCancelButton: () => cy.get('.compact-popup-action-button-wrapper button').eq(0),
57
+ titlePopupSaveButton: () => cy.get('.compact-popup-action-button-wrapper button').eq(1),
58
+ numberLineNumberLineSection: () => cy.get('.number-line-grid-setting .ngie-jxgbox svg'),
59
+ numberLineAxisNumberLineSection: () => cy.get('.number-line-grid-setting .ngie-jxgbox svg line'),
60
+ numberLineTitleNumberLineSection: () => cy.get('[class*="LineGraphComponentsstyles__TitleContainer"]'),
61
+ minLabel: () => cy.get('[class*="LineGraphComponentsstyles__GraphRightLeft"] [class*="LineGraphComponentsstyles__CustomInputFieldLabel"]').eq(0),
62
+ minInputField: () => cy.get('[class*="LineGraphComponentsstyles__GraphRightLeft"] input').eq(0),
63
+ maxLabel: () => cy.get('[class*="LineGraphComponentsstyles__GraphRightLeft"] [class*="LineGraphComponentsstyles__CustomInputFieldLabel"]').eq(1),
64
+ maxInputField: () => cy.get('[class*="LineGraphComponentsstyles__GraphRightLeft"] input').eq(1),
65
+ intervalLabel: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [aria-labelledby="Interval"]'),
66
+ intervalInputField: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] input[id="Interval"]'),
67
+ annotateEveryLabel: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [aria-labelledby="Annotate every"]'),
68
+ annotateEveryInputField: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] input[id="Annotate every"]'),
69
+ lineSettingsToggleButtonWrapper: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [class*="SingleSelectToggleGroupstyles__ToggleButtonWrapper"]').eq(0),
70
+ lineSettingsLabel: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] .single-select-toggle-group-title').eq(0),
71
+ lineSettingsToggleButton: (ariaLabel = null) => {
72
+ if (ariaLabel !== null) {
73
+ return cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [class*="SingleSelectToggleGroupstyles__ButtonContainer"]').eq(0).find(`button[aria-label*="${ariaLabel}"]`);
74
+ } else {
75
+ return cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [class*="SingleSelectToggleGroupstyles__ButtonContainer"]').eq(0).find('button');
76
+ }
77
+ },
78
+ displayNumbersToggleButtonWrapper: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [class*="SingleSelectToggleGroupstyles__ToggleButtonWrapper"]').eq(1),
79
+ displayNumbersLabel: () => cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] .single-select-toggle-group-title').eq(1),
80
+ displayNumbersToggleButton: (ariaLabel = null) => {
81
+ if (ariaLabel !== null) {
82
+ return cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [class*="SingleSelectToggleGroupstyles__ButtonContainer"]').eq(1).find(`button[aria-label*="${ariaLabel}"]`);
83
+ } else {
84
+ return cy.get('[class*="LineGridSettingstyles__LineSettingFlexWrapper"] [class*="SingleSelectToggleGroupstyles__ButtonContainer"]').eq(1).find('button');
85
+ }
86
+ },
87
+ displaySpecificAnnotationLabel: () => cy.get('[class*="LineGridSettingstyles__SpecificAnnotationWrapper"] .inline-text-property-label'),
88
+ displaySpecificAnnotationInputField: () => cy.get('[class*="LineGridSettingstyles__SpecificAnnotationWrapper"] input')
89
+ }
90
+
91
+ const steps = {
92
+ verifyLayoutAccordionIsCollapsed: () => {
93
+ layoutSectionComponent.layoutAccordionButton()
94
+ .should('have.attr', 'aria-expanded', 'false');
95
+ layoutSectionComponent.layoutAccordionChevronButton()
96
+ .should('not.have.class', 'Mui-expanded');
97
+ },
98
+
99
+ verifyLayoutAccordionIsExpanded: () => {
100
+ layoutSectionComponent.layoutAccordionButton()
101
+ .should('have.attr', 'aria-expanded', 'true');
102
+ layoutSectionComponent.layoutAccordionChevronButton()
103
+ .should('have.class', 'Mui-expanded');
104
+ },
105
+
106
+ expandLayoutAccordion: () => {
107
+ layoutSectionComponent.layoutAccordionButton()
108
+ .click();
109
+ layoutSectionComponent.layoutAccordionButton()
110
+ .should('have.attr', 'aria-expanded', 'true');
111
+ layoutSectionComponent.layoutAccordionChevronButton()
112
+ .should('have.class', 'Mui-expanded');
113
+ },
114
+
115
+ collapseLayoutAccordion: () => {
116
+ layoutSectionComponent.layoutAccordionButton()
117
+ .click();
118
+ layoutSectionComponent.layoutAccordionButton()
119
+ .should('have.attr', 'aria-expanded', 'false');
120
+ layoutSectionComponent.layoutAccordionChevronButton()
121
+ .should('not.have.class', 'Mui-expanded');
122
+ },
123
+
124
+ verifyMakeResponsiveCheckboxChecked: () => {
125
+ layoutSectionComponent.makeResponsiveCheckboxIcon()
126
+ .should('have.class', 'icon-ILC-tick-icon');
127
+ },
128
+
129
+ verifyMakeResponsiveCheckboxUnchecked: () => {
130
+ layoutSectionComponent.makeResponsiveCheckboxIcon()
131
+ .should('have.class', 'icon-x-circle');
132
+ },
133
+
134
+ checkMakeResponsiveCheckbox: () => {
135
+ layoutSectionComponent.makeResponsiveCheckboxIcon()
136
+ .click({ force: true });
137
+ steps.verifyMakeResponsiveCheckboxChecked();
138
+ },
139
+
140
+ uncheckMakeResponsiveCheckbox: () => {
141
+ layoutSectionComponent.makeResponsiveCheckboxIcon()
142
+ .click({ force: true });
143
+ steps.verifyMakeResponsiveCheckboxUnchecked();
144
+ },
145
+
146
+ /**
147
+ * Enters the specified value into the input field.
148
+ * @param {number} value - The value to enter into the input field.
149
+ */
150
+ enterTextInWidthInputField: (value) => {
151
+ layoutSectionComponent.widthInputField()
152
+ .clear()
153
+ .type(value);
154
+ },
155
+
156
+ /**
157
+ * Verifies that the input field has the specified value.
158
+ * @param {number} value - The expected value of the input field
159
+ */
160
+ verifyTextInWidthInputField: (value) => {
161
+ layoutSectionComponent.widthInputField()
162
+ .should('have.value', value);
163
+ },
164
+
165
+ /**
166
+ * Enters the specified value into the input field.
167
+ * @param {number} value - The value to enter into the input field.
168
+ */
169
+ enterTextInMarginInputField: (value) => {
170
+ layoutSectionComponent.marginInputField()
171
+ .clear()
172
+ .type(value);
173
+ },
174
+
175
+ /**
176
+ * Verifies that the input field has the specified value.
177
+ * @param {number} value - The expected value of the input field
178
+ */
179
+ verifyTextInMarginInputField: (value) => {
180
+ layoutSectionComponent.marginInputField()
181
+ .should('have.value', value);
182
+ },
183
+
184
+ /**
185
+ * Enters the specified value into the input field.
186
+ * @param {number} value - The value to enter into the input field.
187
+ */
188
+ enterTextInResponseSpacingInputField: (value) => {
189
+ layoutSectionComponent.responseSpacingInputField()
190
+ .clear()
191
+ .type(value);
192
+ },
193
+
194
+ /**
195
+ * Verifies that the input field has the specified value.
196
+ * @param {number} value - The expected value of the input field
197
+ */
198
+ verifyTextInResponseSpacingInputField: (value) => {
199
+ layoutSectionComponent.responseSpacingInputField()
200
+ .should('have.value', value);
201
+ },
202
+
203
+ /**
204
+ * Enters the specified value into the input field.
205
+ * @param {number} value - The value to enter into the input field.
206
+ */
207
+ enterTextInLimitNumberOfResponsesInputField: (value) => {
208
+ layoutSectionComponent.limitNumbersOfResponsesInputField()
209
+ .clear()
210
+ .type(value);
211
+ },
212
+
213
+ /**
214
+ * Verifies that the input field has the specified value.
215
+ * @param {number} value - The expected value of the input field
216
+ */
217
+ verifyTextInLimitNumberOfResponsesInputField: (value) => {
218
+ layoutSectionComponent.limitNumbersOfResponsesInputField()
219
+ .should('have.value', value);
220
+ },
221
+
222
+ /**
223
+ * @description Verify that the specified checkbox is checked.
224
+ * @param {('Stagger response'|'Show labels'|'Show ticks'|'Show min'|'Show max'|'Limit number of responses'|'Show min arrow'|'Show max arrow'|'Stack responses')} checkboxName - The name of the checkbox to verify.
225
+ */
226
+ verifyCheckboxChecked: (checkboxName) => {
227
+ switch (checkboxName) {
228
+ case 'Show min arrow':
229
+ layoutSectionComponent.showMinArrowCheckbox()
230
+ .should('be.checked');
231
+ break;
232
+ case 'Show max arrow':
233
+ layoutSectionComponent.showMaxArrowCheckbox()
234
+ .should('be.checked');
235
+ break;
236
+ case 'Stack responses':
237
+ layoutSectionComponent.stackResponsesCheckbox()
238
+ .should('be.checked');
239
+ break;
240
+ case 'Stagger response':
241
+ layoutSectionComponent.staggerResponseCheckbox()
242
+ .should('be.checked');
243
+ break;
244
+ case 'Show labels':
245
+ layoutSectionComponent.showLabelsCheckbox()
246
+ .should('be.checked');
247
+ break;
248
+ case 'Show ticks':
249
+ layoutSectionComponent.showTicksCheckbox()
250
+ .should('be.checked');
251
+ break;
252
+ case 'Show min':
253
+ layoutSectionComponent.showMinCheckbox()
254
+ .should('be.checked');
255
+ break;
256
+ case 'Show max':
257
+ layoutSectionComponent.showMaxCheckbox()
258
+ .should('be.checked');
259
+ break;
260
+ case 'Limit number of responses':
261
+ layoutSectionComponent.limitNumbersOfResponsesCheckbox()
262
+ .should('be.checked');
263
+ break;
264
+ default:
265
+ throw new Error('invalid state string');
266
+ }
267
+ },
268
+
269
+ /**
270
+ * @description Verify that the specified checkbox is unchecked.
271
+ * @param {('Stagger response'|'Show labels'|'Show ticks'|'Show min'|'Show max'|'Limit number of responses'|'Show min arrow'|'Show max arrow'|'Stack responses')} checkboxName - The name of the checkbox to verify.
272
+ */
273
+ verifyCheckboxUnchecked: (checkboxName) => {
274
+ switch (checkboxName) {
275
+ case 'Show min arrow':
276
+ layoutSectionComponent.showMinArrowCheckbox()
277
+ .should('not.be.checked');
278
+ break;
279
+ case 'Show max arrow':
280
+ layoutSectionComponent.showMaxArrowCheckbox()
281
+ .should('not.be.checked');
282
+ break;
283
+ case 'Stack responses':
284
+ layoutSectionComponent.stackResponsesCheckbox()
285
+ .should('not.be.checked');
286
+ break;
287
+ case 'Stagger response':
288
+ layoutSectionComponent.staggerResponseCheckbox()
289
+ .should('not.be.checked');
290
+ break;
291
+ case 'Show labels':
292
+ layoutSectionComponent.showLabelsCheckbox()
293
+ .should('not.be.checked');
294
+ break;
295
+ case 'Show ticks':
296
+ layoutSectionComponent.showTicksCheckbox()
297
+ .should('not.be.checked');
298
+ break;
299
+ case 'Show min':
300
+ layoutSectionComponent.showMinCheckbox()
301
+ .should('not.be.checked');
302
+ break;
303
+ case 'Show max':
304
+ layoutSectionComponent.showMaxCheckbox()
305
+ .should('not.be.checked');
306
+ break;
307
+ case 'Limit number of responses':
308
+ layoutSectionComponent.limitNumbersOfResponsesCheckbox()
309
+ .should('not.be.checked');
310
+ break;
311
+ default:
312
+ throw new Error('invalid state string');
313
+ }
314
+ },
315
+
316
+ /**
317
+ *@description Checks the specified checkbox
318
+ * @param {('Stagger response'|'Show labels'|'Show ticks'|'Show min'|'Show max'|'Limit number of responses'|'Show min arrow'|'Show max arrow'|'Stack responses')} checkboxName - The name of the checkbox.
319
+ */
320
+ checkCheckbox: (checkboxName) => {
321
+ switch (checkboxName) {
322
+ case 'Show min arrow':
323
+ layoutSectionComponent.showMinArrowCheckbox()
324
+ .click()
325
+ .should('be.checked');
326
+ break;
327
+ case 'Show max arrow':
328
+ layoutSectionComponent.showMaxArrowCheckbox()
329
+ .click()
330
+ .should('be.checked');
331
+ break;
332
+ case 'Stack responses':
333
+ layoutSectionComponent.stackResponsesCheckbox()
334
+ .click()
335
+ .should('be.checked');
336
+ break;
337
+ case 'Stagger response':
338
+ layoutSectionComponent.staggerResponseCheckbox()
339
+ .click()
340
+ .should('be.checked');
341
+ break;
342
+ case 'Show labels':
343
+ layoutSectionComponent.showLabelsCheckbox()
344
+ .click()
345
+ .should('be.checked');
346
+ break;
347
+ case 'Show ticks':
348
+ layoutSectionComponent.showTicksCheckbox()
349
+ .click()
350
+ .should('be.checked');
351
+ break;
352
+ case 'Show min':
353
+ layoutSectionComponent.showMinCheckbox()
354
+ .click()
355
+ .should('be.checked');
356
+ break;
357
+ case 'Show max':
358
+ layoutSectionComponent.showMaxCheckbox()
359
+ .click()
360
+ .should('be.checked');
361
+ break;
362
+ case 'Limit number of responses':
363
+ layoutSectionComponent.limitNumbersOfResponsesCheckbox()
364
+ .click()
365
+ .should('be.checked');
366
+ break;
367
+ default:
368
+ throw new Error('invalid state string');
369
+ }
370
+ },
371
+
372
+ /**
373
+ *@description Unchecks the specified checkbox
374
+ * @param {('Stagger response'|'Show labels'|'Show ticks'|'Show min'|'Show max'|'Limit number of responses'|'Show min arrow'|'Show max arrow'|'Stack responses')} checkboxName - The name of the checkbox.
375
+ */
376
+ uncheckCheckbox: (checkboxName) => {
377
+ switch (checkboxName) {
378
+ case 'Show min arrow':
379
+ layoutSectionComponent.showMinArrowCheckbox()
380
+ .click()
381
+ .should('not.be.checked');
382
+ break;
383
+ case 'Show max arrow':
384
+ layoutSectionComponent.showMaxArrowCheckbox()
385
+ .click()
386
+ .should('not.be.checked');
387
+ break;
388
+ case 'Stack responses':
389
+ layoutSectionComponent.stackResponsesCheckbox()
390
+ .click()
391
+ .should('not.be.checked');
392
+ break;
393
+ case 'Stagger response':
394
+ layoutSectionComponent.staggerResponseCheckbox()
395
+ .click()
396
+ .should('not.be.checked');
397
+ break;
398
+ case 'Show labels':
399
+ layoutSectionComponent.showLabelsCheckbox()
400
+ .click()
401
+ .should('not.be.checked');
402
+ break;
403
+ case 'Show ticks':
404
+ layoutSectionComponent.showTicksCheckbox()
405
+ .click()
406
+ .should('not.be.checked');
407
+ break;
408
+ case 'Show min':
409
+ layoutSectionComponent.showMinCheckbox()
410
+ .click()
411
+ .should('not.be.checked');
412
+ break;
413
+ case 'Show max':
414
+ layoutSectionComponent.showMaxCheckbox()
415
+ .click()
416
+ .should('not.be.checked');
417
+ break;
418
+ case 'Limit number of responses':
419
+ layoutSectionComponent.limitNumbersOfResponsesCheckbox()
420
+ .click()
421
+ .should('not.be.checked');
422
+ break;
423
+ default:
424
+ throw new Error('invalid state string');
425
+ }
426
+ },
427
+
428
+ /**
429
+ * Clicks on the orientation toggle button with the specified ARIA label and verifies it is selected.
430
+ * @param {("Horizontal"|"Vertical")} ariaLabel - The ARIA label of the orientation toggle button to select.
431
+ */
432
+ selectOrientationToggleButton: (ariaLabel) => {
433
+ layoutSectionComponent.orientationToggleButton(ariaLabel)
434
+ .click();
435
+ steps.verifyOrientationToggleButtonSelected(ariaLabel);
436
+ },
437
+
438
+ /**
439
+ * Verifies that the toggle button with the specified ARIA label is selected.
440
+ * @param {("Horizontal"|"Vertical")}} ariaLabel - The ARIA label of the toggle button to verify.
441
+ */
442
+ verifyOrientationToggleButtonSelected: (ariaLabel) => {
443
+ layoutSectionComponent.orientationToggleButton(ariaLabel)
444
+ .should('have.attr', 'aria-pressed', 'true');
445
+ },
446
+
447
+ /**
448
+ * Verifies that the toggle button with the specified ARIA label is unselected.
449
+ * @param {("Horizontal"|"Vertical")}} ariaLabel - The ARIA label of the toggle button to verify.
450
+ */
451
+ verifyOrientationToggleButtonUnselected: (ariaLabel) => {
452
+ layoutSectionComponent.orientationToggleButton(ariaLabel)
453
+ .should('have.attr', 'aria-pressed', 'false');
454
+ },
455
+
456
+ /**
457
+ * Verifies the orientation and size of the number line section.
458
+ * @param {string} orientation - The orientation of the number line section ('Horizontal' or 'Vertical').
459
+ * @param {string} value - The value representing the width or height of the number line section.
460
+ */
461
+ verifyNumberLineOrientationAndSizeNumberLineSection: (orientation, value) => {
462
+ if (orientation === 'Horizontal') {
463
+ layoutSectionComponent.numberLineNumberLineSection()
464
+ .should('have.attr', 'width', value)
465
+ } else {
466
+ layoutSectionComponent.numberLineNumberLineSection()
467
+ .should('have.attr', 'height', value);
468
+ }
469
+
470
+ },
471
+
472
+ /**
473
+ * Verifies the visibility of the minimum arrow
474
+ * @param {string} visibility - The expected visibility ('visible' or 'hidden').
475
+ * @throws {Error} Throws an error if the provided visibility string is invalid.
476
+ */
477
+ verifyMinArrowVisibilityNumberLineSection: (visibility) => {
478
+ if (visibility === 'visible') {
479
+ layoutSectionComponent.numberLineAxisNumberLineSection()
480
+ .should('have.attr', 'marker-start');
481
+ }
482
+ else if (visibility === 'hidden') {
483
+ layoutSectionComponent.numberLineAxisNumberLineSection()
484
+ .should('not.have.attr', 'marker-start');
485
+ }
486
+ else {
487
+ throw new Error('invalid state string');
488
+ }
489
+ },
490
+
491
+ /**
492
+ * Verifies the visibility of the maximum arrow
493
+ * @param {string} visibility - The expected visibility ('visible' or 'hidden').
494
+ * @throws {Error} Throws an error if the provided visibility string is invalid.
495
+ */
496
+ verifyMaxArrowVisibilityNumberLineSection: (visibility) => {
497
+ if (visibility === 'visible') {
498
+ layoutSectionComponent.numberLineAxisNumberLineSection()
499
+ .should('have.attr', 'marker-end');
500
+ }
501
+ else if (visibility === 'hidden') {
502
+ layoutSectionComponent.numberLineAxisNumberLineSection()
503
+ .should('not.have.attr', 'marker-end');
504
+ }
505
+ else {
506
+ throw new Error('invalid state string');
507
+ }
508
+ },
509
+
510
+ /**
511
+ * Verifies the visibility and text of labels on the number line section.
512
+ * @param {string} value - The initial value of the labels.
513
+ * @param {number} interval - The interval between consecutive labels.
514
+ */
515
+ verifyLabelsVisibleOnNumberLineNumberLineSection: (value, interval) => {
516
+ cy.wait(3000);
517
+ layoutSectionComponent.numberLineNumberLineSection()
518
+ .parents('.ngie-jxgbox')
519
+ .find('.number-line-tick-font')
520
+ .its('length').then((len) => {
521
+ for (let index = 0; index < len; index++) {
522
+ layoutSectionComponent.numberLineNumberLineSection()
523
+ .parents('.ngie-jxgbox')
524
+ .find('.number-line-tick-font')
525
+ .eq(index)
526
+ .should('have.text', value);
527
+ value += interval;
528
+ }
529
+ });
530
+ },
531
+
532
+ verifyLabelsNotVisibleOnNumberLineNumberLineSection: () => {
533
+ layoutSectionComponent.numberLineNumberLineSection()
534
+ .parents('.ngie-jxgbox')
535
+ .find('.number-line-tick-font')
536
+ .should('not.exist');
537
+ },
538
+
539
+ /**
540
+ * Enters the specified value into the input field.
541
+ * @param {number} value - The value to enter into the input field.
542
+ */
543
+ enterTextInMinInputField: (value) => {
544
+ layoutSectionComponent.minInputField()
545
+ .clear()
546
+ .type(value)
547
+ .blur();
548
+ },
549
+
550
+ /**
551
+ * Verifies that the input field has the specified value.
552
+ * @param {number} value - The expected value of the input field
553
+ */
554
+ verifyTextInMinInputField: (value) => {
555
+ layoutSectionComponent.minInputField()
556
+ .should('have.value', value);
557
+ },
558
+
559
+ /**
560
+ * Enters the specified value into the input field.
561
+ * @param {number} value - The value to enter into the input field.
562
+ */
563
+ enterTextInMaxInputField: (value) => {
564
+ layoutSectionComponent.maxInputField()
565
+ .clear()
566
+ .type(value);
567
+ },
568
+
569
+ /**
570
+ * Verifies that the input field has the specified value.
571
+ * @param {number} value - The expected value of the input field
572
+ */
573
+ verifyTextInMaxInputField: (value) => {
574
+ layoutSectionComponent.maxInputField()
575
+ .should('have.value', value);
576
+ },
577
+
578
+ /**
579
+ * Enters the specified value into the input field.
580
+ * @param {number} value - The value to enter into the input field.
581
+ */
582
+ enterTextInIntervalInputField: (value) => {
583
+ layoutSectionComponent.intervalInputField()
584
+ .clear()
585
+ .type(value);
586
+ },
587
+
588
+ /**
589
+ * Verifies that the input field has the specified value.
590
+ * @param {number} value - The expected value of the input field
591
+ */
592
+ verifyTextInIntervalInputField: (value) => {
593
+ layoutSectionComponent.intervalInputField()
594
+ .should('have.value', value);
595
+ },
596
+
597
+ /**
598
+ * Enters the specified value into the input field.
599
+ * @param {number} value - The value to enter into the input field.
600
+ */
601
+ enterTextInAnnotateEveryInputField: (value) => {
602
+ layoutSectionComponent.annotateEveryInputField()
603
+ .clear()
604
+ .type(value);
605
+ },
606
+
607
+ /**
608
+ * Verifies that the input field has the specified value.
609
+ * @param {number} value - The expected value of the input field
610
+ */
611
+ verifyTextInAnnotateEveryInputField: (value) => {
612
+ layoutSectionComponent.annotateEveryInputField()
613
+ .should('have.value', value);
614
+ },
615
+
616
+ /**
617
+ * Enters the specified value into the input field.
618
+ * @param {number} value - The value to enter into the input field.
619
+ */
620
+ enterTextInDisplaySpecificAnnotationInputField: (value) => {
621
+ layoutSectionComponent.displaySpecificAnnotationInputField()
622
+ .clear()
623
+ .type(value);
624
+ },
625
+
626
+ /**
627
+ * Verifies that the input field has the specified value.
628
+ * @param {number} value - The expected value of the input field
629
+ */
630
+ verifyTextInDisplaySpecificAnnotationInputField: (value) => {
631
+ layoutSectionComponent.displaySpecificAnnotationInputField()
632
+ .should('have.value', value);
633
+ },
634
+
635
+ /**
636
+ * Clicks on the toggle button with the specified ARIA label and verifies it is selected.
637
+ * @param {string} ariaLabel - The ARIA label of the toggle button to select.
638
+ */
639
+ selectDisplayNumbersToggleButton: (ariaLabel) => {
640
+ layoutSectionComponent.displayNumbersToggleButton(ariaLabel)
641
+ .click();
642
+ steps.verifyDisplayNumbersToggleButtonSelected(ariaLabel);
643
+ },
644
+
645
+ /**
646
+ * Verifies that the toggle button with the specified ARIA label is selected.
647
+ * @param {string} ariaLabel - The ARIA label of the toggle button to verify.
648
+ */
649
+ verifyDisplayNumbersToggleButtonSelected: (ariaLabel) => {
650
+ layoutSectionComponent.displayNumbersToggleButton(ariaLabel)
651
+ .should('have.attr', 'aria-pressed', 'true');
652
+ },
653
+
654
+ /**
655
+ * Verifies that the toggle button with the specified ARIA label is unselected.
656
+ * @param {string} ariaLabel - The ARIA label of the toggle button to verify.
657
+ */
658
+ verifyDisplayNumbersToggleButtonUnselected: (ariaLabel) => {
659
+ layoutSectionComponent.displayNumbersToggleButton(ariaLabel)
660
+ .should('have.attr', 'aria-pressed', 'false');
661
+ },
662
+
663
+ /**
664
+ * Clicks on the toggle button with the specified ARIA label and verifies it is selected.
665
+ * @param {string} ariaLabel - The ARIA label of the toggle button to select.
666
+ */
667
+ selectLineSettingsToggleButton: (ariaLabel) => {
668
+ layoutSectionComponent.lineSettingsToggleButton(ariaLabel)
669
+ .click();
670
+ steps.verifyLineSettingsToggleButtonSelected(ariaLabel);
671
+ },
672
+
673
+ /**
674
+ * Verifies that the toggle button with the specified ARIA label is selected.
675
+ * @param {string} ariaLabel - The ARIA label of the toggle button to verify.
676
+ */
677
+ verifyLineSettingsToggleButtonSelected: (ariaLabel) => {
678
+ layoutSectionComponent.lineSettingsToggleButton(ariaLabel)
679
+ .should('have.attr', 'aria-pressed', 'true');
680
+ },
681
+
682
+ /**
683
+ * Verifies that the toggle button with the specified ARIA label is unselected.
684
+ * @param {string} ariaLabel - The ARIA label of the toggle button to verify.
685
+ */
686
+ verifyLineSettingsToggleButtonUnselected: (ariaLabel) => {
687
+ layoutSectionComponent.lineSettingsToggleButton(ariaLabel)
688
+ .should('have.attr', 'aria-pressed', 'false');
689
+ },
690
+
691
+ /**
692
+ * Verifies the label on the number line.
693
+ * @param {Array} values - An array of objects containing the value and index of each label.
694
+ */
695
+ verifyLabelOnNumberLineNumberLineSection: (values) => {
696
+ values.forEach(({ value, index }) => {
697
+ layoutSectionComponent.numberLineNumberLineSection()
698
+ .parents('.ngie-jxgbox')
699
+ .find('.number-line-tick-font')
700
+ .eq(index)
701
+ .then(($el) => {
702
+ const innerText = $el[0].innerText;
703
+ expect(innerText.trim()).to.equal(value.toString());
704
+ });
705
+ });
706
+ },
707
+
708
+ clickOnNumberLineTitle: () => {
709
+ layoutSectionComponent.numberLineTitleNumberLineSection()
710
+ .click();
711
+ },
712
+
713
+ /**
714
+ * Enters the specified value into the input field.
715
+ * @param {number} value - The value to enter into the input field.
716
+ */
717
+ enterTextInTitlePopupAddLabelInputField: (text) => {
718
+ layoutSectionComponent.titlePopupAddLabelInputField()
719
+ .clear()
720
+ .type(text)
721
+ .should('have.value', text);
722
+ },
723
+
724
+ /**
725
+ * Verifies that the input field has the specified value.
726
+ * @param {number} value - The expected value of the input field
727
+ */
728
+ verifyTextInTitlePopupAddLabelInputField: (text) => {
729
+ layoutSectionComponent.titlePopupAddLabelInputField()
730
+ .should('have.value', text);
731
+ },
732
+
733
+ clickOnTitlePopupCancelButton: () => {
734
+ layoutSectionComponent.titlePopupCancelButton()
735
+ .click();
736
+ },
737
+
738
+ clickOnTitlePopupSaveButton: () => {
739
+ layoutSectionComponent.titlePopupSaveButton()
740
+ .click();
741
+ },
742
+
743
+ /**
744
+ * Verifies the annotated labels on the number line section.
745
+ * @param {string} value - The value of the annotated label.
746
+ * @param {number} annotateEvery - The frequency of annotation.
747
+ */
748
+ verifyAnnotatedLabelsOnNumberLineNumberLineSection: (value, annotateEvery) => {
749
+ cy.wait(3000);
750
+ layoutSectionComponent.numberLineNumberLineSection()
751
+ .parents('.ngie-jxgbox')
752
+ .find('.number-line-tick-font')
753
+ .each(($element, index) => {
754
+ if (index % annotateEvery === 0) {
755
+ cy.wrap($element).should('have.text', value);
756
+ value += annotateEvery;
757
+ }
758
+ });
759
+ },
760
+
761
+ verifyDisplayNumbersAndLineSettingsSectionDisabled: () => {
762
+ utilities.verifyCSS(layoutSectionComponent.lineSettingsToggleButtonWrapper(), {
763
+ 'opacity': '0.4'
764
+ });
765
+ utilities.verifyCSS(layoutSectionComponent.displayNumbersToggleButtonWrapper(), {
766
+ 'opacity': '0.4'
767
+ });
768
+ },
769
+
770
+ verifyDisplayNumbersAndLineSettingsSectionEnabled: () => {
771
+ utilities.verifyCSS(layoutSectionComponent.lineSettingsToggleButtonWrapper(), {
772
+ 'opacity': '1'
773
+ });
774
+ utilities.verifyCSS(layoutSectionComponent.displayNumbersToggleButtonWrapper(), {
775
+ 'opacity': '1'
776
+ });
777
+ },
778
+
779
+ /**
780
+ * Enters the specified value into the input field.
781
+ * @param {number} value - The value to enter into the input field.
782
+ */
783
+ enterTextInHeightInputField: (value) => {
784
+ layoutSectionComponent.heightInputField()
785
+ .clear()
786
+ .type(value);
787
+ },
788
+
789
+ /**
790
+ * Verifies that the input field has the specified value.
791
+ * @param {number} value - The expected value of the input field
792
+ */
793
+ verifyTextInHeightInputField: (value) => {
794
+ layoutSectionComponent.heightInputField()
795
+ .should('have.value', value);
796
+ }
797
+ }
798
+
799
+ const tests = {
800
+ /**
801
+ * Verifies the content of the layout section based on the orientation.
802
+ * @param {string} orientation - The orientation of the layout section ('Horizontal' or 'Vertical').
803
+ */
804
+ verifyLayoutSectionContent: (orientation) => {
805
+ const labelCheckboxPairs = [
806
+ { getLabelElement: layoutSectionComponent.showMinArrowLabel, label: 'Show min arrow', defaultChecked: false },
807
+ { getLabelElement: layoutSectionComponent.showMaxArrowLabel, label: 'Show max arrow', defaultChecked: false },
808
+ { getLabelElement: layoutSectionComponent.staggerResponseLabel, label: 'Stagger response', defaultChecked: true },
809
+ { getLabelElement: layoutSectionComponent.showLabelsLabel, label: 'Show labels', defaultChecked: true },
810
+ { getLabelElement: layoutSectionComponent.showTicksLabel, label: 'Show ticks', defaultChecked: true },
811
+ { getLabelElement: layoutSectionComponent.showMinLabel, label: 'Show min', defaultChecked: true },
812
+ { getLabelElement: layoutSectionComponent.showMaxLabel, label: 'Show max', defaultChecked: true },
813
+ { getLabelElement: layoutSectionComponent.limitNumbersOfResponsesLabel, label: 'Limit number of responses', defaultChecked: true },
814
+ ];
815
+
816
+ it('Layout label should be displayed', () => {
817
+ utilities.verifyInnerText(layoutSectionComponent.layoutLabel(), 'Layout');
818
+ utilities.verifyElementVisibilityState(layoutSectionComponent.layoutLabel(), 'visible');
819
+ });
820
+
821
+ it('Layout accordion should be displayed in expanded form', () => {
822
+ layoutSectionComponent.steps.verifyLayoutAccordionIsExpanded();
823
+ });
824
+
825
+ it('User should be able to collapse and expand the Layout accordion', () => {
826
+ layoutSectionComponent.steps.collapseLayoutAccordion();
827
+ layoutSectionComponent.steps.verifyLayoutAccordionIsCollapsed();
828
+ layoutSectionComponent.steps.expandLayoutAccordion();
829
+ layoutSectionComponent.steps.verifyLayoutAccordionIsExpanded();
830
+ });
831
+
832
+ it(`Orientation label and 2 toggle buttons ${orientationToggleButton} should be displayed`, () => {
833
+ utilities.verifyInnerText(layoutSectionComponent.orientationLabel(), 'Orientation');
834
+ utilities.verifyElementVisibilityState(layoutSectionComponent.orientationLabel(), 'visible');
835
+ utilities.verifyElementVisibilityState(layoutSectionComponent.orientationToggleButton(), 'visible');
836
+ utilities.verifyElementCount(layoutSectionComponent.orientationToggleButton(), 2);
837
+ orientationToggleButton.forEach((label) => {
838
+ utilities.verifyInnerText(layoutSectionComponent.orientationToggleButton(label), label);
839
+ utilities.verifyElementVisibilityState(layoutSectionComponent.orientationToggleButton(label), 'visible');
840
+ });
841
+ });
842
+
843
+ if (orientation === "Horizontal") {
844
+ it(`Width(px) label and input field should be displayed and by default, input field should have 640 and user should be able to update the value of input field`, () => {
845
+ utilities.verifyInnerText(layoutSectionComponent.widthLabel(), 'Width (px)');
846
+ utilities.verifyElementVisibilityState(layoutSectionComponent.widthLabel(), 'visible');
847
+ layoutSectionComponent.steps.verifyTextInWidthInputField(640);
848
+ utilities.verifyElementVisibilityState(layoutSectionComponent.widthInputField(), 'visible');
849
+ layoutSectionComponent.steps.enterTextInWidthInputField(600);
850
+ layoutSectionComponent.steps.verifyTextInWidthInputField(600);
851
+ });
852
+ } else {
853
+ it(`Height(px) label and input field should be displayed and by default, input field should have 640 and user should be able to update the value of input field`, () => {
854
+ utilities.verifyInnerText(layoutSectionComponent.heightLabel(), 'Height (px)');
855
+ utilities.verifyElementVisibilityState(layoutSectionComponent.heightLabel(), 'visible');
856
+ layoutSectionComponent.steps.verifyTextInHeightInputField(640);
857
+ utilities.verifyElementVisibilityState(layoutSectionComponent.heightInputField(), 'visible');
858
+ layoutSectionComponent.steps.enterTextInHeightInputField(600);
859
+ layoutSectionComponent.steps.verifyTextInHeightInputField(600);
860
+ });
861
+ }
862
+
863
+ it(`Margin (px) label and input field should be displayed and by default, input field should have 10 and user should be able to update the value of input field`, () => {
864
+ utilities.verifyInnerText(layoutSectionComponent.marginLabel(), 'Margin (px)');
865
+ utilities.verifyElementVisibilityState(layoutSectionComponent.marginLabel(), 'visible');
866
+ layoutSectionComponent.steps.verifyTextInMarginInputField(10);
867
+ utilities.verifyElementVisibilityState(layoutSectionComponent.marginInputField(), 'visible');
868
+ layoutSectionComponent.steps.enterTextInMarginInputField(9);
869
+ layoutSectionComponent.steps.verifyTextInMarginInputField(9);
870
+ });
871
+
872
+ it('Make responsive label and slider should be displayed and by default, slider should be checked', () => {
873
+ utilities.verifyInnerText(layoutSectionComponent.makeResponsiveLabel(), 'Make responsive for mobile');
874
+ utilities.verifyElementVisibilityState(layoutSectionComponent.makeResponsiveLabel(), 'visible');
875
+ layoutSectionComponent.steps.verifyMakeResponsiveCheckboxChecked();
876
+ });
877
+
878
+ it('\'What is this?\' label should be displayed and when user hovers over it tooltip should be displayed', () => {
879
+ utilities.verifyInnerText(layoutSectionComponent.whatIsThisLabel(), 'What is this?');
880
+ });
881
+
882
+ it('User should be able to uncheck Make responsive slider', () => {
883
+ layoutSectionComponent.steps.uncheckMakeResponsiveCheckbox();
884
+ });
885
+
886
+ labelCheckboxPairs.forEach(({ getLabelElement, label, defaultChecked }) => {
887
+ it(`${label} label and checkbox should be displayed and by default, checkbox should be ${defaultChecked ? 'checked' : 'unchecked'}`, () => {
888
+ utilities.verifyInnerText(getLabelElement(), label);
889
+ utilities.verifyElementVisibilityState(getLabelElement(), 'visible');
890
+ if (defaultChecked) {
891
+ layoutSectionComponent.steps.verifyCheckboxChecked(label);
892
+ } else {
893
+ layoutSectionComponent.steps.verifyCheckboxUnchecked(label);
894
+ }
895
+ });
896
+ });
897
+
898
+ it('When Limit number of responses checkbox is checked then input field should be displayed beside the label and input field should have 5 pre-filled in it', () => {
899
+ layoutSectionComponent.steps.verifyCheckboxChecked('Limit number of responses');
900
+ utilities.verifyElementVisibilityState(layoutSectionComponent.limitNumbersOfResponsesInputField(), 'visible');
901
+ layoutSectionComponent.steps.verifyTextInLimitNumberOfResponsesInputField(5);
902
+ });
903
+
904
+ it('CSS of layout section', { tags: 'css' }, () => {
905
+ utilities.verifyCSS(layoutSectionComponent.layoutLabel(), {
906
+ 'color': css.color.activeButtons,
907
+ 'font-size': css.fontSize.default,
908
+ 'font-weight': css.fontWeight.bold
909
+ });
910
+ utilities.verifyCSS(layoutSectionComponent.layoutAccordionChevronButton(), {
911
+ 'color': css.color.activeButtons,
912
+ 'font-size': css.fontSize.normal,
913
+ 'font-weight': css.fontWeight.regular
914
+ });
915
+ if (orientation === "Horizontal") {
916
+ utilities.verifyCSS(layoutSectionComponent.widthLabel(), {
917
+ 'color': css.color.labels,
918
+ 'font-size': css.fontSize.normal,
919
+ 'font-weight': css.fontWeight.semibold
920
+ });
921
+ utilities.verifyCSS(layoutSectionComponent.widthInputField(), {
922
+ 'color': css.color.text,
923
+ 'font-size': css.fontSize.default,
924
+ 'font-weight': css.fontWeight.regular
925
+ });
926
+ utilities.verifyCSS(layoutSectionComponent.orientationToggleButton(orientationToggleButton[0]), {
927
+ 'background-color': css.color.activeButtons,
928
+ 'color': css.color.primaryBtn,
929
+ 'font-size': css.fontSize.normal,
930
+ 'font-weight': css.fontWeight.bold
931
+ });
932
+ utilities.verifyCSS(layoutSectionComponent.orientationToggleButton(orientationToggleButton[1]), {
933
+ 'background-color': css.color.transparent,
934
+ 'color': css.color.closeIcon,
935
+ 'font-size': css.fontSize.normal,
936
+ 'font-weight': css.fontWeight.bold
937
+ });
938
+ } else {
939
+ utilities.verifyCSS(layoutSectionComponent.heightLabel(), {
940
+ 'color': css.color.labels,
941
+ 'font-size': css.fontSize.normal,
942
+ 'font-weight': css.fontWeight.semibold
943
+ });
944
+ utilities.verifyCSS(layoutSectionComponent.heightInputField(), {
945
+ 'color': css.color.text,
946
+ 'font-size': css.fontSize.default,
947
+ 'font-weight': css.fontWeight.regular
948
+ });
949
+ utilities.verifyCSS(layoutSectionComponent.orientationToggleButton(orientationToggleButton[1]), {
950
+ 'background-color': css.color.activeButtons,
951
+ 'color': css.color.primaryBtn,
952
+ 'font-size': css.fontSize.normal,
953
+ 'font-weight': css.fontWeight.bold
954
+ });
955
+ utilities.verifyCSS(layoutSectionComponent.orientationToggleButton(orientationToggleButton[0]), {
956
+ 'background-color': css.color.transparent,
957
+ 'color': css.color.closeIcon,
958
+ 'font-size': css.fontSize.normal,
959
+ 'font-weight': css.fontWeight.bold
960
+ });
961
+ }
962
+ utilities.verifyCSS(layoutSectionComponent.makeResponsiveLabel().find('.title-casing'), {
963
+ 'color': css.color.UnselectedToggleButton,
964
+ 'font-size': css.fontSize.normal,
965
+ 'font-weight': css.fontWeight.semibold
966
+ });
967
+ layoutSectionComponent.steps.checkMakeResponsiveCheckbox();
968
+ utilities.verifyCSS(layoutSectionComponent.whatIsThisLabel(), {
969
+ 'color': css.color.activeButtons,
970
+ 'font-size': css.fontSize.normal,
971
+ 'font-weight': css.fontWeight.bold
972
+ });
973
+ utilities.verifyCSS(layoutSectionComponent.makeResponsiveCheckbox().parents('.mobile-responsive-wrapper').find('.MuiSwitch-track'), {
974
+ 'background-color': css.color.enabledSwitchBg,
975
+ });
976
+ layoutSectionComponent.steps.uncheckMakeResponsiveCheckbox();
977
+ utilities.verifyCSS(layoutSectionComponent.makeResponsiveCheckbox().parents('.mobile-responsive-wrapper').find('.MuiSwitch-track'), {
978
+ 'background-color': css.color.secondaryBtn,
979
+ });
980
+ utilities.verifyCSS(layoutSectionComponent.showMinArrowLabel(), {
981
+ 'color': css.color.labelText,
982
+ 'font-size': css.fontSize.normal,
983
+ 'font-weight': css.fontWeight.regular
984
+ });
985
+ utilities.verifyCSS(layoutSectionComponent.orientationLabel(), {
986
+ 'color': css.color.labels,
987
+ 'font-size': css.fontSize.normal,
988
+ 'font-weight': css.fontWeight.semibold
989
+ });
990
+ });
991
+
992
+ it('Accessibility of layout contents', { tags: 'a11y' }, () => {
993
+ cy.checkAccessibility(layoutSectionComponent.layoutLabel().parents('.ngie-accordion'));
994
+ });
995
+ },
996
+
997
+ /**
998
+ * Verifies the content of the number line section based on the orientation.
999
+ * @param {string} orientation - The orientation of the layout section ('Horizontal' or 'Vertical').
1000
+ */
1001
+ verifyNumberLineSectionContent: (orientation) => {
1002
+ const displayNumbersOptions = (orientation === "Horizontal") ? ["Below line", "Above line"] : ["Left of line", "Right of line"];
1003
+
1004
+ it('Number line title and number line should be displayed', () => {
1005
+ utilities.verifyInnerText(layoutSectionComponent.numberLineTitleNumberLineSection(), 'Number line title');
1006
+ utilities.verifyElementVisibilityState(layoutSectionComponent.numberLineTitleNumberLineSection(), 'visible');
1007
+ utilities.verifyElementVisibilityState(layoutSectionComponent.numberLineNumberLineSection(), 'visible');
1008
+ });
1009
+
1010
+ it('Min label and input field should be displayed and by default, input field should have \'-10\' pre-filled in it', () => {
1011
+ utilities.verifyInnerText(layoutSectionComponent.minLabel(), 'Min');
1012
+ utilities.verifyElementVisibilityState(layoutSectionComponent.minLabel(), 'visible');
1013
+ utilities.verifyElementVisibilityState(layoutSectionComponent.minInputField(), 'visible');
1014
+ layoutSectionComponent.steps.verifyTextInMinInputField(-10);
1015
+ });
1016
+
1017
+ it('Max label and input field should be displayed and by default, input field should have \'10\' pre-filled in it', () => {
1018
+ utilities.verifyInnerText(layoutSectionComponent.maxLabel(), 'Max');
1019
+ utilities.verifyElementVisibilityState(layoutSectionComponent.maxLabel(), 'visible');
1020
+ utilities.verifyElementVisibilityState(layoutSectionComponent.maxInputField(), 'visible');
1021
+ layoutSectionComponent.steps.verifyTextInMaxInputField(10);
1022
+ });
1023
+
1024
+ it('Interval label and input field should be displayed and by default, input field should have \'1\' pre-filled in it', () => {
1025
+ utilities.verifyInnerText(layoutSectionComponent.intervalLabel(), 'Interval');
1026
+ utilities.verifyElementVisibilityState(layoutSectionComponent.intervalLabel(), 'visible');
1027
+ utilities.verifyElementVisibilityState(layoutSectionComponent.intervalInputField(), 'visible');
1028
+ layoutSectionComponent.steps.verifyTextInIntervalInputField(1);
1029
+ });
1030
+
1031
+ it('Annotate every label and input field should be displayed and by default, input field should have \'1\' pre-filled in it', () => {
1032
+ utilities.verifyInnerText(layoutSectionComponent.annotateEveryLabel(), 'Annotate every');
1033
+ utilities.verifyElementVisibilityState(layoutSectionComponent.annotateEveryLabel(), 'visible');
1034
+ utilities.verifyElementVisibilityState(layoutSectionComponent.annotateEveryInputField(), 'visible');
1035
+ layoutSectionComponent.steps.verifyTextInAnnotateEveryInputField(1);
1036
+ });
1037
+
1038
+ it(`Display numbers label and 2 options ${displayNumbersOptions} should be displayed and by default, ${displayNumbersOptions[0]} should be selected`, () => {
1039
+ utilities.verifyInnerText(layoutSectionComponent.displayNumbersLabel(), 'Display numbers');
1040
+ utilities.verifyElementVisibilityState(layoutSectionComponent.displayNumbersLabel(), 'visible');
1041
+ utilities.verifyElementVisibilityState(layoutSectionComponent.displayNumbersToggleButton(), 'visible');
1042
+ utilities.verifyElementCount(layoutSectionComponent.displayNumbersToggleButton(), 2);
1043
+ displayNumbersOptions.forEach((label) => {
1044
+ utilities.verifyInnerText(layoutSectionComponent.displayNumbersToggleButton(label), label);
1045
+ utilities.verifyElementVisibilityState(layoutSectionComponent.displayNumbersToggleButton(label), 'visible');
1046
+ });
1047
+ layoutSectionComponent.steps.verifyDisplayNumbersToggleButtonSelected(displayNumbersOptions[0]);
1048
+ });
1049
+
1050
+ it(`Line settings label and 4 options ${lineSettingsOptions} should be displayed and by default ${lineSettingsOptions[0]} should be selected`, () => {
1051
+ utilities.verifyInnerText(layoutSectionComponent.lineSettingsLabel(), 'Line settings');
1052
+ utilities.verifyElementVisibilityState(layoutSectionComponent.lineSettingsLabel(), 'visible');
1053
+ utilities.verifyElementVisibilityState(layoutSectionComponent.lineSettingsToggleButton(), 'visible');
1054
+ utilities.verifyElementCount(layoutSectionComponent.lineSettingsToggleButton(), 4);
1055
+ lineSettingsOptions.forEach((label) => {
1056
+ utilities.verifyInnerText(layoutSectionComponent.lineSettingsToggleButton(label), label);
1057
+ utilities.verifyElementVisibilityState(layoutSectionComponent.lineSettingsToggleButton(label), 'visible');
1058
+ });
1059
+ layoutSectionComponent.steps.verifyLineSettingsToggleButtonSelected(lineSettingsOptions[0]);
1060
+ });
1061
+
1062
+ it('Display specific annotation (use semicolons to separate) label and input field should be displayed and by default input field should be empty', () => {
1063
+ utilities.verifyInnerText(layoutSectionComponent.displaySpecificAnnotationLabel(), 'Display specific annotation (use semicolons to separate)');
1064
+ utilities.verifyElementVisibilityState(layoutSectionComponent.displaySpecificAnnotationLabel(), 'visible');
1065
+ utilities.verifyElementVisibilityState(layoutSectionComponent.displaySpecificAnnotationInputField(), 'visible');
1066
+ layoutSectionComponent.steps.verifyTextInDisplaySpecificAnnotationInputField('');
1067
+ });
1068
+
1069
+ it('CSS of number line section', { tags: 'css' }, () => {
1070
+ utilities.verifyCSS(layoutSectionComponent.numberLineTitleNumberLineSection(), {
1071
+ 'color': css.color.activeButtons,
1072
+ 'font-size': css.fontSize.heading,
1073
+ 'font-weight': css.fontWeight.bold
1074
+ });
1075
+ utilities.verifyCSS(layoutSectionComponent.intervalLabel(), {
1076
+ 'color': css.color.labels,
1077
+ 'font-size': css.fontSize.normal,
1078
+ 'font-weight': css.fontWeight.semibold
1079
+ });
1080
+ utilities.verifyCSS(layoutSectionComponent.intervalInputField(), {
1081
+ 'color': css.color.text,
1082
+ 'font-size': css.fontSize.default,
1083
+ 'font-weight': css.fontWeight.regular
1084
+ });
1085
+ utilities.verifyCSS(layoutSectionComponent.displayNumbersLabel(), {
1086
+ 'color': css.color.labels,
1087
+ 'font-size': css.fontSize.normal,
1088
+ 'font-weight': css.fontWeight.semibold
1089
+ });
1090
+ utilities.verifyCSS(layoutSectionComponent.displayNumbersToggleButton(displayNumbersOptions[0]), {
1091
+ 'background-color': css.color.activeButtons,
1092
+ 'color': css.color.primaryBtn,
1093
+ 'font-size': css.fontSize.normal,
1094
+ 'font-weight': css.fontWeight.bold
1095
+ });
1096
+ utilities.verifyCSS(layoutSectionComponent.displayNumbersToggleButton(displayNumbersOptions[1]), {
1097
+ 'background-color': css.color.transparent,
1098
+ 'color': css.color.closeIcon,
1099
+ 'font-size': css.fontSize.normal,
1100
+ 'font-weight': css.fontWeight.bold
1101
+ });
1102
+ utilities.verifyCSS(layoutSectionComponent.displaySpecificAnnotationLabel(), {
1103
+ 'color': css.color.labels,
1104
+ 'font-size': css.fontSize.normal,
1105
+ 'font-weight': css.fontWeight.semibold
1106
+ });
1107
+ utilities.verifyCSS(layoutSectionComponent.displaySpecificAnnotationInputField(), {
1108
+ 'color': css.color.text,
1109
+ 'font-size': css.fontSize.default,
1110
+ 'font-weight': css.fontWeight.regular
1111
+ });
1112
+ utilities.verifyCSS(layoutSectionComponent.lineSettingsLabel(), {
1113
+ 'color': css.color.labels,
1114
+ 'font-size': css.fontSize.normal,
1115
+ 'font-weight': css.fontWeight.semibold
1116
+ });
1117
+ utilities.verifyCSS(layoutSectionComponent.lineSettingsToggleButton(lineSettingsOptions[1]), {
1118
+ 'background-color': css.color.transparent,
1119
+ 'color': css.color.closeIcon,
1120
+ 'font-size': css.fontSize.normal,
1121
+ 'font-weight': css.fontWeight.bold
1122
+ });
1123
+ utilities.verifyCSS(layoutSectionComponent.lineSettingsToggleButton(lineSettingsOptions[0]), {
1124
+ 'color': css.color.primaryBtn,
1125
+ 'font-size': css.fontSize.normal,
1126
+ 'font-weight': css.fontWeight.bold,
1127
+ 'background-color': css.color.activeButtons
1128
+ });
1129
+ });
1130
+
1131
+ it('Accessibility of number line section contents', { tags: 'a11y' }, () => {
1132
+ cy.checkAccessibility(layoutSectionComponent.numberLineNumberLineSection().parents('.number-line-grid-setting'));
1133
+ });
1134
+ },
1135
+
1136
+ verifyNumberLineTitlePopupContent: () => {
1137
+ it('When the user clicks on the \'Number line title\' a popup with title \'Number line title\' and \'Add label\' label with input field should be displayed along with \'Save\' and \'Cancel\' button', () => {
1138
+ layoutSectionComponent.steps.clickOnNumberLineTitle();
1139
+ utilities.verifyInnerText(dialogBoxBase.dialogBoxTitle(), 'Number line title');
1140
+ utilities.verifyInnerText(layoutSectionComponent.titlePopupAddLabelLabel(), 'Add title');
1141
+ utilities.verifyElementVisibilityState(layoutSectionComponent.titlePopupAddLabelInputField(), 'visible');
1142
+ utilities.verifyInnerText(layoutSectionComponent.titlePopupSaveButton(), 'Save');
1143
+ utilities.verifyInnerText(layoutSectionComponent.titlePopupCancelButton(), 'Cancel');
1144
+ });
1145
+
1146
+ it('The input field should be prefilled with \'Number line title\' and the user should be able to edit it', () => {
1147
+ layoutSectionComponent.steps.verifyTextInTitlePopupAddLabelInputField('Number line title');
1148
+ });
1149
+ }
1150
+ }
1151
+
1152
+ export const layoutSectionComponent = {
1153
+ ...selectors,
1154
+ steps,
1155
+ tests
1156
+ }