itemengine-cypress-automation 1.0.143-migrationScripts-d059d60.0 → 1.0.143

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 +2 -2
  139. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/additionalSettings.js +0 -43
  140. package/cypress/pages/components/fillInTheGapsCommonComponents.js +0 -642
@@ -1,4 +1,4 @@
1
- import { optionsWrapperComponent, createQuestionBasePage, autoScoredSpecifyCorrectAnswerSection, scoringSectionBaseEditTab, autoScoredScoringSectionMultiResponseType, questionInstructionsComponent, autoScoredStudentViewSettings, autoScoredScoringPreviewTab, commonComponents, ckEditorToolbar, equationEditorFlyout, randomizeOptionsComponent, allowMultipleInstancesOfSameDraggableOptionComponent, studentViewSettingsLabelComponent, additionalSettingsPanel, draggableOptionContainer, draggableOptionsSectionComponent, maximumCapacityPerDropzoneComponent, enableOuterBorderComponent } from "./components";
1
+ import { optionsWrapperComponent, createQuestionBasePage, autoScoredSpecifyCorrectAnswerSection, scoringSectionBaseEditTab, autoScoredScoringSectionMultiResponseType, questionInstructionsComponent, autoScoredStudentViewSettings, autoScoredScoringPreviewTab, commonComponents, ckEditorToolbar, equationEditorFlyout, randomizeOptionsComponent, allowMultipleInstancesOfSameDraggableOptionComponent, studentViewSettingsLabelComponent, additionalSettingsPanel, draggableOptionContainer, draggableOptionsSectionComponent, maximumCapacityPerDropzoneComponent, enableOuterBorderComponent, additionalSettingsAccessibilitySectionComponent } from "./components";
2
2
  import utilities from "../support/helpers/utilities";
3
3
  import constants from "../fixtures/constants";
4
4
  const css = Cypress.env('css');
@@ -19,6 +19,7 @@ const selectors = {
19
19
  ...optionsWrapperComponent,
20
20
  ...draggableOptionsSectionComponent,
21
21
  ...enableOuterBorderComponent,
22
+ ...additionalSettingsPanel,
22
23
  editCellPropertyButton: () => cy.get('button[aria-label="More Action"]'),
23
24
  editCellPropertyList: () => cy.get('.ngie-action-cell-container [role="menu"]'),
24
25
  editCellPropertyListOption: () => cy.get('[class*="MuiMenuItem"][role="menuitem"]'),
@@ -696,22 +697,6 @@ const steps = {
696
697
  });
697
698
  },
698
699
 
