itemengine-cypress-automation 1.0.143-migrationScripts-d059d60.0 → 1.0.144-21MatchRepoUpdate-0ab2c79.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/additionalSettingsBasic.js +104 -0
  2. package/cypress/e2e/ILC/ContentBlocks/additionalSection.js +92 -0
  3. package/cypress/e2e/ILC/ContentBlocks/editTabBasics.js +11 -1
  4. package/cypress/e2e/ILC/ContentBlocks/previewTab.js +91 -0
  5. package/cypress/e2e/ILC/ContentBlocks/styleAndLayoutCustomizationSection.js +3 -3
  6. package/cypress/e2e/ILC/Desmos/desmosFourFunctionCalculatorEditTabBasicSection.js +2 -1
  7. package/cypress/e2e/ILC/Desmos/desmosFourFunctionCalculatorPreviewContents.smoke.js +2 -1
  8. package/cypress/e2e/ILC/Desmos/desmosGeometryToolEditTabBasicSection.js +1 -0
  9. package/cypress/e2e/ILC/Desmos/desmosGeometryToolPreviewContents.smoke.js +2 -1
  10. package/cypress/e2e/ILC/Desmos/desmosGraphingCalculatorEditTabBasicSection.js +1 -0
  11. package/cypress/e2e/ILC/Desmos/desmosGraphingCalculatorPreviewContents.smoke.js +2 -1
  12. package/cypress/e2e/ILC/Desmos/desmosMatrixCalculatorEditTabBasicSection.js +2 -2
  13. package/cypress/e2e/ILC/Desmos/desmosMatrixCalculatorPreviewContents.smoke.js +2 -1
  14. package/cypress/e2e/ILC/Desmos/desmosScientificCalculatorEditTabBasicSection.js +3 -2
  15. package/cypress/e2e/ILC/Desmos/desmosScientificCalculatorPreviewContents.smoke.js +2 -1
  16. package/cypress/e2e/ILC/DesmosGraphing/additionalSettings.js +0 -5
  17. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/additionalSettingsBasic.js +124 -0
  18. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +0 -9
  19. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +17 -17
  20. package/cypress/e2e/ILC/EssayResponse/additionalSettingsBasic.js +83 -0
  21. package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +32 -30
  22. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +25 -21
  23. package/cypress/e2e/ILC/EssayResponse/equationEditor.smoke.js +40 -41
  24. package/cypress/e2e/ILC/EssayResponse/equationEditorCategories1.js +249 -99
  25. package/cypress/e2e/ILC/EssayResponse/equationEditorCategories2.js +118 -187
  26. package/cypress/e2e/ILC/EssayResponseBasic/previewContentsForAllViews.smoke.js +1 -1
  27. package/cypress/e2e/ILC/EssayResponseMath/mathCharacters.js +1 -1
  28. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/additionalSettings.js +11 -11
  29. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneSettings.js +1 -1
  30. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +1 -3
  31. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/additionalSettingsBasic.js +138 -0
  32. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/additionalSettingsForDropdowns.js +309 -0
  33. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownSettings.js +181 -0
  34. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/additionalSettingsBasic.js +132 -0
  35. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/additionalSettingsBasic.js +143 -0
  36. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/additionalSettingsForDropdowns.js +345 -0
  37. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +194 -0
  38. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/supportedFileTypes.js +49 -0
  39. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/additionalSettingsBasic.js +25 -0
  40. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/additionalSettingsForAnswerInputFields.js +251 -0
  41. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +49 -0
  42. package/cypress/e2e/ILC/FillInTheGapsTextNew/additionalSettingsBasic.js +93 -0
  43. package/cypress/e2e/ILC/FillInTheGapsTextNew/additionalSettingsForAnswerInputFields.js +215 -0
  44. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +1 -1
  45. package/cypress/e2e/ILC/FillInTheGapsTextNew/textContainerSettings.js +219 -0
  46. package/cypress/e2e/ILC/GeoGebraTools/3DGraphingCalculatorEditTabBasicSection.js +96 -0
  47. package/cypress/e2e/ILC/GeoGebraTools/3DGraphingCalculatorPreviewTabContents.smoke.js +75 -0
  48. package/cypress/e2e/ILC/GeoGebraTools/casCalculatorEditTabBasicSection.js +96 -0
  49. package/cypress/e2e/ILC/GeoGebraTools/casCalculatorPreviewTabContents.smoke.js +75 -0
  50. package/cypress/e2e/ILC/GeoGebraTools/geometryCalculatorEditTabBasicSection.js +96 -0
  51. package/cypress/e2e/ILC/GeoGebraTools/geometryCalculatorPreviewTabContents.smoke.js +76 -0
  52. package/cypress/e2e/ILC/GeoGebraTools/graphingCalculatorEditTabBasicSection.js +96 -0
  53. package/cypress/e2e/ILC/GeoGebraTools/graphingCalculatorPreviewTabContents.smoke.js +73 -0
  54. package/cypress/e2e/ILC/GeoGebraTools/probablityCalculatorEditTabBasicSection.js +96 -0
  55. package/cypress/e2e/ILC/GeoGebraTools/probablityCalculatorPreviewTabContents.smoke.js +75 -0
  56. package/cypress/e2e/ILC/GeoGebraTools/scientificCalculatorEditTabBasicSection.js +96 -0
  57. package/cypress/e2e/ILC/GeoGebraTools/scientificCalculatorPreviewTabContents.smoke.js +75 -0
  58. package/cypress/e2e/ILC/GeogebraActivity/additionalSettings.js +10 -8
  59. package/cypress/e2e/ILC/GeogebraActivity/gradingViewAndCorrectAnswerViewContents.smoke.js +3 -2
  60. package/cypress/e2e/ILC/GeogebraActivity/headerSection.js +2 -1
  61. package/cypress/e2e/ILC/GeogebraActivity/insertResourceLink.js +318 -0
  62. package/cypress/e2e/ILC/GeogebraActivity/previewTabContent.smoke.js +2 -1
  63. package/cypress/e2e/ILC/Graphing/additionalSettingsBasic.js +15 -4
  64. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +280 -0
  65. package/cypress/e2e/ILC/GridFill/checkAnswerFunctionalityForAllViews.smoke.js +136 -0
  66. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +205 -0
  67. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +213 -0
  68. package/cypress/e2e/ILC/GridFill/scoring/manuallyAndNonScored.js +106 -0
  69. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +79 -0
  70. package/cypress/e2e/ILC/MultipleSelection/additionalSettingsBasic.js +108 -0
  71. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +251 -0
  72. package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +180 -0
  73. package/cypress/e2e/ILC/ShortTextResponseNew/additionalSettings.js +48 -56
  74. package/cypress/e2e/ILC/SingleSelection/additionalSettingsBasic.js +107 -0
  75. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +251 -0
  76. package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +180 -0
  77. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +12 -3
  78. package/cypress/e2e/ILC/TextEntryMath/checkAnswerFunctionalityForAllViews.smoke.js +4 -1
  79. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.js +93 -68
  80. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.js +59 -52
  81. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.js +59 -52
  82. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodSymbolsAreEquivalent.js +61 -50
  83. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.js +65 -51
  84. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodsWithoutSetResponse.js +55 -46
  85. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +6 -3
  86. package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +11 -9
  87. package/cypress/e2e/ILC/TextEntryMathWithImage/checkAnswerFunctionalityForAllViews.smoke.js +4 -3
  88. package/cypress/e2e/ILC/TextEntryMathWithImage/previewTabContentsForAllViews.smoke.js +4 -2
  89. package/cypress/e2e/ILC/UploadResponse/additionalSettingsBasic.js +85 -0
  90. package/cypress/e2e/ILC/UploadResponse/editTabScoringSection.js +12 -12
  91. package/cypress/e2e/ILC/UploadResponse/uploadResponseEditTabBasicSections.js +1 -1
  92. package/cypress/fixtures/constants.js +2 -0
  93. package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +1114 -1511
  94. package/cypress/fixtures/theme/ilc.json +7 -1
  95. package/cypress/pages/audioResponsePage.js +26 -2
  96. package/cypress/pages/components/additionalSettingsAccessibilitySectionComponent.js +1 -0
  97. package/cypress/pages/components/additionalSettingsPanel.js +3 -10
  98. package/cypress/pages/components/ariaLabelSectionComponent.js +84 -0
  99. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -2
  100. package/cypress/pages/components/autoScoredStudentViewSettings.js +1 -1
  101. package/cypress/pages/components/commonComponents.js +1 -1
  102. package/cypress/pages/components/createCustomCategoryFlyout.js +2 -2
  103. package/cypress/pages/components/createQuestionBasePage.js +1 -1
  104. package/cypress/pages/components/desmosToolComponent.js +1 -0
  105. package/cypress/pages/components/draggableOptionContainer.js +1 -1
  106. package/cypress/pages/components/editCategoryFlyout.js +9 -10
  107. package/cypress/pages/components/equationEditorFlyout.js +20 -11
  108. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +167 -3
  109. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +149 -6
  110. package/cypress/pages/components/gradingViewEnumerationComponent.js +151 -0
  111. package/cypress/pages/components/gridQuestionCommonComponent.js +390 -0
  112. package/cypress/pages/components/imageCanvasComponent.js +25 -1
  113. package/cypress/pages/components/index.js +5 -1
  114. package/cypress/pages/components/placeholderTextSectionComponent.js +110 -0
  115. package/cypress/pages/components/responseAreaSettingsPopupComponent.js +2 -2
  116. package/cypress/pages/contentBlocksPage.js +60 -1
  117. package/cypress/pages/dragAndDropIntoCategoriesPage.js +4 -17
  118. package/cypress/pages/essayResponsePage.js +14 -11
  119. package/cypress/pages/fillInTheGapsDragAndDropPage.js +15 -0
  120. package/cypress/pages/fillInTheGapsDropdownPage.js +121 -2
  121. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +3 -1
  122. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +70 -3
  123. package/cypress/pages/fillInTheGapsOverImageTextPage.js +33 -3
  124. package/cypress/pages/fillInTheGapsTextPage.js +81 -4
  125. package/cypress/pages/geoGebraActivityPage.js +75 -11
  126. package/cypress/pages/geoGebraToolsPage.js +292 -0
  127. package/cypress/pages/graphingPage.js +2 -1
  128. package/cypress/pages/gridFillPage.js +713 -0
  129. package/cypress/pages/index.js +3 -1
  130. package/cypress/pages/multipleSelectionGridPage.js +71 -317
  131. package/cypress/pages/multipleSelectionPage.js +2 -1
  132. package/cypress/pages/selectQuestionResourceToolPage.js +13 -2
  133. package/cypress/pages/singleSelectionGridPage.js +78 -329
  134. package/cypress/pages/singleSelectionPage.js +2 -1
  135. package/cypress/pages/textEntryMathPage.js +24 -6
  136. package/cypress/pages/textEntryMathWithImagePage.js +1 -1
  137. package/cypress/pages/uploadResponsePage.js +4 -3
  138. package/package.json +1 -1
  139. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/additionalSettings.js +0 -43
  140. package/cypress/pages/components/fillInTheGapsCommonComponents.js +0 -642
