itemengine-cypress-automation 1.0.165-migrationScripts-e27d6f2.0 → 1.0.166

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 (109) hide show
  1. package/cypress/e2e/ILC/BrainingCampManipulative/additionalSettings.js +83 -0
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +200 -0
  3. package/cypress/e2e/ILC/BrainingCampManipulative/editTabScoringSection.js +56 -0
  4. package/cypress/e2e/ILC/BrainingCampManipulative/gradingViewAndCorrectAnswerViewContents.smoke.js +95 -0
  5. package/cypress/e2e/ILC/BrainingCampManipulative/headerSection.js +71 -0
  6. package/cypress/e2e/ILC/BrainingCampManipulative/previewTabContent.smoke.js +72 -0
  7. package/cypress/e2e/ILC/BrainingCampManipulative/toolSettings.js +71 -0
  8. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +2 -2
  9. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +22 -11
  10. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +432 -0
  11. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +134 -0
  12. package/cypress/e2e/ILC/FeedbackScaleNew/feedbackScaleStylePreviewTab.js +161 -0
  13. package/cypress/e2e/ILC/FeedbackScaleNew/numbersFeedbackScaleStyle.js +308 -0
  14. package/cypress/e2e/ILC/FeedbackScaleNew/previewContentsForAllViews.smoke.js +216 -0
  15. package/cypress/e2e/ILC/FeedbackScaleNew/starsHeartsFeedbackScaleStyle.js +336 -0
  16. package/cypress/e2e/ILC/FeedbackScaleNew/textFeedbackScaleStyle.js +570 -0
  17. package/cypress/e2e/ILC/FeedbackScaleNew/thumbsFeedbackScaleStyle.js +214 -0
  18. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettings.js +356 -0
  19. package/cypress/e2e/ILC/FillInTheGapsDragAndDrop/fillInTheGapsDragAndDropAdditionalSettingsResponseAccordion.js +299 -0
  20. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +18 -7
  21. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +11 -6
  22. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +355 -0
  23. package/cypress/e2e/ILC/Graphing/previewContentsForAllViews.smoke.js +0 -1
  24. package/cypress/e2e/ILC/Graphing/toolsControlsAndBackgroundSection.js +2 -36
  25. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +22 -34
  26. package/cypress/e2e/ILC/GridFill/checkAnswerFunctionalityForAllViews.smoke.js +8 -24
  27. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +5 -25
  28. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +68 -114
  29. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +67 -111
  30. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +71 -123
  31. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingScoringCellShadeCount.js +41 -63
  32. package/cypress/e2e/ILC/GridFill/scoring/manuallyAndNonScored.js +21 -25
  33. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsBasic.js +50 -85
  34. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +68 -115
  35. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +54 -98
  36. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +72 -120
  37. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +3 -3
  38. package/cypress/e2e/ILC/Matching/maximumCapacityPerDropzoneSection.js +309 -0
  39. package/cypress/e2e/ILC/Matching/specifyCorrectAnswerSection.js +1 -1
  40. package/cypress/e2e/ILC/Matching/toolSettings.js +72 -0
  41. package/cypress/e2e/ILC/MultipleSelectionGridNew/editTabBasicSection.js +1033 -0
  42. package/cypress/e2e/ILC/MultipleSelectionGridNew/test.js +28 -0
  43. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +236 -0
  44. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +239 -0
  45. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +278 -0
  46. package/cypress/e2e/ILC/NumberLine/Scoring/manualAndNonScoredScoring.js +178 -0
  47. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsBasic.js +407 -0
  48. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithAlternatePointsGreaterThanCorrectPoints.js +273 -0
  49. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternatePoints.js +278 -0
  50. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeigtsWithCorrectPointsEqualToAlternatePoints.js +228 -0
  51. package/cypress/e2e/ILC/NumberLine/additionalSettings.js +120 -0
  52. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +659 -0
  53. package/cypress/e2e/ILC/NumberLine/checkAnswerFunctionalityForAllViews.smoke.js +149 -0
  54. package/cypress/e2e/ILC/NumberLine/editTabScoringSection.js +151 -0
  55. package/cypress/e2e/ILC/NumberLine/gradingViewAndCorrectAnswerView.smoke.js +171 -0
  56. package/cypress/e2e/ILC/NumberLine/headerSection.js +76 -0
  57. package/cypress/e2e/ILC/NumberLine/minimumScoringPenaltyPointsAndRoundingDropdown.js +54 -0
  58. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +200 -0
  59. package/cypress/e2e/ILC/NumberLine/specifyCorrectAnswerSection.js +67 -0
  60. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +135 -0
  61. package/cypress/e2e/ILC/NumberLine/toolSettings.js +73 -0
  62. package/cypress/e2e/ILC/NumberLine/toolsAndControls.js +372 -0
  63. package/cypress/e2e/ILC/SingleSelectionGridNew/editTabBasicSection.js +1014 -0
  64. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +235 -0
  65. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +235 -0
  66. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +235 -0
  67. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsBasic.js +457 -0
  68. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +342 -0
  69. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +342 -0
  70. package/cypress/e2e/ILC/TextSelection/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +342 -0
  71. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsBasic.js +155 -0
  72. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +314 -0
  73. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +275 -0
  74. package/cypress/e2e/ILC/TextSelection/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +314 -0
  75. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +290 -0
  76. package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +142 -0
  77. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.js +137 -0
  78. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +4 -4
  79. package/cypress/fixtures/theme/ilc.json +14 -26
  80. package/cypress/pages/brainingCampManipulativePage.js +122 -0
  81. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +1 -1
  82. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -0
  83. package/cypress/pages/components/autoScoredStudentViewSettings.js +1 -1
  84. package/cypress/pages/components/colorPopupComponent.js +2 -2
  85. package/cypress/pages/components/defaultToolDropdown.js +77 -0
  86. package/cypress/pages/components/gridQuestionCommonComponent.js +629 -2
  87. package/cypress/pages/components/index.js +3 -0
  88. package/cypress/pages/components/maximumCapacityPerDropzoneComponent.js +1 -1
  89. package/cypress/pages/components/measuringToolComponent.js +2 -2
  90. package/cypress/pages/components/resetPopupComponent.js +74 -0
  91. package/cypress/pages/components/scoringSectionBaseEditTab.js +1 -1
  92. package/cypress/pages/components/setPointsPopupBase.js +6 -4
  93. package/cypress/pages/components/specifyRowsAndColumnsComponent.js +60 -3
  94. package/cypress/pages/components/toolSettingsComponent.js +80 -12
  95. package/cypress/pages/components/toolsAndControlsComponent.js +69 -0
  96. package/cypress/pages/dragAndDropIntoCategoriesPage.js +0 -8
  97. package/cypress/pages/feedbackScalePage copy.js +716 -0
  98. package/cypress/pages/feedbackScalePage.js +591 -449
  99. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +3 -1
  100. package/cypress/pages/graphingPage.js +9 -145
  101. package/cypress/pages/gridFillPage.js +135 -120
  102. package/cypress/pages/highlightPage.js +0 -394
  103. package/cypress/pages/index.js +5 -2
  104. package/cypress/pages/matchingPage.js +78 -20
  105. package/cypress/pages/multipleSelectionGridPage.js +88 -1
  106. package/cypress/pages/numberLinePage.js +723 -0
  107. package/cypress/pages/singleSelectionGridPage.js +86 -0
  108. package/cypress/pages/textSelectionPage.js +582 -0
  109. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import constants from "../fixtures/constants";