699
- /**
700
- * @description Verifies that the equation text in the Preview tab is correct.
701
- * @param {number} optionIndex - The index of the option in the Preview tab.
702
- */
703
- verifyDraggableOptionWithEquationTextInPreviewTab: (optionIndex) => {
704
- dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
705
- .within(() => {
706
- dragAndDropIntoCategoriesPage.draggableOption()
707
- .eq(optionIndex)
708
- .find('[role="math"]')
709
- .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
710
- .contains(constants.CKEditorInputFieldEnteredEquationText);
711
- utilities.verifyElementVisibilityState(utilities.getNthElement(draggableOptionContainer.draggableOptionDragIcon(), optionIndex), 'exist');
712
- });
713
- },
714
-
715
700
  verifyDraggableOptionPreviewTab: (optionIndex, optionText) => {
716
701
  dragAndDropIntoCategoriesPage.optionsContainerPreviewTab()
717
702
  .within(() => {
@@ -1420,6 +1405,8 @@ const tests = {
1420
1405
  ...autoScoredScoringSectionMultiResponseType.tests,
1421
1406
  ...enableOuterBorderComponent.tests,
1422
1407
  ...createQuestionBasePage.tests,
1408
+ ...additionalSettingsPanel.tests,
1409
+ ...additionalSettingsAccessibilitySectionComponent.tests,
1423
1410
  verifyContentsOfSpecifyCorrectAnswerSection: (scoringType) => {
1424
1411
  it(`When the user selects ${scoringType} from scoring type dropdown then the specify correct answer sections should be displayed`, () => {
1425
1412
  dragAndDropIntoCategoriesPage.steps.verifyTableCellPropertySpecifyCorrectAnswer(0, 'None');
@@ -1,5 +1,5 @@
1
1
  import { equationEditorCategoriesAndSymbols } from "../fixtures/equationEditorCategoriesAndSymbols ";
2
- import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, additionalSettingsPanel, autoScoredScoringPreviewTab, commonComponents, createCustomCategoryFlyout, customizeSpecialCharacterComponent } from "./components";
2
+ import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, additionalSettingsPanel, autoScoredScoringPreviewTab, commonComponents, createCustomCategoryFlyout, customizeSpecialCharacterComponent, additionalSettingsAccessibilitySectionComponent } from "./components";
3
3
  import { equationEditorFlyout } from "./components/equationEditorFlyout";
4
4
  import { dialogBoxBase } from "../pages/dialogBoxBase";
5
5
  import { essayResponseCommonComponents } from "./components/essayResponseCommonComponents";
@@ -50,7 +50,7 @@ const selectors = {
50
50
  equationEditorSectionHelperText: () => cy.get('.equation-editor-description-text'),
51
51
  equationEditorSectionCategoriesDragIcon: () => cy.get('.drag-icon-equation-editor-button'),
52
52
  equationEditorSectionCategoriesEditIcon: () => cy.get('.edit-icon-button button'),
53
- equationEditorSectionTickIcon: () => cy.get('[class*="DraggableItemsGrid"] .tick-icon-wrapper'),
53
+ equationEditorSectionTickIcon: () => cy.get('.tick-icon-wrapper'),
54
54
  selectACategoryErrorMessage: () => cy.get('[class*="ErrorBlock"]'),
55
55
  equationEditorSectionCategoryIcon: () => cy.get('.equation-editor-icon'),
56
56
  equationEditorSectionDeleteCustomCategoryIcon: () => cy.get('.delete-button-icon button'),
@@ -229,8 +229,8 @@ const steps = {
229
229
  createCustomCategoryWithMultipleCategoryCharacters: () => {
230
230
  cy.log('Creating a custom category by selecting \'Keypad\' category, partially selecting \'Basic\' and \'Greek\' categories')
231
231
  createCustomCategoryFlyout.steps.openCreateCustomCategoryFlyout();
232
- createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['keypad'].displayName}`);
233
- createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['basic'].displayName}`);
232
+ createCustomCategoryFlyout.steps.checkCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['numPad'].displayName}`);
233
+ createCustomCategoryFlyout.steps.verifyPartiallyCheckedStateOfCategoryAccordionCheckbox(`${equationEditorCategoriesAndSymbols['matrices'].displayName}`);
234
234
  createCustomCategoryFlyout.steps.expandCategoryAccordion(`${equationEditorCategoriesAndSymbols['greek'].displayName}`);
235
235
  createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.gamma.ariaLabel}`);
236
236
  createCustomCategoryFlyout.steps.selectASymbolInCreateCustomCategoryFlyout(`${equationEditorCategoriesAndSymbols['greek'].displayName}`, `${equationEditorCategoriesAndSymbols.greek.symbols.delta.ariaLabel}`);
@@ -248,8 +248,8 @@ const steps = {
248
248
  .contains(`${customCategoryName}`)
249
249
  .parents('[id*="DraggableItem"]')
250
250
  .within(() => {
251
- utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionCategoriesEditIcon, ('visible'));
252
- utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionDeleteCustomCategoryIcon, ('visible'));
251
+ utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionCategoriesEditIcon(), 'visible');
252
+ utilities.verifyElementVisibilityState(essayResponsePage.equationEditorSectionDeleteCustomCategoryIcon(), 'visible');
253
253
  });
254
254
  },
255
255
 
@@ -957,6 +957,7 @@ const tests = {
957
957
  ...commonComponents.tests,
958
958
  ...customizeSpecialCharacterComponent.tests,
959
959
  ...essayResponseCommonComponents.tests,
960
+ ...additionalSettingsAccessibilitySectionComponent.tests,
960
961
 
961
962
  /**
962
963
  * insert equation and verify input field content and word count
@@ -967,7 +968,7 @@ const tests = {
967
968
  it(`On clicking the Ok button the symbols/equation entered should be displayed in the preview tab input field and the Word count should increase to ${wordCount}`, () => {
968
969
  equationEditorFlyout.steps.clickOnOkButton()
969
970
  utilities.verifyTextContent(essayResponsePage.responseField().find('.ngie_latex'), `${expectedOutput}`);
970
- essayResponsePage.steps.verifyResponseFieldWordCount(wordCount);
971
+ essayResponsePage.steps.verifyWordCount(wordCount);
971
972
  });
972
973
  },
973
974
 
@@ -984,12 +985,14 @@ const tests = {
984
985
  .click();
985
986
  }
986
987
  });
987
- //The equation editor input Field equation is not checked.
988
988
  });
989
989
  equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField(categoryName);
990
- if (categoryName === 'keypad') {
991
- essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount(`1234567890·,+−×÷`, wordCount);
992
- } else {
990
+ if (categoryName === 'setNotation') {
991
+ essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('∈∉∋∌⊂⊃⊆⊇⊄⊅∅∪∩!,:\\/≺≻≼≽({[(])})', wordCount);
992
+ } else if (categoryName === 'otherSymbols') {
993
+ essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount(')ℝ|∝•ababc∀ι∞°/', wordCount);
994
+ }
995
+ else {
993
996
  essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount(mappedArr.toString().replaceAll(',', ''), wordCount)
994
997
  }
995
998
  }
@@ -227,6 +227,21 @@ const steps = {
227
227
  utilities.verifyElementDisabled(fillInTheGapsDragAndDropPage.dropzonePreviewTab().eq(dropzoneIndex));
228
228
  },
229
229
 
230
+ verifyDropzoneIsNotEditableInGradingView: () => {
231
+ utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), 0)
232
+ .click();
233
+ utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), 1)
234
+ .click();
235
+ utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), 1)
236
+ .click();
237
+ utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), 2)
238
+ .click();
239
+ fillInTheGapsDragAndDropPage.steps.verifyDropzoneTextPreviewTab(2, '3\nPetals');
240
+ fillInTheGapsDragAndDropPage.steps.verifyDropzoneWithImageInPreviewTab(2);
241
+ fillInTheGapsDragAndDropPage.steps.verifyDropzoneTextPreviewTab(0, '1\nThis is a bold option');
242
+ fillInTheGapsDragAndDropPage.steps.verifyDropzoneWithEquationTextInPreviewTab(1);
243
+ },
244
+
230
245
  /**
231
246
  * @description Verifies the text content of a specific preview tab dropzone element.
232
247
  * @param {number} count - The index of the preview tab dropzone element to verify (zero-based).
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { autoScoredScoringPreviewTab, createQuestionBasePage, scoringSectionBaseEditTab, questionInstructionsComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, fillInTheGapsDropdownCommonComponent, questionInputFieldComponent, commonComponents, additionalSettingsPanel, optionsWrapperComponent, randomizeOptionsComponent, studentViewSettingsLabelComponent } from "./components";
2
+ import { autoScoredScoringPreviewTab, createQuestionBasePage, scoringSectionBaseEditTab, questionInstructionsComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, fillInTheGapsDropdownCommonComponent, questionInputFieldComponent, commonComponents, additionalSettingsPanel, optionsWrapperComponent, randomizeOptionsComponent, studentViewSettingsLabelComponent, responseAreaSettingsPopupComponent, gradingViewEnumerationComponent, additionalSettingsAccessibilitySectionComponent, ariaLabelSectionComponent, placeholderTextSectionComponent } from "./components";
3
3
  const css = Cypress.env('css');
4
4
 
5
5
  const selectors = {
@@ -14,10 +14,20 @@ const selectors = {
14
14
  ...autoScoredSpecifyCorrectAnswerSection,
15
15
  ...randomizeOptionsComponent,
16
16
  ...studentViewSettingsLabelComponent,
17
+ ...responseAreaSettingsPopupComponent,
18
+ ...additionalSettingsPanel,
19
+ ...placeholderTextSectionComponent,
20
+ ...gradingViewEnumerationComponent,
21
+ ...ariaLabelSectionComponent,
22
+ ...additionalSettingsAccessibilitySectionComponent,
17
23
  dropdownWrapperPreviewTab: () => cy.get('.cloze-with-text-answer-status-response-preview-wrapper'),
18
24
  correctAnswerSectionWrapper: () => cy.get('.cloze-with-text-correct-answer-wrapper'),
19
25
  correctAnswerResponseWrapper: () => cy.get('.answer-block'),
20
26
  correctAnswerResponse: () => cy.get('.numeration-wrapper'),
27
+ setForAllDropdownsLabel: () => cy.get('[data-ngie-testid="set-for-all-dropdowns-checkbox"] .MuiFormControlLabel-label'),
28
+ setForAllDropdownsCheckbox: () => cy.get('[data-ngie-testid="set-for-all-dropdowns-checkbox"] input'),
29
+ correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.cloze-with-text-correct-answer-wrapper .preview-question-text-wrapper'),
30
+ correctAnswersLabel: () => cy.get('.cloze-with-text-correct-answer-label')
21
31
  }
22
32
 
23
33
  const steps = {
@@ -35,6 +45,12 @@ const steps = {
35
45
  ...additionalSettingsPanel.steps,
36
46
  ...optionsWrapperComponent.steps,
37
47
  ...randomizeOptionsComponent.steps,
48
+ ...responseAreaSettingsPopupComponent.steps,
49
+ ...additionalSettingsPanel.steps,
50
+ ...placeholderTextSectionComponent.steps,
51
+ ...gradingViewEnumerationComponent.steps,
52
+ ...ariaLabelSectionComponent.steps,
53
+ ...additionalSettingsAccessibilitySectionComponent.steps,
38
54
  /**
39
55
  * Verify that the correct option icon is is displayed for a specific dropdown.
40
56
  * @param {number} dropdownIndex - The index of the dropdown.
@@ -99,6 +115,104 @@ const steps = {
99
115
  verifyCorrectAnswerSectionNotExists: () => {
100
116
  utilities.verifyElementVisibilityState(fillInTheGapsDropdownPage.correctAnswerSectionWrapper(), 'notExist');
101
117
  },
118
+
119
+ verifySetForAllDropdownsCheckboxChecked: () => {
120
+ fillInTheGapsDropdownPage.setForAllDropdownsCheckbox()
121
+ .should('be.checked');
122
+ },
123
+
124
+ verifySetForAllDropdownsCheckboxUnchecked: () => {
125
+ fillInTheGapsDropdownPage.setForAllDropdownsCheckbox()
126
+ .should('not.be.checked');
127
+ },
128
+
129
+ checkSetForAllDropdownsCheckbox: () => {
130
+ fillInTheGapsDropdownPage.setForAllDropdownsCheckbox()
131
+ .click()
132
+ .should('be.checked');
133
+ },
134
+
135
+ uncheckSetForAllDropdownsCheckbox: () => {
136
+ fillInTheGapsDropdownPage.setForAllDropdownsCheckbox()
137
+ .click()
138
+ .should('not.be.checked');
139
+ },
140
+
141
+ verifyMinimumValueOfWidthInputField: () => {
142
+ responseAreaSettingsPopupComponent.responseAreaSettingsWidthInputField()
143
+ .parent()
144
+ .should('have.attr', 'minallowed', '120');
145
+ },
146
+
147
+ /**
148
+ * @description Verify width of dropdown in preview tab
149
+ * @param {number} dropdownIndex index of dropdown
150
+ * @param {string} width Width of dropdown in px
151
+ */
152
+ verifyDropdownWidthPreviewTab: (dropdownIndex, width) => {
153
+ utilities.getNthElement(fillInTheGapsDropdownCommonComponent.dropdownWrapperPreviewTab(), dropdownIndex)
154
+ .should('have.css', 'width', width);
155
+ },
156
+
157
+ /**
158
+ * @description Verify width of dropdown in specify correct answer section
159
+ * @param {number} dropdownIndex index of dropdown
160
+ * @param {string} width Width of dropdown in px
161
+ */
162
+ verifyDropdownWidthSpecifyCorrectAnswerSection: (dropdownIndex, width) => {
163
+ utilities.getNthElement(fillInTheGapsDropdownCommonComponent.dropdownWrapperSpecifyCorrectAnswerSection(), dropdownIndex)
164
+ .should('have.css', 'width', width);
165
+ },
166
+
167
+ /**
168
+ * Verifies the correct answer dropdown enumeration.
169
+ * @param {string[]} enumerationArray - An array of enumeration values to verify.
170
+ * @returns {void}
171
+ */
172
+ verifyCorrectAnswerDropdownEnumeration: (enumerationArray) => {
173
+ utilities.verifyElementCount(fillInTheGapsDropdownPage.correctAnswerResponseWrapper(), enumerationArray.length);
174
+ enumerationArray.forEach((option, index) => {
175
+ fillInTheGapsDropdownPage.correctAnswerResponseWrapper()
176
+ .eq(index)
177
+ .within(() => {
178
+ utilities.verifyInnerText(fillInTheGapsDropdownPage.correctAnswerResponseNumeration(), `${option}`);
179
+ });
180
+ });
181
+ },
182
+
183
+ /**
184
+ * Verifies the correct answer responses without enumeration.
185
+ * @param {string[]} correctAnswerArray - An array of correct answer responses to verify.
186
+ * @returns {void}
187
+ */
188
+ verifyCorrectAnswerResponsesWithoutEnumeration: (correctAnswerArray) => {
189
+ fillInTheGapsDropdownPage.correctAnswerSectionWithoutEnumerationWrapper()
190
+ .within(() => {
191
+ utilities.verifyElementCount(fillInTheGapsDropdownCommonComponent.correctAnswerResponseWrapperWithoutEnumeration(), correctAnswerArray.length);
192
+ correctAnswerArray.forEach((correctAnswer, index) => {
193
+ fillInTheGapsDropdownCommonComponent.correctAnswerResponseWrapperWithoutEnumeration()
194
+ .eq(index)
195
+ .should('have.attr', 'value', correctAnswer);
196
+ });
197
+ });
198
+ },
199
+
200
+ /**
201
+ * Verifies the dropdown enumeration in the preview tab.
202
+ * @param {string[]} enumerationArray - An array of enumeration values to verify.
203
+ * @returns {void}
204
+ */
205
+ verifyDropdownEnumeration: (enumerationArray) => {
206
+ utilities.verifyElementCount(fillInTheGapsDropdownCommonComponent.dropdownPreviewTab(), enumerationArray.length);
207
+ enumerationArray.forEach((option, index) => {
208
+ fillInTheGapsDropdownCommonComponent.dropdownWrapperPreviewTab()
209
+ .eq(index)
210
+ .parents('.cloze-with-dropdown-response-wrapper')
211
+ .within(() => {
212
+ utilities.verifyTextContent(fillInTheGapsDropdownCommonComponent.dropdownNumerationPreviewTab(), `${option}`);
213
+ });
214
+ });
215
+ },
102
216
  }
103
217
 
104
218
  const tests = {
@@ -115,7 +229,12 @@ const tests = {
115
229
  ...autoScoredStudentViewSettings.tests,
116
230
  ...randomizeOptionsComponent.tests,
117
231
  ...studentViewSettingsLabelComponent.tests,
118
- ...createQuestionBasePage.tests
232
+ ...createQuestionBasePage.tests,
233
+ ...additionalSettingsPanel.tests,
234
+ ...gradingViewEnumerationComponent.tests,
235
+ ...additionalSettingsAccessibilitySectionComponent.tests,
236
+ ...ariaLabelSectionComponent.tests,
237
+ ...placeholderTextSectionComponent.tests
119
238
  }
120
239
 
121
240
  export const fillInTheGapsDropdownPage = {
@@ -1,6 +1,6 @@
1
1
  import constants from "../fixtures/constants";
2
2
  import utilities from "../support/helpers/utilities";
3
- import { createQuestionBasePage, questionInstructionsComponent, uploadImageSectionComponent, scoringSectionBaseEditTab, optionsWrapperComponent, equationEditorFlyout, ckEditorToolbar, commonComponents, autoScoredScoringPreviewTab, autoScoredStudentViewSettings, maximumCapacityPerDropzoneComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, imageCanvasComponent, backgroundImageUploadComponent, correctIncorrectAnswerLabelComponent, draggableOptionsSectionComponent, draggableOptionContainer, studentViewSettingsLabelComponent, randomizeOptionsComponent, enableOuterBorderComponent, allowMultipleInstancesOfSameDraggableOptionComponent, additionalSettingsPanel, opacityComponent, imageActionsComponent, colorPopupComponent, fillInTheGapsDragAndDropCommonComponents } from "./components";
3
+ import { createQuestionBasePage, questionInstructionsComponent, uploadImageSectionComponent, scoringSectionBaseEditTab, optionsWrapperComponent, equationEditorFlyout, ckEditorToolbar, commonComponents, autoScoredScoringPreviewTab, autoScoredStudentViewSettings, maximumCapacityPerDropzoneComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, imageCanvasComponent, backgroundImageUploadComponent, correctIncorrectAnswerLabelComponent, draggableOptionsSectionComponent, draggableOptionContainer, studentViewSettingsLabelComponent, randomizeOptionsComponent, enableOuterBorderComponent, allowMultipleInstancesOfSameDraggableOptionComponent, additionalSettingsPanel, opacityComponent, imageActionsComponent, colorPopupComponent, fillInTheGapsDragAndDropCommonComponents, additionalSettingsAccessibilitySectionComponent } from "./components";
4
4
  import { dialogBoxBase } from "./dialogBoxBase";
5
5
  const css = Cypress.env('css');
6
6
 
@@ -30,6 +30,7 @@ const selectors = {
30
30
  ...imageActionsComponent,
31
31
  ...colorPopupComponent,
32
32
  ...fillInTheGapsDragAndDropCommonComponents,
33
+ ...additionalSettingsPanel,
33
34
  dropzonePreviewTab: () => cy.get('.drag-and-drop-canvas [class*="__DraggableWrapper"]'),
34
35
  dropzoneContainerPreviewTab: () => cy.get('[class*="Canvasstyle__DropzoneWrapper"]'),
35
36
  optionContainerOptionsPreviewTab: () => cy.get('.item-list .draggable-options-item:visible'),
@@ -556,6 +557,7 @@ const tests = {
556
557
  ...opacityComponent.tests,
557
558
  ...backgroundImageUploadComponent.tests,
558
559
  ...imageCanvasComponent.tests,
560
+ ...additionalSettingsAccessibilitySectionComponent.tests,
559
561
 
560
562
  verifyContentsOfSpecifyCorrectAnswerSection: () => {
561
563
  it('When user selects a scoring type then in the \'Correct\' accordion, all the contents should be displayed', () => {
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { imageCanvasComponent, autoScoredScoringPreviewTab, createQuestionBasePage, backgroundImageUploadComponent, scoringSectionBaseEditTab, questionInstructionsComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, fillInTheGapsDropdownCommonComponent, randomizeOptionsComponent, optionsWrapperComponent, studentViewSettingsLabelComponent, additionalSettingsPanel } from "./components";
2
+ import { imageCanvasComponent, autoScoredScoringPreviewTab, createQuestionBasePage, backgroundImageUploadComponent, scoringSectionBaseEditTab, questionInstructionsComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, fillInTheGapsDropdownCommonComponent, randomizeOptionsComponent, optionsWrapperComponent, studentViewSettingsLabelComponent, additionalSettingsPanel, placeholderTextSectionComponent, gradingViewEnumerationComponent, ariaLabelSectionComponent, commonComponents, additionalSettingsAccessibilitySectionComponent } from "./components";
3
3
  const css = Cypress.env('css');
4
4
 
5
5
  const optionsForDropdown = ['Flower', 'Petal', 'Stem', 'Branch'];
@@ -14,10 +14,16 @@ const selectors = {
14
14
  ...randomizeOptionsComponent,
15
15
  ...backgroundImageUploadComponent,
16
16
  ...autoScoredScoringSectionMultiResponseType,
17
- dropdownWrapperPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="Canvasstyle__DropzoneWrapper"]'),
17
+ ...placeholderTextSectionComponent,
18
+ ...gradingViewEnumerationComponent,
19
+ ...ariaLabelSectionComponent,
20
+ ...commonComponents,
21
+ ...additionalSettingsPanel,
22
+ dropdownWrapperPreviewTab: () => cy.get('[class*="Canvasstyle__DropzoneWrapper"]'),
18
23
  correctAnswerResponseWrapper: () => cy.get('[class*="LabelImageWithDropdownPreviewstyles__AnswerCell"]'),
19
24
  correctAnswerResponse: () => cy.get('[class*="LabelImageWithDropdownPreviewstyles__AnswerWrapper"]'),
20
25
  correctAnswerSectionWrapper: () => cy.get('.dnd-correct-answer-wrapper'),
26
+ correctAnswersLabel: () => cy.get('[class*="question-preview-wrapper"] [class*="correct-answers-label"]'),
21
27
  }
22
28
 
23
29
  const steps = {
@@ -35,6 +41,10 @@ const steps = {
35
41
  ...additionalSettingsPanel.steps,
36
42
  ...optionsWrapperComponent.steps,
37
43
  ...randomizeOptionsComponent.steps,
44
+ ...gradingViewEnumerationComponent.steps,
45
+ ...placeholderTextSectionComponent.steps,
46
+ ...ariaLabelSectionComponent.steps,
47
+ ...commonComponents.steps,
38
48
  /**
39
49
  * Verify that the correct option icon is is displayed for a specific dropdown.
40
50
  * @param {number} dropdownIndex - The index of the dropdown.
@@ -178,6 +188,57 @@ const steps = {
178
188
  verifyCorrectAnswerSectionNotExists: () => {
179
189
  utilities.verifyElementVisibilityState(fillInTheGapsOverImageDropdownPage.correctAnswerSectionWrapper(), 'notExist');
180
190
  },
191
+
192
+ /**
193
+ * Verifies the correct answer responses without enumeration.
194
+ * @param {string[]} correctAnswerArray - An array of correct answer responses to verify.
195
+ * @returns {void}
196
+ */
197
+ verifyCorrectAnswerResponsesWithoutEnumeration: (correctAnswerArray) => {
198
+ fillInTheGapsOverImageDropdownPage.correctAnswerSectionWrapper()
199
+ .within(() => {
200
+ utilities.verifyElementCount(fillInTheGapsDropdownCommonComponent.correctAnswerResponseWrapperWithoutEnumeration(), correctAnswerArray.length);
201
+ correctAnswerArray.forEach((correctAnswer, index) => {
202
+ fillInTheGapsDropdownCommonComponent.correctAnswerResponseWrapperWithoutEnumeration()
203
+ .eq(index)
204
+ .should('have.attr', 'value', correctAnswer);
205
+ fillInTheGapsOverImageDropdownPage.steps.verifyCorrectOptionIcon(index)
206
+ });
207
+ });
208
+ },
209
+
210
+ /**
211
+ * Verifies the correct answer dropdown enumeration.
212
+ * @param {string[]} enumerationArray - An array of enumeration values to verify.
213
+ * @returns {void}
214
+ */
215
+ verifyCorrectAnswerDropdownEnumeration: (enumerationArray) => {
216
+ utilities.verifyElementCount(fillInTheGapsOverImageDropdownPage.correctAnswerResponseWrapper(), enumerationArray.length);
217
+ enumerationArray.forEach((option, index) => {
218
+ fillInTheGapsOverImageDropdownPage.correctAnswerResponseWrapper()
219
+ .eq(index)
220
+ .within(() => {
221
+ utilities.verifyInnerText(fillInTheGapsOverImageDropdownPage.correctAnswerResponseNumeration(), `${option}`);
222
+ });
223
+ });
224
+ },
225
+
226
+ /**
227
+ * Verifies the dropdown enumeration in the preview tab.
228
+ * @param {string[]} enumerationArray - An array of enumeration values to verify.
229
+ * @returns {void}
230
+ */
231
+ verifyDropdownEnumeration: (enumerationArray) => {
232
+ utilities.verifyElementCount(fillInTheGapsDropdownCommonComponent.dropdownPreviewTab(), enumerationArray.length);
233
+ enumerationArray.forEach((option, index) => {
234
+ fillInTheGapsDropdownCommonComponent.dropdownWrapperPreviewTab()
235
+ .eq(index)
236
+ .parents('[class*="DropzoneWrapper"]')
237
+ .within(() => {
238
+ utilities.verifyTextContent(fillInTheGapsDropdownCommonComponent.dropdownNumerationPreviewTab(), `${option}`);
239
+ });
240
+ });
241
+ },
181
242
  }
182
243
 
183
244
  const tests = {
@@ -193,7 +254,13 @@ const tests = {
193
254
  ...imageCanvasComponent.tests,
194
255
  ...studentViewSettingsLabelComponent.tests,
195
256
  ...createQuestionBasePage.tests,
196
- ...fillInTheGapsDropdownCommonComponent.tests
257
+ ...fillInTheGapsDropdownCommonComponent.tests,
258
+ ...placeholderTextSectionComponent.tests,
259
+ ...gradingViewEnumerationComponent.tests,
260
+ ...ariaLabelSectionComponent.tests,
261
+ ...commonComponents.tests,
262
+ ...additionalSettingsPanel.tests,
263
+ ...additionalSettingsAccessibilitySectionComponent.tests
197
264
  }
198
265
 
199
266
  export const fillInTheGapsOverImageDropdownPage = {
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, commonComponents, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, backgroundImageUploadComponent, optionsWrapperComponent, imageCanvasComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, acceptedStudentInputComponent, customizeSpecialCharacterComponent, fillInTheGapsTextCommonComponent, additionalSettingsPanel } from "./components";
2
+ import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, commonComponents, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, backgroundImageUploadComponent, optionsWrapperComponent, imageCanvasComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, acceptedStudentInputComponent, customizeSpecialCharacterComponent, fillInTheGapsTextCommonComponent, additionalSettingsPanel, gradingViewEnumerationComponent, additionalSettingsAccessibilitySectionComponent, ariaLabelSectionComponent, placeholderTextSectionComponent } from "./components";
3
3
  import { dialogBoxBase } from "./dialogBoxBase";
4
4
  const css = Cypress.env('css');
5
5
 
@@ -16,7 +16,10 @@ const selectors = {
16
16
  ...backgroundImageUploadComponent,
17
17
  ...fillInTheGapsTextCommonComponent,
18
18
  ...additionalSettingsPanel,
19
-
19
+ ...gradingViewEnumerationComponent,
20
+ ...additionalSettingsAccessibilitySectionComponent,
21
+ ...ariaLabelSectionComponent,
22
+ ...placeholderTextSectionComponent,
20
23
  //TODO: Update below selectors after https://redmine.zeuslearning.com/issues/557945 is resolved
21
24
 
22
25
  responseContainerInPreviewTab: () => cy.get('[class*="AddTextResponseOnImagestyles__DraggableInput"]'),
@@ -25,6 +28,7 @@ const selectors = {
25
28
  limitReachedWarningMessageContainer: () => cy.get('.disabled-wrapper-cls'),
26
29
  correctAnswerResponseWrapper: () => cy.get('.label-image-with-text-correct-response-wrapper [class*="ClozeWithTextResponsestyles__AnswerCell"]'),
27
30
  tickIconWrapper: () => cy.get('.tick-icon-wrapper [data-name*="Rectangle"]'),
31
+ correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.label-image-with-text-correct-answer-wrapper')
28
32
  }
29
33
 
30
34
  const steps = {
@@ -45,6 +49,10 @@ const steps = {
45
49
  ...autoScoredStudentViewSettings.steps,
46
50
  ...fillInTheGapsTextCommonComponent.steps,
47
51
  ...additionalSettingsPanel.steps,
52
+ ...gradingViewEnumerationComponent.steps,
53
+ ...additionalSettingsAccessibilitySectionComponent.steps,
54
+ ...ariaLabelSectionComponent.steps,
55
+ ...placeholderTextSectionComponent.steps,
48
56
  /**
49
57
  * Verify that the incorrect option icon is displayed for a specific answer input field.
50
58
  * @param {number} inputFieldIndex - The index of the answer input field to verify.
@@ -238,6 +246,24 @@ const steps = {
238
246
  fillInTheGapsOverImageTextPage.canvasInPreviewTab()
239
247
  .should('have.css', 'height', `${height}px`);
240
248
  },
249
+
250
+ /**
251
+ * Verifies the correct answer responses without enumeration.
252
+ * @param {string[]} correctAnswerArray - An array of correct answer responses to verify.
253
+ * @returns {void}
254
+ */
255
+ verifyCorrectAnswerResponsesWithoutEnumeration: (correctAnswerArray) => {
256
+ fillInTheGapsOverImageTextPage.correctAnswerSectionWithoutEnumerationWrapper()
257
+ .within(() => {
258
+ utilities.verifyElementCount(fillInTheGapsTextCommonComponent.correctAnswerResponseWrapperWithoutEnumeration(), correctAnswerArray.length);
259
+ correctAnswerArray.forEach((correctAnswer, index) => {
260
+ fillInTheGapsTextCommonComponent.correctAnswerResponseWrapperWithoutEnumeration()
261
+ .eq(index)
262
+ .should('have.attr', 'value', correctAnswer);
263
+ fillInTheGapsOverImageTextPage.steps.verifyCorrectOptionIcon(index)
264
+ });
265
+ });
266
+ },
241
267
  }
242
268
 
243
269
  const tests = {
@@ -253,7 +279,11 @@ const tests = {
253
279
  ...questionInstructionsComponent.tests,
254
280
  ...fillInTheGapsTextCommonComponent.tests,
255
281
  ...customizeSpecialCharacterComponent.tests,
256
- ...additionalSettingsPanel.tests
282
+ ...additionalSettingsPanel.tests,
283
+ ...gradingViewEnumerationComponent.tests,
284
+ ...additionalSettingsAccessibilitySectionComponent.tests,
285
+ ...ariaLabelSectionComponent.tests,
286
+ ...placeholderTextSectionComponent.tests
257
287
  }
258
288
 
259
289
  export const fillInTheGapsOverImageTextPage = {
@@ -1,6 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, commonComponents, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, acceptedStudentInputComponent, customizeSpecialCharacterComponent, fillInTheGapsTextCommonComponent, questionInputFieldComponent, additionalSettingsPanel } from "./components";
3
- const css = Cypress.env('css');
2
+ import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, commonComponents, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, acceptedStudentInputComponent, customizeSpecialCharacterComponent, fillInTheGapsTextCommonComponent, questionInputFieldComponent, additionalSettingsPanel, responseAreaSettingsPopupComponent, gradingViewEnumerationComponent, additionalSettingsAccessibilitySectionComponent, ariaLabelSectionComponent, placeholderTextSectionComponent } from "./components";
4
3
 
5
4
  const selectors = {
6
5
  ...questionInstructionsComponent,
@@ -13,6 +12,15 @@ const selectors = {
13
12
  ...autoScoredScoringPreviewTab,
14
13
  ...fillInTheGapsTextCommonComponent,
15
14
  ...questionInputFieldComponent,
15
+ ...responseAreaSettingsPopupComponent,
16
+ ...additionalSettingsPanel,
17
+ ...gradingViewEnumerationComponent,
18
+ ...additionalSettingsAccessibilitySectionComponent,
19
+ ...ariaLabelSectionComponent,
20
+ ...placeholderTextSectionComponent,
21
+ setForAllTextContainersLabel: () => cy.get('[data-ngie-testid="set-for-all-text-containers-checkbox"] .MuiFormControlLabel-label'),
22
+ setForAllTextContainersCheckbox: () => cy.get('[data-ngie-testid="set-for-all-text-containers-checkbox"] input'),
23
+ correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.no-numeration-correct-answers-wrapper .preview-question-text-wrapper')
16
24
  }
17
25
 
18
26
  const steps = {
@@ -30,8 +38,13 @@ const steps = {
30
38
  ...autoScoredStudentViewSettings.steps,
31
39
  ...fillInTheGapsTextCommonComponent.steps,
32
40
  ...questionInputFieldComponent.steps,
33
- ...additionalSettingsPanel.steps,
34
41
  ...customizeSpecialCharacterComponent.steps,
42
+ ...responseAreaSettingsPopupComponent.steps,
43
+ ...additionalSettingsPanel.steps,
44
+ ...gradingViewEnumerationComponent.steps,
45
+ ...additionalSettingsAccessibilitySectionComponent.steps,
46
+ ...ariaLabelSectionComponent.steps,
47
+ ...placeholderTextSectionComponent.steps,
35
48
  /**
36
49
  * Verify that the incorrect option icon is displayed for a specific answer input field.
37
50
  * @param {number} inputFieldIndex - The index of the answer input field to verify.
@@ -64,6 +77,65 @@ const steps = {
64
77
  utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'notExist');
65
78
  utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'notExist');
66
79
  });
80
+ },
81
+
82
+ verifySetForAllTextContainersCheckboxChecked: () => {
83
+ fillInTheGapsTextPage.setForAllTextContainersCheckbox()
84
+ .should('be.checked');
85
+ },
86
+
87
+ verifySetForAllTextContainersCheckboxUnchecked: () => {
88
+ fillInTheGapsTextPage.setForAllTextContainersCheckbox()
89
+ .should('not.be.checked');
90
+ },
91
+
92
+ checkSetForAllTextContainersCheckbox: () => {
93
+ fillInTheGapsTextPage.setForAllTextContainersCheckbox()
94
+ .click()
95
+ .should('be.checked');
96
+ },
97
+
98
+ uncheckSetForAllTextContainersCheckbox: () => {
99
+ fillInTheGapsTextPage.setForAllTextContainersCheckbox()
100
+ .click()
101
+ .should('not.be.checked');
102
+ },
103
+
104
+ /**
105
+ * @description Verify width of answer input field in preview tab
106
+ * @param {number} answerInputFieldIndex index of answer input field
107
+ * @param {string} width Width of answer input field in px
108
+ */
109
+ verifyAnswerInputFieldWidthPreviewTab: (answerInputFieldIndex, width) => {
110
+ utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldWrapperPreviewTab(), answerInputFieldIndex)
111
+ .should('have.css', 'width', width);
112
+ },
113
+
114
+ /**
115
+ * @description Verify height of answer input field in preview tab
116
+ * @param {number} answerInputFieldIndex index of answer input field
117
+ * @param {string} height Height of answer input field in px
118
+ */
119
+ verifyAnswerInputFieldHeightPreviewTab: (answerInputFieldIndex, height) => {
120
+ utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldWrapperPreviewTab(), answerInputFieldIndex)
121
+ .should('have.css', 'height', height);
122
+ },
123
+
124
+ /**
125
+ * Verifies the correct answer responses without enumeration.
126
+ * @param {string[]} correctAnswerArray - An array of correct answer responses to verify.
127
+ * @returns {void}
128
+ */
129
+ verifyCorrectAnswerResponsesWithoutEnumeration: (correctAnswerArray) => {
130
+ fillInTheGapsTextPage.correctAnswerSectionWithoutEnumerationWrapper()
131
+ .within(() => {
132
+ utilities.verifyElementCount(fillInTheGapsTextCommonComponent.correctAnswerResponseWrapperWithoutEnumeration(), correctAnswerArray.length);
133
+ correctAnswerArray.forEach((correctAnswer, index) => {
134
+ fillInTheGapsTextCommonComponent.correctAnswerResponseWrapperWithoutEnumeration()
135
+ .eq(index)
136
+ .should('have.attr', 'value', correctAnswer);
137
+ });
138
+ });
67
139
  }
68
140
  }
69
141
 
@@ -78,7 +150,12 @@ const tests = {
78
150
  ...scoringSectionBaseEditTab.tests,
79
151
  ...autoScoredScoringSectionMultiResponseType.tests,
80
152
  ...autoScoredStudentViewSettings.tests,
81
- ...createQuestionBasePage.tests
153
+ ...createQuestionBasePage.tests,
154
+ ...additionalSettingsPanel.tests,
155
+ ...gradingViewEnumerationComponent.tests,
156
+ ...additionalSettingsAccessibilitySectionComponent.tests,
157
+ ...ariaLabelSectionComponent.tests,
158
+ ...placeholderTextSectionComponent.tests,
82
159
  }
83
160
 
84
161
  export const fillInTheGapsTextPage = {