@@ -119,8 +119,14 @@
119
119
  "darkThemeBtnBorder": "rgb(117, 51, 255)",
120
120
  "lightThemeBtnBg": "rgb(82, 0, 255)",
121
121
  "lightThemeBtnBorder": "rgb(94, 110, 255)",
122
+ "geoGebraCanvasBorder": "rgb(102, 102, 102)",
123
+ "geoGebraHttpsBg": "rgb(233, 238, 255)",
122
124
  "enabledSwitchBg": "rgb(48, 160, 79)",
123
- "geoGebraCanvasBorder": "rgb(102, 102, 102)"
125
+ "gridCellHoverStateBg": "rgba(186, 201, 255, 0.6)",
126
+ "gridCellDefaultStateBg": "rgba(186, 201, 255, 0.2)",
127
+ "gridCellSelectedStateBg": "rgba(107, 139, 255, 0.7)",
128
+ "gridCellCorrectAnswerBg": "rgba(43, 120, 74, 0.4)",
129
+ "gridCellIncorrectAnswerBg": "rgba(209, 51, 51, 0.4)"
124
130
  },
125
131
  "fontSize": {
126
132
  "extraSmall": "10px",
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { createQuestionBasePage, questionInstructionsComponent, scoringSectionBaseEditTab, maximumRecorderLengthComponent, commonComponents, playbackControlsBaseComponent, autoScoredScoringPreviewTab, studentViewSettingsLabelComponent, additionalSettingsPanel } from "./components"
2
+ import { createQuestionBasePage, questionInstructionsComponent, scoringSectionBaseEditTab, maximumRecorderLengthComponent, commonComponents, playbackControlsBaseComponent, autoScoredScoringPreviewTab, studentViewSettingsLabelComponent, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent } from "./components"
3
3
  import { dialogBoxBase } from "./dialogBoxBase";
4
4
  const css = Cypress.env('css');
5
5
 
@@ -11,6 +11,7 @@ const selectors = {
11
11
  ...maximumRecorderLengthComponent,
12
12
  ...playbackControlsBaseComponent,
13
13
  ...studentViewSettingsLabelComponent,
14
+ ...additionalSettingsPanel,
14
15
  recordedResponseHelpText: () => cy.get('[class*="preview-help-text"]'),
15
16
  playbackWaveform: () => cy.get('.audio-wave-form'),
16
17
  playbackWaveformTotalWidth: () => cy.get('.audio-wave-form wave wave canvas'),
@@ -107,7 +108,11 @@ const selectors = {
107
108
  showStudentsTheRetakeLimitsOnTooltipCheckboxLabel: () => cy.get('[data-ngie-testid="show-students-the-retake-limits-on-tooltip-checkbox"] .MuiFormControlLabel-label'),
108
109
  retakeLimitLabel: () => cy.get('.retake-limit-label'),
109
110
  retakeLimitInputField: () => cy.get('.retake-limit-wrapper input'),
110
- barPreviewPlaybackWrapper: () => cy.get('.audio-response-wrapper')
111
+ barPreviewPlaybackWrapper: () => cy.get('.audio-response-wrapper'),
112
+
113
+ //Additional settings
114
+ allowTeachersToDownloadStudentResponseLabel: () => cy.get('[data-ngie-testid="allow-teachers-to-download-student-response-checkbox"] [class*="label"]'),
115
+ allowTeachersToDownloadStudentResponseCheckbox: () => cy.get('[data-ngie-testid="allow-teachers-to-download-student-response-checkbox"] input')
111
116
  }
112
117
 
113
118
  const steps = {
@@ -835,6 +840,23 @@ const steps = {
835
840
  clearRetakeLimitInputField: () => {
836
841
  audioResponsePage.retakeLimitInputField()
837
842
  .clear();
843
+ },
844
+
845
+ verifyAllowTeachersToDownloadStudentResponseCheckboxChecked: () => {
846
+ audioResponsePage.allowTeachersToDownloadStudentResponseCheckbox()
847
+ .should('be.checked');
848
+ },
849
+
850
+ uncheckAllowTeachersToDownloadStudentResponseCheckbox: () => {
851
+ audioResponsePage.allowTeachersToDownloadStudentResponseCheckbox()
852
+ .click()
853
+ .should('not.be.checked');
854
+ },
855
+
856
+ checkAllowTeachersToDownloadStudentResponseCheckbox: () => {
857
+ audioResponsePage.allowTeachersToDownloadStudentResponseCheckbox()
858
+ .click()
859
+ .should('be.checked');
838
860
  }
839
861
  }
840
862
 
@@ -846,6 +868,8 @@ const tests = {
846
868
  ...playbackControlsBaseComponent.tests,
847
869
  ...autoScoredScoringPreviewTab.tests,
848
870
  ...studentViewSettingsLabelComponent.tests,
871
+ ...additionalSettingsPanel.tests,
872
+ ...additionalSettingsAccessibilitySectionComponent.tests,
849
873
  verifyRetakePopupCSSAndA11y: () => {
850
874
  it('CSS of \'Retake\' popup', { tags: 'css' }, () => {
851
875
  utilities.verifyCSS(dialogBoxBase.dialogBox(), {
@@ -1,4 +1,5 @@
1
1
  import utilities from "../../support/helpers/utilities";
2
+ const css = Cypress.env('css');
2
3
 
3
4
  const selectors = {
4
5
  accessibilityLabel: () => cy.get('[class*="Accessibilitystyles__AccessibilityLabelWrapper"]'),
@@ -30,7 +30,6 @@ const selectors = {
30
30
  }
31
31
 
32
32
  const steps = {
33
- //Enhancement: Remove this step, (this has incorrect spelling)
34
33
  expandAdditionalSettings: () => {
35
34
  additionalSettingsPanel.additionalSettingsPanel()
36
35
  .click()
@@ -65,12 +64,6 @@ const steps = {
65
64
  .blur();
66
65
  },
67
66
 
68
- expandAdditionalSettings: () => {
69
- additionalSettingsPanel.additionalSettingsPanel()
70
- .click()
71
- .should('have.attr', 'aria-expanded', 'true');
72
- },
73
-
74
67
  expandFontSizeDropdown: () => {
75
68
  additionalSettingsPanel.fontSizeDropdown()
76
69
  .click();
@@ -95,7 +88,7 @@ const tests = {
95
88
  utilities.verifyTextContent(additionalSettingsPanel.additionalSettingsSampleAnswerInputField(), 'Sample answer');
96
89
  });
97
90
 
98
- it('\'Acknowledgements & reference\' label and input field should be displayed and user should be able to enter \'Acknowledgements\'', () => {
91
+ it('\'Acknowledgements & reference\' label and input field should be displayed and user should be able to enter \'Acknowledgements & reference\'', () => {
99
92
  utilities.verifyInnerText(additionalSettingsPanel.additionalSettingsAcknowledgementsLabel(), 'Acknowledgements and references');
100
93
  additionalSettingsPanel.steps.enterTextInAcknowledgementsInputField('Acknowledgements');
101
94
  utilities.verifyTextContent(additionalSettingsPanel.additionalSettingsAcknowledgementsInputField(), 'Acknowledgements');
@@ -186,13 +179,13 @@ const tests = {
186
179
 
187
180
  it('CSS of Font size dropdown - active state', { tags: 'css' }, () => {
188
181
  additionalSettingsPanel.steps.expandFontSizeDropdown();
189
- utilities.verifyCSS(additionalSettingsPanel.fontSizeListOptions('Default'), {
182
+ utilities.verifyCSS(utilities.getNthElement(additionalSettingsPanel.fontSizeListOptions(), 2), {
190
183
  'color': css.color.liText,
191
184
  'font-size': css.fontSize.default,
192
185
  'font-weight': css.fontWeight.regular,
193
186
  'background-color': css.color.liTextSelectedBg
194
187
  });
195
- utilities.verifyCSS(additionalSettingsPanel.fontSizeListOptions('Small'), {
188
+ utilities.verifyCSS(utilities.getNthElement(additionalSettingsPanel.fontSizeListOptions(), 1), {
196
189
  'background-color': css.color.transparent
197
190
  });
198
191
  cy.log('Post step: Closing the Font size dropdown')
@@ -0,0 +1,84 @@
1
+ import utilities from "../../support/helpers/utilities";
2
+ const css = Cypress.env('css');
3
+
4
+ const selectors = {
5
+ ariaLabelInputField: () => cy.get('input[aria-label*="Enter ARIA label"]'),
6
+ inputFieldNumeration: () => cy.get('.MuiInputAdornment-root'),
7
+ ariaLabelSectionLabel: () => cy.get('[class*="AriaLabelTextFieldsstyles__LabelWrapper"]'),
8
+ }
9
+
10
+ const steps = {
11
+ /**
12
+ * Verifies the ARIA label text input fields.
13
+ * @param {number} inputFieldIndex - The index of the input field to verify.
14
+ */
15
+ verifyAriaLabelTextInputFields: (inputFieldIndex) => {
16
+ ariaLabelSectionComponent.ariaLabelInputField()
17
+ .eq(inputFieldIndex)
18
+ .parents('.input-editable')
19
+ .within(() => {
20
+ utilities.verifyInnerText(ariaLabelSectionComponent.inputFieldNumeration(), `${inputFieldIndex + 1}`)
21
+ utilities.verifyInputFieldValue(ariaLabelSectionComponent.ariaLabelInputField(), '');
22
+ });
23
+ },
24
+
25
+ /**
26
+ * Enters text in the ARIA label input field.
27
+ * @param {number} inputFieldIndex - The index of the input field to enter text into.
28
+ * @param {string} text - The text to enter into the input field.
29
+ */
30
+ enterTextInAriaLabelInputField: (inputFieldIndex, text) => {
31
+ ariaLabelSectionComponent.ariaLabelInputField()
32
+ .eq(inputFieldIndex)
33
+ .type(text)
34
+ .should('have.value', text)
35
+ },
36
+
37
+ /**
38
+ * Clears text in the ARIA label input field.
39
+ * @param {number} inputFieldIndex - The index of the input field to clear.
40
+ */
41
+ clearTextInAriaLabelInputField: (inputFieldIndex) => {
42
+ ariaLabelSectionComponent.ariaLabelInputField()
43
+ .eq(inputFieldIndex)
44
+ .clear();
45
+ }
46
+ }
47
+
48
+ const tests = {
49
+ /**
50
+ * Verifies the contents of the ARIA label section.
51
+ * @param {string} typeOfInput - The type of input for which ARIA labels are being verified. (eg. text containers, dropdown)
52
+ */
53
+ verifyAriaLabelSectionContents: (typeOfInput) => {
54
+ it(`"ARIA label for ${typeOfInput}" label should be displayed`, () => {
55
+ utilities.verifyInnerText(ariaLabelSectionComponent.ariaLabelSectionLabel(), `ARIA label for ${typeOfInput}`);
56
+ utilities.verifyElementVisibilityState(ariaLabelSectionComponent.ariaLabelSectionLabel(), 'visible');
57
+ });
58
+
59
+ it('Two input fields with numeration and "Enter aria label" placeholder should be displayed by default', () => {
60
+ utilities.verifyElementCount(ariaLabelSectionComponent.ariaLabelInputField(), 2);
61
+ ariaLabelSectionComponent.steps.verifyAriaLabelTextInputFields(0);
62
+ ariaLabelSectionComponent.steps.verifyAriaLabelTextInputFields(1);
63
+ });
64
+
65
+ it(`CSS of "ARIA label for ${typeOfInput}" section`, { tags: 'css' }, () => {
66
+ utilities.verifyCSS(ariaLabelSectionComponent.ariaLabelSectionLabel(), {
67
+ 'color': css.color.labels,
68
+ 'font-size': css.fontSize.normal,
69
+ 'font-weight': css.fontWeight.semibold
70
+ });
71
+ utilities.verifyCSS(ariaLabelSectionComponent.ariaLabelInputField(), {
72
+ 'color': css.color.text,
73
+ 'font-size': css.fontSize.default,
74
+ 'font-weight': css.fontWeight.regular
75
+ });
76
+ });
77
+ }
78
+ }
79
+
80
+ export const ariaLabelSectionComponent = {
81
+ ...selectors,
82
+ steps,
83
+ tests
84
+ }
@@ -33,7 +33,7 @@ const steps = {
33
33
  */
34
34
  addAlternativeAnswerAccordion: (accordionIndex) => {
35
35
  autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
36
- utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordionLabel(), `Alternative ${accordionIndex}`);
36
+ utilities.verifyInnerText(utilities.getNthElement(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordionLabel(), `${accordionIndex-1}`), `Alternative ${accordionIndex}`);
37
37
  },
38
38
 
39
39
  verifySpecifyCorrectAnswerErrorIconNotExists: () => {
@@ -204,6 +204,9 @@ const tests = {
204
204
  case 'graphing':
205
205
  helpText = 'You can set the correct answer by entering the correct answer(s) in the response area(s)';
206
206
  break;
207
+ case 'grid fill' :
208
+ helpText = 'You can set the correct answer by selecting the correct cell(s) in the grid.';
209
+ break;
207
210
  default:
208
211
  throw new Error('Invalid question type');
209
212
  }
@@ -219,7 +222,7 @@ const tests = {
219
222
  utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerHelpText(), {
220
223
  'color': css.color.helperText,
221
224
  'font-size': css.fontSize.normal,
222
- 'font-weight': css.fontWeight.medium
225
+ 'font-weight': css.fontWeight.regular
223
226
  });
224
227
  utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordionLabel(), {
225
228
  'color': css.color.activeButtons,
@@ -25,7 +25,7 @@ const steps = {
25
25
  .should('not.be.checked');
26
26
  },
27
27
 
28
-
28
+ //Enhancement: Duplicate function, remove after verifying impact
29
29
  checkAllowStudentsToCheckAnswerCheckbox: () => {
30
30
  autoScoredStudentViewSettings.allowStudentToCheckAnswerCheckbox()
31
31
  .click()
@@ -88,7 +88,7 @@ const tests = {
88
88
  });
89
89
 
90
90
  it('Accessibility of error message', { tags: 'a11y' }, () => {
91
- cy.checkAccessibility(commonComponents.errorMessage());
91
+ cy.checkAccessibility(commonComponents.nextGenCreateItemWrapper());
92
92
  });
93
93
  }
94
94
  }
@@ -390,11 +390,11 @@ const steps = {
390
390
  utilities.verifyElementCount(createCustomCategoryFlyout.categoryCharacters(), symbolARIALabelArray.length);
391
391
  });
392
392
  },
393
- ///OLD
393
+
394
394
  createCustomCategoryWithNameAndIcon: () => {
395
395
  cy.log('Creating a category by selecting \'Arrows\' category')
396
396
  createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
397
- createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['arrows'].displayName}`);
397
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['geo'].displayName}`);
398
398
  createCustomCategoryFlyout.steps.addInputToCustomCategoryNameInputField('Custom category with name and icon.');
399
399
  createCustomCategoryFlyout.steps.addInputToCategoryIconInputField('#');
400
400
  createCustomCategoryFlyout.steps.saveCustomCategory();
@@ -110,7 +110,7 @@ const tests = {
110
110
  });
111
111
 
112
112
  it('\'Save\' button should be displayed', () => {
113
- let exceptionQuestions = ['Desmos scientific calculator', 'Desmos graphing calculator', 'Desmos four-function calculator', 'Desmos geometry tool', 'Desmos matrix calculator', 'Passage', 'Reading ruler', 'Audio player', 'Ruler', 'Protractor']
113
+ let exceptionQuestions = ['Scientific calculator', 'Desmos graphing calculator', 'Desmos four-function calculator', 'Desmos geometry tool', 'Desmos matrix calculator', 'Passage', 'Reading ruler', 'Audio player', 'Ruler', 'Protractor', 'GeoGebra graphing calculator', 'GeoGebra scientific calculator', 'GeoGebra 3D graphing calculator', 'GeoGebra geometry calculator', 'GeoGebra CAS calculator', 'GeoGebra probability calculator']
114
114
  if (exceptionQuestions.includes(questionType)) {
115
115
  utilities.verifyInnerText(createQuestionBasePage.saveQuestionButton(), 'Save');
116
116
  }
@@ -30,6 +30,7 @@ const selectors = {
30
30
 
31
31
  const steps = {
32
32
  verifyDesmosToolIsVisible: () => {
33
+ cy.wait(5000);
33
34
  utilities.verifyElementVisibilityState(desmosToolComponent.previewTabDesmosTool(), 'visible');
34
35
  },
35
36
 
@@ -17,7 +17,7 @@ const selectors = {
17
17
  groupedOptionsContainerPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="GroupDiv"]'),
18
18
  groupedOptionsTitlePreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="GroupTitleWrapper"]'),
19
19
  groupedOptionsGridPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="DraggableGroupsGrid"]'),
20
- draggableOptionText: () => cy.get('.icon-container-wrapper [class*="DraggableItemsstyle__QuestionTextWrapper"]'),
20
+ draggableOptionText: () => cy.get('.icon-container-wrapper [class*="DraggableItemsstyle__QuestionTextWrapper"]:visible'),
21
21
  optionContainerItemListPreviewTab: () => cy.get('[class*="question-preview-wrapper"] .item-list'),
22
22
  optionContainerItemListSpecifyCorrectAnswerSection: () => cy.get('.item-list'),
23
23
  draggableOptionDragIcon: () => cy.get('.drag-icon-button')
@@ -25,7 +25,7 @@ const selectors = {
25
25
  const steps = {
26
26
  openEditCategoryFlyout: () => {
27
27
  essayResponsePage.equationEditorSectionCategories()
28
- .contains(`${equationEditorCategoriesAndSymbols['keypad'].displayName}`)
28
+ .contains(`${equationEditorCategoriesAndSymbols['general'].displayName}`)
29
29
  .parents('[id*="DraggableItem"]')
30
30
  .within(() => {
31
31
  essayResponsePage.equationEditorSectionCategoriesEditIcon()
@@ -70,12 +70,9 @@ const steps = {
70
70
  .should('have.class', 'Mui-selected');
71
71
  },
72
72
 
73
- deselectAllCategoryCharacters: () => {
74
- editCategoryFlyout.categoryCharacters()
75
- .each(($el) => {
76
- cy.wrap($el)
77
- .click();
78
- });
73
+ deselectCategoryCharacters: (characterAriaLabel) => {
74
+ editCategoryFlyout.categoryCharacters(characterAriaLabel)
75
+ .click();
79
76
  },
80
77
 
81
78
  /**
@@ -185,9 +182,11 @@ const steps = {
185
182
  editCategoryFlyout.characterTickIcon()
186
183
  .should('not.have.attr', 'aria-checked', 'false');
187
184
  })
188
- cy.wrap($el)
189
- .find('title')
190
- .should('have.text', symbolsArray[index].title);
185
+ if (symbolsArray[index].title) {
186
+ cy.wrap($el)
187
+ .find('title')
188
+ .should('have.text', symbolsArray[index].title);
189
+ }
191
190
  if (symbolsArray[index].textElement) {
192
191
  cy.wrap($el)
193
192
  .verifyInnerText(symbolsArray[index].textElement)
@@ -7,7 +7,7 @@ const css = Cypress.env('css');
7
7
  const selectors = {
8
8
  ...dialogBoxBase,
9
9
  buttonOk: () => cy.get('.ok-btn'),
10
- previewInputField: () => cy.get('.mq-editable-field'),
10
+ previewInputField: () => cy.get('.next-gen-equation-editor .mq-editable-field'),
11
11
  categoryTab: (categoryName = null) => {
12
12
  if (categoryName) {
13
13
  return cy.get('.tool-wrapper').contains(categoryName)
@@ -29,7 +29,7 @@ const selectors = {
29
29
  buttonNext: () => cy.get('.next-btn'),
30
30
  buttonPrevious: () => cy.get('.previous-btn'),
31
31
  inputFieldCursor: () => cy.get('.mq-hasCursor'),
32
- inputFieldFirstEmptyBox: () => cy.get('.mq-empty').eq(0),
32
+ inputFieldFirstEmptyBox: () => cy.get('.next-gen-equation-editor .mq-empty').eq(0),
33
33
  categoryTooltip: () => cy.get('.__react_component_tooltip'),
34
34
  dialogBoxTitle: () => cy.get('#alert-dialog-title')
35
35
  }
@@ -94,7 +94,8 @@ const steps = {
94
94
  equationEditorFlyout.categoryCharacters()
95
95
  .each(($el, index) => {
96
96
  cy.wrap($el)
97
- .should('have.attr', 'aria-label', symbolsArray[index].ariaLabel)
97
+ .should('have.attr', 'aria-label')
98
+ .and('include', symbolsArray[index].ariaLabel)
98
99
  utilities.verifyTextContent(cy.wrap($el).find('title'), `${symbolsArray[index].title}`);
99
100
  if (symbolsArray[index].textElement !== null) {
100
101
  utilities.verifyTextContent(cy.wrap($el), `${symbolsArray[index].textElement}`);
@@ -174,6 +175,7 @@ const steps = {
174
175
  equationEditorFlyout.previewInputField()
175
176
  .verifyInnerText('')
176
177
  .should('be.visible')
178
+ .click()
177
179
  .and('have.class', 'mq-focused');
178
180
  },
179
181
 
@@ -205,7 +207,7 @@ const steps = {
205
207
  * @param {string[]} categoryName Name of category
206
208
  */
207
209
  verifyCategoryIsDisplayedInEquationEditor: (categoryName) => {
208
- utilities.verifyElementVisibilityState(equationEditorFlyout.categoryTab().contains(categoryName, { matchCase: false }), 'visible');
210
+ utilities.verifyElementVisibilityState(equationEditorFlyout.categoryTab().contains(categoryName, { matchCase: false }), 'exist');
209
211
  },
210
212
 
211
213
  verifyCategoryTileSelectedInEquationEditor: (categoryName) => {
@@ -227,7 +229,7 @@ const steps = {
227
229
  equationEditorFlyout.buttonPrevious()
228
230
  .click();
229
231
  },
230
- ///Old
232
+
231
233
  addGenericEquationUsingEquationEditorToCKEditorInputField: () => {
232
234
  equationEditorFlyout.categoryTab(equationEditorCategoriesAndSymbols['basic'].displayName)
233
235
  .click();
@@ -327,15 +329,20 @@ const steps = {
327
329
  .click();
328
330
  },
329
331
 
330
-
331
332
  enterQuadraticEquation: () => {
332
- equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['two'] }, { categoryName: 'basic', symbolName: ['x', 'square', 'y', 'square', 'add'] }, { categoryName: 'keypad', symbolName: ['four'] }, { categoryName: 'basic', symbolName: ['x', 'y', 'add'] }, { categoryName: 'keypad', symbolName: ['four'] }]);
333
+ equationEditorFlyout.steps.clearAll();
334
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'numPad', symbolName: ['two'] }, { categoryName: 'intermediate', symbolName: ['x', 'square', 'y', 'square'] }, { categoryName: 'numPad', symbolName: ['add', 'four'] }, { categoryName: 'intermediate', symbolName: ['x', 'y'] }, { categoryName: 'numPad', symbolName: ['add', 'four'] }]);
333
335
  equationEditorFlyout.steps.clickOnOkButton();
334
336
  },
335
337
 
336
338
  enterEquationUsingPiSymbol: () => {
337
- equationEditorFlyout.steps.enterEquation([{ categoryName: 'keypad', symbolName: ['six', 'multiply'] }, { categoryName: 'greek', symbolName: ['pi'] }]);
339
+ equationEditorFlyout.steps.clearAll();
340
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'numPad', symbolName: ['six', 'multiply'] }, { categoryName: 'intermediate', symbolName: ['pi'] }]);
338
341
  equationEditorFlyout.steps.clickOnOkButton();
342
+ },
343
+
344
+ clearAll: () => {
345
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'numPad', symbolName: ['clearAll'] }])
339
346
  }
340
347
  }
341
348
 
@@ -396,9 +403,11 @@ const tests = {
396
403
  .then((ariaLabel) => {
397
404
  const expectedValue = symbolsArray[index].ariaLabel;
398
405
  expect(ariaLabel.trim().toLowerCase()).to.include(expectedValue.toLowerCase());
399
- cy.wrap($el)
400
- .find('title')
401
- .should('have.text', symbolsArray[index].title);
406
+ if (symbolsArray[index].title) {
407
+ cy.wrap($el)
408
+ .find('title')
409
+ .should('have.text', symbolsArray[index].title);
410
+ }
402
411
  if (symbolsArray[index].textElement) {
403
412
  cy.wrap($el)
404
413
  .verifyInnerText(symbolsArray[index].textElement)