2
2
  import utilities from "../support/helpers/utilities";
3
- import { createQuestionBasePage, questionInstructionsComponent, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, draggableOptionContainer, draggableOptionsSectionComponent, correctIncorrectAnswerLabelComponent, maximumCapacityPerDropzoneComponent, optionsWrapperComponent, ckEditorToolbar, equationEditorFlyout, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, commonComponents, randomizeOptionsComponent, autoScoredScoringSectionMultiResponseType, allowMultipleInstancesOfSameDraggableOptionComponent, studentViewSettingsLabelComponent, ariaLabelSectionComponent, additionalSettingsAccessibilitySectionComponent, gradingViewEnumerationComponent, additionalSettingsPanel, } from "./components";
3
+ import { createQuestionBasePage, questionInstructionsComponent, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, draggableOptionContainer, draggableOptionsSectionComponent, correctIncorrectAnswerLabelComponent, maximumCapacityPerDropzoneComponent, optionsWrapperComponent, ckEditorToolbar, equationEditorFlyout, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, commonComponents, randomizeOptionsComponent, autoScoredScoringSectionMultiResponseType, allowMultipleInstancesOfSameDraggableOptionComponent, studentViewSettingsLabelComponent, ariaLabelSectionComponent, additionalSettingsAccessibilitySectionComponent, gradingViewEnumerationComponent, additionalSettingsPanel, toolSettingsComponent } from "./components";
4
4
  import { dialogBoxBase } from "./dialogBoxBase";
