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

Sign up to get free protection for your applications and to get access to all the features.
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