5
5
  const css = Cypress.env('css');
6
6
  const options = ['option 1', 'option 2', 'option 3'];
@@ -15,20 +15,21 @@ const selectors = {
15
15
  ...autoScoredScoringSectionMultiResponseType,
16
16
  ...autoScoredSpecifyCorrectAnswerSection,
17
17
  ...draggableOptionContainer,
18
+ ...maximumCapacityPerDropzoneComponent,
19
+ ...toolSettingsComponent,
18
20
  ...allowMultipleInstancesOfSameDraggableOptionComponent,
19
21
  ...randomizeOptionsComponent,
20
22
  ...gradingViewEnumerationComponent,
21
23
  ...ariaLabelSectionComponent,
22
24
  ...scoringSectionBaseEditTab,
23
25
  ...additionalSettingsPanel,
24
- ...maximumCapacityPerDropzoneComponent,
25
26
 
26
27
  //Edit tab
27
28
  promptInputField: () => cy.get('.edit-mcq-stems-wrapper [role="textbox"]'),
28
29
  promptInputFieldWrapper: () => cy.get('.edit-mcq-stems-wrapper [class*="SingleOptionstyle__EditorBlockWrapper"]'),
29
30
  optionInputField: () => cy.get('.edit-mcq-options-wrapper [data-rbd-draggable-id*="option-draggable"] [role="textbox"]'),
31
+ optionsLabel: () => cy.get('.cloze-with-drag-and-drop-options-label'),
30
32
  optionWrapper: () => cy.get('.response-options-wrapper [data-rbd-draggable-id*="option-draggable"]'),
31
- optionNumeration: () => cy.get('.response-options-wrapper [class*="SingleOptionstyle__AdornmentDiv"]'),
32
33
  promptNumeration: () => cy.get('[class*="SingleOptionstyle__AdornmentDiv"]'),
33
34
  promptLabel: () => cy.get('.match-list-stem-label'),
34
35
  promptHeaderLabel: () => cy.get('.prompt-header-container [class*="InlineTextFieldWithDebouncestyles__PropertyLabel"]'),
@@ -41,18 +42,15 @@ const selectors = {
41
42
  dropzoneColumnHeaderPreviewTab: () => cy.get('.preview-container [class*="ClozeWithDragAndDropstyles__HeaderContainer"]').eq(1),
42
43
  dropzoneColumnAndPromptHeaderWrapperSpecifyCorrectAnswerSection: () => cy.get('.correct-answer-accordion [class*="ClozeWithDragAndDropstyles__ResponseHeaderWrapper"]'),
43
44
  //Specify correct answer section
44
- dropzoneSpecifyCorrectAnswerSection: () => cy.get('.authoring-droppable-hotspot-wrapper'),
45
+ dropzoneSpecifyCorrectAnswerSection: () => cy.get('.authoring-droppable-hotspot-wrapper:visible'),
45
46
  optionContainerOptionsSpecifyCorrectAnswerSection: () => cy.get('.draggable-selected-item'),
46
- optionsLabel: () => cy.get('.cloze-with-drag-and-drop-options-label'),
47
47
  addPromptButton: () => cy.get('.add-option-wrapper-cls button').contains('Add prompt'),
48
48
  deletePromptButton: () => cy.get('[aria-label*="Delete prompt "]'),
49
- optionsLabel: () => cy.get('.cloze-with-drag-and-drop-options-label'),
50
- optionWrapper: () => cy.get('.response-options-wrapper [data-rbd-draggable-id*="option-draggable"]'),
51
49
  optionNumeration: () => cy.get('.response-options-wrapper [class*="SingleOptionstyle__AdornmentDiv"]'),
52
- droppedDraggableOptionInDropzoneSpecifyCorrectAnswerSection: () => cy.get('[class*="MultipleDroppedItemstyles__ItemWrapper"]'),
53
- optionsContainerSpecifyCorrectAnswerSection: () => cy.get('.draggable-wrapper'),
54
50
  promptSpecifyCorrectAnswerSection: () => cy.get('.stem-container [data-testid="question-instruction-element"]'),
55
51
  draggableOptionInDropzoneInSpecifyCorrectAnswer: () => cy.get('.item-content-wrapper'),
52
+ droppedDraggableOptionInDropzoneSpecifyCorrectAnswerSection: () => cy.get('[class*="MultipleDroppedItemstyles__ItemWrapper"]'),
53
+ optionsContainerSpecifyCorrectAnswerSection: () => cy.get('.draggable-wrapper'),
56
54
 
57
55
  //Penalty points
58
56
  penaltyPointsForEachIncorrectDropzoneInputField: () => cy.get('input[aria-label="Penalty points for each incorrect dropzone"]'),
@@ -74,6 +72,7 @@ const selectors = {
74
72
  correctAnswersNumeration: () => cy.get('.answer-numeration-number-box'),
75
73
  correctAnswerResponseWrapper: () => cy.get('[class*="ClozeWithDragAndDropstyles__AnswerCell"]'),
76
74
  correctAnswersOptions: () => cy.get('.match-list-drag-and-drop .question-text-wrapper'),
75
+ correctAnswersWrapper: () => cy.get('.match-list-drag-and-drop'),
77
76
  correctAnswersOptionContainer: () => cy.get('.draggable-selected-option'),
78
77
  questionBorderPreviewTab: () => cy.get('[class*="ClozeWithDragAndDropstyles__WrapperDiv"]'),
79
78
  correctAnswerResponseWrapperWithoutEnumeration: () => cy.get('.answer-status-response-preview-wrapper .item-wrapper'),
@@ -81,6 +80,8 @@ const selectors = {
81
80
  correctIncorrectAnswerLabel: () => cy.get('[class*="AnswerStatusText"]'),
82
81
  previewResponseWrapper: () => cy.get('[class*="ClozeWithDragAndDropstyles__PreviewResponseContainer"]:visible'),
83
82
  droppedDraggableOptionInDropzonePreviewTab: () => cy.get('[class*="MultipleDroppedItemstyles__ItemWrapper"]'),
83
+ warningMessage: () => cy.get('[class*="DropzoneLimitErrorMessagestyles__ErrorWrapper"] [class*="DropzoneLimitErrorMessagestyles__ErrorMessage"]'),
84
+ warningMessageContainer: () => cy.get('[class*="DropzoneLimitErrorMessagestyles__ErrorWrapper"]'),
84
85
  dropzoneColumnAndPromptHeaderWrapperPreviewTab: () => cy.get('.edit-question-preview-wrapper [class*="ClozeWithDragAndDropstyles__ResponseHeaderWrapper"]')
85
86
  }
86
87
 
@@ -96,22 +97,16 @@ const steps = {
96
97
  ...equationEditorFlyout.steps,
97
98
  ...autoScoredStudentViewSettings.steps,
98
99
  ...autoScoredSpecifyCorrectAnswerSection.steps,
99
- ...draggableOptionContainer.steps,
100
100
  ...randomizeOptionsComponent.steps,
101
101
  ...draggableOptionsSectionComponent.steps,
102
102
  ...autoScoredScoringSectionMultiResponseType.steps,
103
- ...draggableOptionsSectionComponent.steps,
104
103
  ...draggableOptionContainer.steps,
105
104
  ...commonComponents.steps,
106
- ...draggableOptionsSectionComponent.steps,
107
- ...draggableOptionContainer.steps,
108
- ...autoScoredScoringSectionMultiResponseType.steps,
105
+ ...toolSettingsComponent.steps,
109
106
  ...allowMultipleInstancesOfSameDraggableOptionComponent.steps,
110
- ...randomizeOptionsComponent.steps,
111
107
  ...additionalSettingsPanel.steps,
112
108
  ...gradingViewEnumerationComponent.steps,
113
109
  ...ariaLabelSectionComponent.steps,
114
- ...maximumCapacityPerDropzoneComponent.steps,
115
110
 
116
111
  //Edit tab
117
112
  addPrompt: () => {
@@ -606,6 +601,20 @@ const steps = {
606
601
  return matchingPage.optionWrapper().its('length')
607
602
  },
608
603
 
604
+ /**
605
+ * @param {number} categoryIndex optionIndex of the dropzone in set correct answer section
606
+ * @param {string[]} responseArray array of options set as correct responses in a dropzone
607
+ */
608
+ verifyDraggableOptionInDropzoneSpecifyCorrectAnswerSection: (dropzoneIndex, responseArray) => {
609
+ matchingPage.dropzoneSpecifyCorrectAnswerSection()
610
+ .eq(dropzoneIndex)
611
+ .within(() => {
612
+ responseArray.forEach((response, count) => {
613
+ utilities.verifyTextContent(utilities.getNthElement(matchingPage.droppedDraggableOptionInDropzoneSpecifyCorrectAnswerSection(), count), response);
614
+ });
615
+ });
616
+ },
617
+
609
618
  //Preview tab
610
619
  /**
611
620
  * Enter text in the answer input fields of the specify correct answer section.
@@ -837,6 +846,14 @@ const steps = {
837
846
  utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'exist');
838
847
  });
839
848
  });
849
+ matchingPage.dropzonePreviewTab()
850
+ .eq(dropzoneIndex)
851
+ .within(() => {
852
+ matchingPage.dropzoneOptionPreviewTab()
853
+ .eq(optionIndex)
854
+ .find('.item-content-wrapper')
855
+ .should('have.css', 'border', `1px solid ${css.color.correctAnswer}`)
856
+ });
840
857
  },
841
858
 
842
859
  /**
@@ -854,6 +871,14 @@ const steps = {
854
871
  utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'exist');
855
872
  });
856
873
  });
874
+ matchingPage.dropzonePreviewTab()
875
+ .eq(dropzoneIndex)
876
+ .within(() => {
877
+ matchingPage.dropzoneOptionPreviewTab()
878
+ .eq(optionIndex)
879
+ .find('.item-content-wrapper')
880
+ .should('have.css', 'border', `1px solid ${css.color.incorrectAnswer}`)
881
+ });
857
882
  },
858
883
 
859
884
  /**
@@ -883,6 +908,19 @@ const steps = {
883
908
  });
884
909
  },
885
910
 
911
+ /**
912
+ * Verifies correct answer responses in the correct answer section and counts the number of correct answer groups.
913
+ * @param {string[][]} correctAnswerArray - An array of arrays containing correct answer responses for each group.
914
+ */
915
+ verifyCorrectAnswerResponsesInCorrectAnswerSectionForMultipleOptions: (correctAnswerArray) => {
916
+ correctAnswerArray.forEach((correctAnswerGroup, index) => {
917
+ utilities.verifyTextContent(utilities.getNthElement(matchingPage.correctAnswersNumeration(), index), index + 1);
918
+ correctAnswerGroup.forEach((answerOption, optionIndex) => {
919
+ utilities.verifyTextContent(utilities.getNthElement(matchingPage.correctAnswersWrapper(), index).find('.question-text-wrapper').eq(optionIndex), answerOption);
920
+ });
921
+ });
922
+ },
923
+
886
924
  /**
887
925
  * @param {("correct" | "incorrect")} answerStatus - The status of the answer.
888
926
  * @description Verifies the visibility and content of the correct/incorrect answer label block.
@@ -1099,12 +1137,21 @@ const steps = {
1099
1137
  .eq(dropzoneIndex)
1100
1138
  .within(() => {
1101
1139
  responseArray.forEach((response, count) => {
1102
- utilities.verifyInnerText(utilities.getNthElement(cy.get('.item-content-container'), count), response);
1140
+ utilities.verifyInnerText(utilities.getNthElement(matchingPage.droppedDraggableOptionInDropzonePreviewTab(), count), response);
1103
1141
  });
1104
1142
  });
1105
1143
  },
1106
1144
 
1107
1145
  /**
1146
+ * @description this function verifies warning text for limit reached
1147
+ * @param {string} warningText warning message displayed
1148
+ */
1149
+ verifyWarningMessage: (warningText) => {
1150
+ utilities.verifyElementVisibilityState(matchingPage.warningMessage(), 'visible');
1151
+ utilities.verifyInnerText(matchingPage.warningMessage(), warningText);
1152
+ },
1153
+
1154
+ /**
1108
1155
  * @param {number} responseAreaIndex Index of the dropzone in preview tab
1109
1156
  * @description Verify drag handle is not visible in filled category cell in preview tab
1110
1157
  */
@@ -1295,7 +1342,17 @@ const steps = {
1295
1342
  */
1296
1343
  verifyDropzoneColumnHeaderTextSpecifyCorrectAnswerSection: (text) => {
1297
1344
  utilities.verifyInnerText(matchingPage.dropzoneColumnHeaderSpecifyCorrectAnswerSection(), text);
1298
- }
1345
+ },
1346
+
1347
+ clickOnOptionContainerSpecifyCorrectAnswerSection: () => {
1348
+ matchingPage.optionsContainerSpecifyCorrectAnswerSection()
1349
+ .click()
1350
+ },
1351
+
1352
+ clickOnOptionContainerPreviewTab: () => {
1353
+ matchingPage.optionsContainerPreviewTab()
1354
+ .click()
1355
+ },
1299
1356
  }
1300
1357
 
1301
1358
  const tests = {
@@ -1312,6 +1369,7 @@ const tests = {
1312
1369
  ...createQuestionBasePage.tests,
1313
1370
  ...commonComponents.tests,
1314
1371
  ...draggableOptionsSectionComponent.tests,
1372
+ ...toolSettingsComponent.tests,
1315
1373
  ...studentViewSettingsLabelComponent.tests,
1316
1374
  ...randomizeOptionsComponent.tests,
1317
1375
  ...allowMultipleInstancesOfSameDraggableOptionComponent.tests,
@@ -1711,8 +1769,8 @@ const tests = {
1711
1769
 
1712
1770
  it(`When the user has removed all the options from the dropzone in the ${accordionName} accordion, \'Error: Please set a correct answer.\' error message should be thrown along with an error icon on the \'${accordionName}\' accordion`, () => {
1713
1771
  matchingPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Petals');
1714
- utilities.verifyElementVisibilityState(commonComponents.errorMessage().eq(1), 'visible')
1715
- utilities.verifyInnerText(commonComponents.errorMessage().eq(1), 'Error: Please set a correct answer.');
1772
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible')
1773
+ utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Please set a correct answer.');
1716
1774
  if (accordionName == 'Correct') {
1717
1775
  autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
1718
1776
  .within(() => {
@@ -10,8 +10,11 @@ const selectors = {
10
10
  ...autoScoredScoringSectionMultiResponseType,
11
11
  ...autoScoredScoringPreviewTab,
12
12
  ...randomizeOptionsComponent,
13
+ ...specifyRowsAndColumnsComponent,
13
14
  ...commonComponents,
14
15
  ...additionalSettingsPanel,
16
+ sameCheckboxTextInEachColumnCheckbox: () => cy.get('[data-ngie-testid="same-checkbox-text-in-each-column-checkbox"] input'),
17
+ sameCheckboxTextInEachColumnCheckboxLabel: () => cy.get('[data-ngie-testid="same-checkbox-text-in-each-column-checkbox"] [class*="label"]'),
15
18
  }
16
19
 
17
20
  const steps = {
@@ -111,7 +114,29 @@ const steps = {
111
114
  .should('have.class', 'selected');
112
115
  });
113
116
  });
114
- }
117
+ },
118
+
119
+ verifySameCheckboxTextInColumnCheckboxCheckedState: () => {
120
+ multipleSelectionGridPage.sameCheckboxTextInEachColumnCheckbox()
121
+ .should('be.checked');
122
+ },
123
+
124
+ verifySameCheckboxTextInColumnCheckboxUncheckedState: () => {
125
+ multipleSelectionGridPage.sameCheckboxTextInEachColumnCheckbox()
126
+ .should('not.be.checked');
127
+ },
128
+
129
+ uncheckSameCheckboxTextInColumnCheckbox: () => {
130
+ multipleSelectionGridPage.sameCheckboxTextInEachColumnCheckbox()
131
+ .click()
132
+ .should('not.be.checked');
133
+ },
134
+
135
+ checkSameCheckboxTextInColumnCheckbox: () => {
136
+ multipleSelectionGridPage.sameCheckboxTextInEachColumnCheckbox()
137
+ .click()
138
+ .should('be.checked');
139
+ },
115
140
  }
116
141
 
117
142
  const tests = {
@@ -124,6 +149,7 @@ const tests = {
124
149
  ...autoScoredStudentViewSettings.tests,
125
150
  ...studentViewSettingsLabelComponent.tests,
126
151
  ...randomizeOptionsComponent.tests,
152
+ ...specifyRowsAndColumnsComponent.tests,
127
153
  ...createQuestionBasePage.tests,
128
154
  ...commonComponents.tests,
129
155
  ...additionalSettingsPanel.tests,
@@ -207,6 +233,67 @@ const tests = {
207
233
  it('Accessibility of \'Correct\' accordion contents', { tags: 'a11y' }, () => {
208
234
  cy.checkAccessibility(gridQuestionCommonComponent.tableCell().parents('.correct-answer-accordion'));
209
235
  });
236
+ },
237
+
238
+ verifyOptionCellPropertyMenu: () => {
239
+ const optionCellPropertyMenuOptions = ['Checkbox', 'Checkbox with text', 'No checkbox'];
240
+ it(`When user expands cell property menu of an answer cell, then ${optionCellPropertyMenuOptions.join('')} option should be displayed with the corresponding cell property displayed as active selection`, () => {
241
+ multipleSelectionGridPage.steps.expandCellPropertyMenu({ row: 2, column: 2 });
242
+ optionCellPropertyMenuOptions.forEach((cellType, index) => {
243
+ utilities.verifyInnerText(utilities.getNthElement(multipleSelectionGridPage.editCellPropertyListOption(), index), cellType);
244
+ });
245
+ multipleSelectionGridPage.steps.verifyCellPropertyMenuOptionIsSelected(optionCellPropertyMenuOptions[2]);
246
+ });
247
+
248
+ it('CSS of default option type dropdown in active state', { tags: 'css' }, () => {
249
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyButton().eq(5).find('g g'), {
250
+ 'fill': css.color.primaryBtn
251
+ });
252
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyButton().eq(8).find('g g'), {
253
+ 'fill': css.color.selectToolbarOptionBg
254
+ });
255
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyListOption().find('span[class*="MuiListItemText"]'), {
256
+ 'color': css.color.liText,
257
+ 'font-size': css.fontSize.default,
258
+ 'font-weight': css.fontWeight.regular
259
+ });
260
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyListOption().eq(0).find('span').eq(0), {
261
+ 'fill': css.color.liText
262
+ });
263
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyListOption().eq(1).find('span').eq(0), {
264
+ 'fill': css.color.liText
265
+ });
266
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyListOption().eq(2).find('span').eq(0), {
267
+ 'fill': css.color.liText
268
+ });
269
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyListOption().eq(3).find('span').eq(0), {
270
+ 'fill': css.color.liText
271
+ });
272
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyListOption().eq(1), {
273
+ 'background-color': css.color.defaultBackground
274
+ });
275
+ utilities.verifyCSS(gridQuestionCommonComponent.editCellPropertyListOption().eq(0), {
276
+ 'background-color': css.color.liTextSelectedBg
277
+ });
278
+ });
279
+
280
+ it('Accessibility of default option type dropdown in active state', { tags: 'a11y' }, () => {
281
+ cy.checkAccessibility(gridQuestionCommonComponent.editCellPropertyList())
282
+ });
283
+
284
+ it('On selecting an option from the default option dropdown, the dropdown should close', () => {
285
+ multipleSelectionGridPage.editCellPropertyListOption()
286
+ .contains('Checkbox', { matchCase: false })
287
+ .click();
288
+ utilities.verifyElementVisibilityState(gridQuestionCommonComponent.editCellPropertyList(), 'notExist');
289
+ });
290
+
291
+ optionCellPropertyMenuOptions.forEach((cellType) => {
292
+ it(`When user selects ${cellType} option from the cell property menu, the table cell should be set to ${cellType}`, () => {
293
+ multipleSelectionGridPage.steps.modifyTableCellPropertyForOptionCells({ row: 2, column: 2 }, cellType);
294
+ multipleSelectionGridPage.steps.verifyEditCellCategoryTableCellProperty({ row: 2, column: 2 }, cellType);
295
+ });
296
+ });
210
297
  }
211
298
  }
212
299