itemengine-cypress-automation 1.0.249-repoUpdated26thSept-d6c4173.0 → 1.0.249

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/additionalSettingsBasic.js +1 -1
  2. package/cypress/e2e/ILC/AudioResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +2 -3
  3. package/cypress/e2e/ILC/AudioResponseNew/headerSection.js +1 -1
  4. package/cypress/e2e/ILC/AudioResponseNew/previewContentsForAllViews.smoke.js +1 -2
  5. package/cypress/e2e/ILC/BrainingCampManipulative/additionalSettings.js +1 -1
  6. package/cypress/e2e/ILC/BrainingCampManipulative/gradingViewAndCorrectAnswerViewContents.smoke.js +1 -2
  7. package/cypress/e2e/ILC/BrainingCampManipulative/headerSection.js +1 -2
  8. package/cypress/e2e/ILC/BrainingCampManipulative/previewTabContent.smoke.js +1 -1
  9. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/allOrNothingScoringForAllViews.smoke.js +1 -1
  10. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +2 -3
  11. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/previewContentsForAllViews.smoke.js +1 -1
  12. package/cypress/e2e/ILC/ChartsBar/chartFunctionalitySpecifyCorrectAnswerSection.js +2 -2
  13. package/cypress/e2e/ILC/ChartsBar/gradingViewAndCorrectAnswerView.smoke.js +3 -4
  14. package/cypress/e2e/ILC/ChartsBar/headerSection.js +2 -2
  15. package/cypress/e2e/ILC/ChartsBar/previewContentsForAllViews.smoke.js +1 -1
  16. package/cypress/e2e/ILC/ChartsBar/selectChartTypeSection.js +8 -8
  17. package/cypress/e2e/ILC/ChartsBar/studentViewSettings.js +0 -1
  18. package/cypress/e2e/ILC/ChartsLine/allOrNothingScoringForAllViews.smoke.js +1 -1
  19. package/cypress/e2e/ILC/ChartsLine/chartFunctionalitySpecifyCorrectAnswerSection.js +2 -2
  20. package/cypress/e2e/ILC/ChartsLine/gradingViewAndCorrectAnswerView.smoke.js +2 -3
  21. package/cypress/e2e/ILC/ChartsLine/previewContentsForAllViews.smoke.js +1 -1
  22. package/cypress/e2e/ILC/Compass/compassPreviewContent.smoke.js +1 -1
  23. package/cypress/e2e/ILC/ContentBlocks/previewContents.smoke.js +1 -1
  24. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +1 -1
  25. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/previewContentsForAllViews.smoke.js +1 -2
  26. package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +3 -5
  27. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +2 -6
  28. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePageHeaderSection.js +1 -1
  29. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +2 -4
  30. package/cypress/e2e/ILC/EssayResponse/additionalSettings.js +4 -4
  31. package/cypress/e2e/ILC/EssayResponse/gradingViewAndCorrectAnswerViewContents.smoke.js +2 -3
  32. package/cypress/e2e/ILC/EssayResponse/previewContentsForAllViews.smoke.js +1 -1
  33. package/cypress/e2e/ILC/EssayResponseBasic/previewContentsForAllViews.smoke.js +1 -1
  34. package/cypress/e2e/ILC/FeedbackScaleNew/previewContentsForAllViews.smoke.js +1 -1
  35. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/additionalSettings.js +1 -1
  36. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +1 -1
  37. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +1 -1
  38. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/responseLevelAlternateAnswerBasicScoring.js +75 -0
  39. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownAlternateAnswerPopup.js +162 -0
  40. package/cypress/e2e/ILC/ImageHighlight/additionalSettingsBasic.js +0 -2
  41. package/cypress/e2e/ILC/ImageHighlight/imageHighlightStyle.js +1 -1
  42. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/manuallyAndNonScored.js +2 -2
  43. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialDifferentWeightsBasic.js +1 -1
  44. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -2
  45. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -1
  46. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/specifyCorrectAnswerSection.js +1 -1
  47. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +1 -1
  48. package/cypress/e2e/ILC/MatchingDropdown/editTabBasicSection.js +1 -1
  49. package/cypress/e2e/ILC/NumberLine/Scoring/manualAndNonScoredScoring.js +1 -1
  50. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +7 -7
  51. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +7 -7
  52. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +8 -8
  53. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +8 -8
  54. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +8 -8
  55. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +8 -8
  56. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -8
  57. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +8 -8
  58. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +8 -8
  59. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +9 -9
  60. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +6 -6
  61. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +4 -4
  62. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +4 -4
  63. package/cypress/e2e/ILC/TextEntryMath/customSettings.js +1373 -0
  64. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +4 -4
  65. package/cypress/e2e/ILC/TextSelection/ScoringSentence/allOrNothingAlternatePointsMoreThanCorrectPoints.js +161 -0
  66. package/cypress/e2e/ILC/TextSelection/ScoringSentence/allOrNothingCorrectPointsEqualToAlternatePoints.js +162 -0
  67. package/cypress/e2e/ILC/TextSelection/ScoringSentence/allOrNothingCorrectPointsMoreThanAlternatePoints.js +161 -0
  68. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialDifferentWeightsBasic.js +420 -0
  69. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +242 -0
  70. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +242 -0
  71. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +242 -0
  72. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialEqualWeightsBasic.js +130 -0
  73. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +224 -0
  74. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +195 -0
  75. package/cypress/e2e/ILC/TextSelection/ScoringSentence/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +224 -0
  76. package/cypress/e2e/ILC/TextSelection/ScoringWord/allOrNothingAlternatePointsMoreThanCorrectPoints.js +161 -0
  77. package/cypress/e2e/ILC/TextSelection/ScoringWord/allOrNothingCorrectPointsEqualToAlternatePoints.js +162 -0
  78. package/cypress/e2e/ILC/TextSelection/ScoringWord/allOrNothingCorrectPointsMoreThanAlternatePoints.js +161 -0
  79. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialDifferentWeightsBasic.js +420 -0
  80. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +242 -0
  81. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +242 -0
  82. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +242 -0
  83. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialEqualWeightsBasic.js +130 -0
  84. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +225 -0
  85. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +196 -0
  86. package/cypress/e2e/ILC/TextSelection/ScoringWord/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +225 -0
  87. package/cypress/e2e/ILC/chartsDotsPlot/allOrNothingForAllViews.smoke.js +1 -1
  88. package/cypress/e2e/ILC/chartsDotsPlot/gradingViewAndCorrectAnswerView.smoke.js +2 -3
  89. package/cypress/e2e/ILC/chartsDotsPlot/previewContentsForAllViews.smoke.js +2 -2
  90. package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +1 -1
  91. package/cypress/e2e/ILC/chartsDotsPlot/selectChartTypeSection.js +2 -2
  92. package/cypress/e2e/ILC/chartsDotsPlot/specifyCorrectAnswerSection.js +2 -2
  93. package/cypress/pages/audioResponsePage.js +0 -10
  94. package/cypress/pages/chartsBarPage.js +0 -13
  95. package/cypress/pages/chartsDotPlotPage.js +4 -85
  96. package/cypress/pages/chartsLinePage.js +2 -2
  97. package/cypress/pages/components/allowTeachersToDownloadStudentResponseComponent.js +1 -0
  98. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +11 -30
  99. package/cypress/pages/components/barAndLineChartComponent.js +0 -10
  100. package/cypress/pages/components/chartsCommonComponent.js +1 -25
  101. package/cypress/pages/components/colorPopupComponent.js +0 -31
  102. package/cypress/pages/components/connectorStyleStyleAndLayoutCustomizationComponent.js +0 -1
  103. package/cypress/pages/components/createQuestionBasePage.js +2 -8
  104. package/cypress/pages/components/customizeSpecialCharacterComponent.js +1 -1
  105. package/cypress/pages/components/draggableOptionContainer.js +1 -1
  106. package/cypress/pages/components/equationEditorFlyout.js +0 -36
  107. package/cypress/pages/components/essayResponseCommonComponents.js +2 -2
  108. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +2 -15
  109. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +1 -2
  110. package/cypress/pages/components/gridQuestionCommonComponent.js +26 -34
  111. package/cypress/pages/components/imageCanvasComponent.js +7 -9
  112. package/cypress/pages/components/index.js +0 -1
  113. package/cypress/pages/components/listOrderingCommonStyleAndLayoutComponent.js +0 -12
  114. package/cypress/pages/components/mcqAdditionalSettingsBase.js +0 -1
  115. package/cypress/pages/components/optionsWrapperComponent.js +3 -3
  116. package/cypress/pages/components/scoringSectionBaseEditTab.js +2 -2
  117. package/cypress/pages/contentBlocksPage.js +1 -1
  118. package/cypress/pages/createItemPage.js +7 -6
  119. package/cypress/pages/dragAndDropIntoCategoriesPage.js +0 -41
  120. package/cypress/pages/essayResponsePage.js +0 -1
  121. package/cypress/pages/feedbackScalePage.js +0 -1
  122. package/cypress/pages/fillInTheGapsDragAndDropPage.js +1 -1
  123. package/cypress/pages/fillInTheGapsDropdownPage.js +79 -0
  124. package/cypress/pages/graphingPage.js +0 -1
  125. package/cypress/pages/gridFillPage.js +45 -112
  126. package/cypress/pages/imageHighlightPage.js +0 -10
  127. package/cypress/pages/itemPreviewSettingsPage.js +1 -4
  128. package/cypress/pages/listOrderingPage.js +0 -10
  129. package/cypress/pages/matchingPage.js +5 -142
  130. package/cypress/pages/multipleSelectionPage.js +0 -13
  131. package/cypress/pages/numberLineLabelPage.js +1 -1
  132. package/cypress/pages/numberLinePage.js +1 -1
  133. package/cypress/pages/protractorPage.js +1 -3
  134. package/cypress/pages/shortTextResponsePage.js +1 -3
  135. package/cypress/pages/simpleCalculatorPage.js +2 -2
  136. package/cypress/pages/singleSelectionPage.js +0 -10
  137. package/cypress/pages/textEntryMathPage.js +1 -8
  138. package/cypress/pages/textEntryMathWithImagePage.js +16 -38
  139. package/cypress/pages/textSelectionPage.js +34 -43
  140. package/cypress/pages/videoResponsePage.js +0 -5
  141. package/package.json +1 -1
  142. package/cypress/pages/components/customizeHighlightPropertiesComponent.js +0 -318
  143. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringGeneric}/basicScoringForAllTextSelectionTypes.smoke.js +0 -0
  144. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringGeneric}/manuallyAndNonScored.js +0 -0
  145. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringGeneric}/singleSelectionPreviewScoring.js +0 -0
  146. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -0
  147. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -0
  148. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -0
  149. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialDifferentWeightsBasic.js +0 -0
  150. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +0 -0
  151. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +0 -0
  152. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +0 -0
  153. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialEqualWeightsBasic.js +0 -0
  154. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +0 -0
  155. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +0 -0
  156. /package/cypress/e2e/ILC/TextSelection/{Scoring → ScoringParagraph}/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +0 -0
@@ -327,6 +327,8 @@ const steps = {
327
327
  .should('have.class', 'cell-content-subeading');
328
328
  break;
329
329
  case 'Text':
330
+ case 'No radio button':
331
+ case 'No checkbox':
330
332
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
331
333
  .should('have.class', 'cell-content-text');
332
334
  break;
@@ -340,11 +342,6 @@ const steps = {
340
342
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
341
343
  .should('have.class', 'cell-content-radio-text');
342
344
  break;
343
- case 'No radio button':
344
- case 'No checkbox':
345
- utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
346
- .should('have.class', 'cell-content-text');
347
- break;
348
345
  default:
349
346
  throw new Error('Invalid list option');
350
347
  };
@@ -378,6 +375,8 @@ const steps = {
378
375
  .should('have.class', 'cell-content-subeading');
379
376
  break;
380
377
  case 'Text':
378
+ case 'No radio button':
379
+ case 'No checkbox':
381
380
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
382
381
  .should('have.class', 'cell-content-text');
383
382
  break;
@@ -391,11 +390,6 @@ const steps = {
391
390
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
392
391
  .should('have.class', 'cell-content-radio-text');
393
392
  break;
394
- case 'No radio button':
395
- case 'No checkbox':
396
- utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
397
- .should('have.class', 'cell-content-text');
398
- break;
399
393
  default:
400
394
  throw new Error('Invalid list option');
401
395
  };
@@ -485,7 +479,7 @@ const steps = {
485
479
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
486
480
  .find('[role="math"]')
487
481
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
488
- // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
482
+ // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
489
483
  });
490
484
  });
491
485
  },
@@ -651,9 +645,10 @@ const steps = {
651
645
  'background-color': css.color.correctAnswerLabelBg,
652
646
  'border': `1px solid ${css.color.correctAnswer}`
653
647
  });
654
- utilities.getNthElement(gridQuestionCommonComponent.optionsButton(), column).within(() => {
655
- utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'visible');
656
- });
648
+ utilities.getNthElement(gridQuestionCommonComponent.optionsButton(), column)
649
+ .within(() => {
650
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'visible');
651
+ });
657
652
  });
658
653
  })
659
654
  });
@@ -918,6 +913,8 @@ const steps = {
918
913
  .should('have.class', 'cell-content-subeading');
919
914
  break;
920
915
  case 'Text':
916
+ case 'No radio button':
917
+ case 'No checkbox':
921
918
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
922
919
  .should('have.class', 'cell-content-text');
923
920
  break;
@@ -937,11 +934,6 @@ const steps = {
937
934
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
938
935
  .should('have.class', 'cell-content-radio-text');
939
936
  break;
940
- case 'No radio button':
941
- case 'No checkbox':
942
- utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
943
- .should('have.class', 'cell-content-text');
944
- break;
945
937
  default:
946
938
  throw new Error('Invalid cell property');
947
939
  }
@@ -2044,7 +2036,7 @@ const tests = {
2044
2036
  gridQuestionCommonComponent.steps.setAnswerInSpecifyCorrectAnswerSection({ row: 1, column: 0 });
2045
2037
  });
2046
2038
 
2047
- it(`When the user has unchecked all the options in the ${accordionName} accordion, \'Error: Please set a correct answer.\' error message should be thrown along with an error icon on the \'${accordionName}\' accordion`, () => {
2039
+ it(`When the user has unchecked all the options in the ${accordionName} accordion, 'Error: Please set a correct answer.' error message should be thrown along with an error icon on the '${accordionName}' accordion`, () => {
2048
2040
  gridQuestionCommonComponent.steps.uncheckOptionInSpecifyCorrectAnswerSection({ row: 1, column: 0 });
2049
2041
  utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible')
2050
2042
  utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Please set a correct answer.');
@@ -2070,7 +2062,7 @@ const tests = {
2070
2062
 
2071
2063
  autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredPointsErrorMessageWhenPointsFieldIsEmpty(accordionName);
2072
2064
 
2073
- it(`CSS of \'${accordionName}\' accordion contents`, { tags: 'css' }, () => {
2065
+ it(`CSS of '${accordionName}' accordion contents`, { tags: 'css' }, () => {
2074
2066
  gridQuestionCommonComponent.gridSpecifyCorrectAnswerSection()
2075
2067
  .within(() => {
2076
2068
  utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.tableCell().parent(), 1), {
@@ -2176,7 +2168,7 @@ const tests = {
2176
2168
 
2177
2169
  verifyDefaultTextLabelAndDropdown: () => {
2178
2170
  const defaultTextDropdown = ['True / false', 'Yes / no', 'Agree / disagree', 'Custom'];
2179
- it(`\'Default text\' label and dropdown should be displayed and in \'Default text\' dropdown \'${defaultTextDropdown[0]}\' option should be selected by default`, () => {
2171
+ it(`'Default text' label and dropdown should be displayed and in 'Default text' dropdown '${defaultTextDropdown[0]}' option should be selected by default`, () => {
2180
2172
  utilities.verifyInnerText(gridQuestionCommonComponent.defaultTextLabel(), 'Default text');
2181
2173
  utilities.verifyInnerText(gridQuestionCommonComponent.defaultTextDropdown(), defaultTextDropdown[0]);
2182
2174
  utilities.verifyElementVisibilityState(gridQuestionCommonComponent.defaultTextDropdown(), 'visible');
@@ -2448,7 +2440,7 @@ const tests = {
2448
2440
  utilities.verifyInnerText(gridQuestionCommonComponent.optionAlignmentInCellLabel(), 'Option alignment in cell');
2449
2441
  });
2450
2442
 
2451
- it(`${optionAlignmentOptions} toggle options should be displayed and by default \'Center\' should be selected`, () => {
2443
+ it(`${optionAlignmentOptions} toggle options should be displayed and by default 'Center' should be selected`, () => {
2452
2444
  optionAlignmentOptions.forEach((option) => {
2453
2445
  utilities.verifyElementVisibilityState(gridQuestionCommonComponent.optionAlignmentInCellButton(option), 'visible');
2454
2446
  });
@@ -2465,7 +2457,7 @@ const tests = {
2465
2457
  },
2466
2458
 
2467
2459
  verifyOptionAlignmentInCellFunctionalityPreviewTab: () => {
2468
- it(`By default options should be \'Center\' aligned`, () => {
2460
+ it(`By default options should be 'Center' aligned`, () => {
2469
2461
  gridQuestionCommonComponent.steps.verifyOptionAlignmentInCellPreviewTab('center');
2470
2462
  });
2471
2463
 
@@ -2536,7 +2528,7 @@ const tests = {
2536
2528
  utilities.verifyElementVisibilityState(gridQuestionCommonComponent.rowSpacingDropdown(), 'visible');
2537
2529
  });
2538
2530
 
2539
- it(`When user expands \'Row spacing\' then ${rowColumnOptions} should be displayed then \'No spacing\' option is selected`, () => {
2531
+ it(`When user expands 'Row spacing' then ${rowColumnOptions} should be displayed then 'No spacing' option is selected`, () => {
2540
2532
  gridQuestionCommonComponent.steps.expandRowSpacingDropdown();
2541
2533
  rowColumnOptions.forEach((option, index) => {
2542
2534
  utilities.verifyInnerText(utilities.getNthElement(gridQuestionCommonComponent.rowSpacingDropdownOptions(), index), option);
@@ -2547,7 +2539,7 @@ const tests = {
2547
2539
  });
2548
2540
 
2549
2541
  rowColumnOptions.forEach((option) => {
2550
- it(`When user selects \'Row spacing\' ${option} option then ${option} spacing should be displayed between the row options`, () => {
2542
+ it(`When user selects 'Row spacing' ${option} option then ${option} spacing should be displayed between the row options`, () => {
2551
2543
  gridQuestionCommonComponent.steps.expandRowSpacingDropdown();
2552
2544
  gridQuestionCommonComponent.steps.selectRowSpacingDropdownOption(option);
2553
2545
  gridQuestionCommonComponent.steps.verifyTableRowSpacingSpecifyCorrectAnswerSection(option);
@@ -2560,7 +2552,7 @@ const tests = {
2560
2552
  utilities.verifyElementVisibilityState(gridQuestionCommonComponent.columnSpacingDropdown(), 'visible');
2561
2553
  });
2562
2554
 
2563
- it(`When user expands \'Column spacing\' then ${rowColumnOptions} should be displayed then \'No spacing\' option is selected`, () => {
2555
+ it(`When user expands 'Column spacing' then ${rowColumnOptions} should be displayed then 'No spacing' option is selected`, () => {
2564
2556
  gridQuestionCommonComponent.steps.expandColumnSpacingDropdown();
2565
2557
  rowColumnOptions.forEach((option, index) => {
2566
2558
  utilities.verifyInnerText(utilities.getNthElement(gridQuestionCommonComponent.columnSpacingDropdownOptions(), index), option);
@@ -2571,7 +2563,7 @@ const tests = {
2571
2563
  });
2572
2564
 
2573
2565
  rowColumnOptions.forEach((option) => {
2574
- it(`When user selects \'Column spacing\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2566
+ it(`When user selects 'Column spacing' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2575
2567
  gridQuestionCommonComponent.steps.expandColumnSpacingDropdown();
2576
2568
  gridQuestionCommonComponent.steps.selectColumnSpacingDropdownOption(option);
2577
2569
  gridQuestionCommonComponent.steps.verifyTableColumnSpacingSpecifyCorrectAnswerSection(option);
@@ -2581,7 +2573,7 @@ const tests = {
2581
2573
 
2582
2574
  verifyRowAndColumnSpacingFunctionalityPreviewTab: () => {
2583
2575
  rowColumnOptions.forEach((option) => {
2584
- it(`When user selects \'Row spacing\' ${option} option then ${option} spacing should be displayed between the row options`, () => {
2576
+ it(`When user selects 'Row spacing' ${option} option then ${option} spacing should be displayed between the row options`, () => {
2585
2577
  gridQuestionCommonComponent.steps.expandRowSpacingDropdown();
2586
2578
  gridQuestionCommonComponent.steps.selectRowSpacingDropdownOption(option);
2587
2579
  createQuestionBasePage.steps.switchToPreviewTab();
@@ -2591,7 +2583,7 @@ const tests = {
2591
2583
  });
2592
2584
 
2593
2585
  rowColumnOptions.forEach((option) => {
2594
- it(`When user selects \'Column spacing\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2586
+ it(`When user selects 'Column spacing' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2595
2587
  gridQuestionCommonComponent.steps.expandColumnSpacingDropdown();
2596
2588
  gridQuestionCommonComponent.steps.selectColumnSpacingDropdownOption(option);
2597
2589
  createQuestionBasePage.steps.switchToPreviewTab();
@@ -2646,7 +2638,7 @@ const tests = {
2646
2638
  utilities.verifyInnerText(gridQuestionCommonComponent.columnDimensionsDropdown(), 'Auto');
2647
2639
  });
2648
2640
 
2649
- it(`When user expands \'Column dimensions\' then ${columnDimensions} should be displayed then \'Auto\' option is selected`, () => {
2641
+ it(`When user expands 'Column dimensions' then ${columnDimensions} should be displayed then 'Auto' option is selected`, () => {
2650
2642
  gridQuestionCommonComponent.steps.expandColumnDimensionsDropdown();
2651
2643
  columnDimensions.forEach((option, index) => {
2652
2644
  utilities.verifyInnerText(utilities.getNthElement(gridQuestionCommonComponent.columnDimensionsDropdownOptions(), index), option);
@@ -2657,7 +2649,7 @@ const tests = {
2657
2649
  });
2658
2650
 
2659
2651
  columnDimensions.forEach((option) => {
2660
- it(`When user selects \'Column dimensions\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2652
+ it(`When user selects 'Column dimensions' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2661
2653
  gridQuestionCommonComponent.steps.expandColumnDimensionsDropdown();
2662
2654
  gridQuestionCommonComponent.steps.selectColumnDimensionsDropdownOption(option);
2663
2655
  gridQuestionCommonComponent.steps.verifyColumnDimensionsSpecifyCorrectAnswer(option);
@@ -2745,7 +2737,7 @@ const tests = {
2745
2737
 
2746
2738
  verifyColumnDimensionsFunctionalityPreviewTab: () => {
2747
2739
  columnDimensions.forEach((option) => {
2748
- it(`When user selects \'Column dimensions\' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2740
+ it(`When user selects 'Column dimensions' ${option} option then ${option} spacing should be displayed between the columns`, () => {
2749
2741
  gridQuestionCommonComponent.steps.expandColumnDimensionsDropdown();
2750
2742
  gridQuestionCommonComponent.steps.selectColumnDimensionsDropdownOption(option);
2751
2743
  createQuestionBasePage.steps.switchToPreviewTab();
@@ -3003,7 +2995,7 @@ const tests = {
3003
2995
  },
3004
2996
 
3005
2997
  verifyInnerBorderContentAndFunctionalityEditTab: () => {
3006
- it(`\'Inner border\' label should be displayed along with 4 options - ${innerBorder}`, () => {
2998
+ it(`'Inner border' label should be displayed along with 4 options - ${innerBorder}`, () => {
3007
2999
  utilities.verifyInnerText(gridQuestionCommonComponent.innerBorderLabel(), 'Inner border');
3008
3000
  innerBorder.forEach((option) => {
3009
3001
  utilities.verifyElementVisibilityState(gridQuestionCommonComponent.innerBorderOptions(option.toLowerCase()), 'exist');
@@ -794,8 +794,7 @@ const tests = {
794
794
  it(`When user clicks on close button for response container, then response container should be removed from canvas and error message should not be displayed`, () => {
795
795
  imageCanvasComponent.steps.removeResponseArea(0);
796
796
  utilities.verifyElementVisibilityState(imageCanvasComponent.responseAreaWrapper(), 'notExist');
797
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible');
798
- utilities.verifyInnerText(commonComponents.errorMessage(), `Error: Please insert a ${response}.`);
797
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
799
798
  });
800
799
 
801
800
  it('When user adds response container, then error message should disappear', () => {
@@ -849,18 +848,17 @@ const tests = {
849
848
  imageCanvasComponent.steps.verifyRedoButtonDisabled();
850
849
  });
851
850
 
852
- it(`When the user reaches the initial state by performing undo actions, the \'Undo\' button should get disabled and error message should not be displayed`, () => {
853
- for (var i = 0; i < 4; i++) {
851
+ it(`When the user reaches the initial state by performing undo actions, the 'Undo' button should get disabled and error message should not be displayed`, () => {
852
+ for (let i = 0; i < 4; i++) {
854
853
  imageCanvasComponent.steps.undoAction();
855
854
  }
856
855
  utilities.verifyElementCount(imageCanvasComponent.responseArea(), 0);
857
856
  imageCanvasComponent.steps.verifyUndoButtonDisabled();
858
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible');
859
- utilities.verifyInnerText(commonComponents.errorMessage(), `Error: Please insert a ${response}.`);
857
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
860
858
  });
861
859
 
862
860
  it('When the user reaches the latest state by performing redo actions, the \'Redo\' button should get disabled and error message should disappear', () => {
863
- for (var i = 0; i < 4; i++) {
861
+ for (let i = 0; i < 4; i++) {
864
862
  imageCanvasComponent.steps.redoAction();
865
863
  }
866
864
  utilities.verifyElementCount(imageCanvasComponent.responseArea(), 4);
@@ -868,7 +866,7 @@ const tests = {
868
866
  commonComponents.steps.verifyErrorMessageIsNotDisplayed();
869
867
  });
870
868
 
871
- it(`When user clicks on \'Clear all\' button, then all response container should be deleted and error message should not be displayed`, () => {
869
+ it(`When user clicks on 'Clear all' button, then all response container should be deleted and error message should not be displayed`, () => {
872
870
  imageCanvasComponent.steps.clearAllCanvas();
873
871
  utilities.verifyElementVisibilityState(imageCanvasComponent.responseAreaWrapper(), 'notExist');
874
872
  utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
@@ -1019,7 +1017,7 @@ const tests = {
1019
1017
  utilities.verifyElementVisibilityState(imageCanvasComponent.imageAlignmentLabel(), 'visible');
1020
1018
  });
1021
1019
 
1022
- it(`\'Image alignment\' section should have three options ${alignmentOptions} and ${alignmentOptions[0]} should be active selection by default`, () => {
1020
+ it(`'Image alignment' section should have three options ${alignmentOptions} and ${alignmentOptions[0]} should be active selection by default`, () => {
1023
1021
  utilities.verifyInnerText(imageCanvasComponent.topLeftAlignmentButton(), 'Top left');
1024
1022
  utilities.verifyElementVisibilityState(imageCanvasComponent.topLeftAlignmentButton(), 'visible');
1025
1023
  utilities.verifyInnerText(imageCanvasComponent.centerAlignmentButton(), 'Center');
@@ -15,7 +15,6 @@ export * from './fillInTheGapsTextCommonComponent'
15
15
  export * from './fillInTheGapsDropdownCommonComponent';
16
16
  export * from './uploadImageSectionComponent';
17
17
  export * from './colorPopupComponent';
18
- export * from './customizeHighlightPropertiesComponent';
19
18
  export * from './browseItemsPage';
20
19
  export * from './autoScoredSpecifyCorrectAnswerSection';
21
20
  export * from './scoringSectionBaseEditTab';
@@ -1,6 +1,5 @@
1
1
  import utilities from "../../support/helpers/utilities"
2
2
  import { colorPopupComponent } from "./colorPopupComponent";
3
- import { commonComponents } from "./commonComponents";
4
3
  import { createQuestionBasePage } from "./createQuestionBasePage";
5
4
  const css = Cypress.env('css');
6
5
 
@@ -38,17 +37,6 @@ const selectors = {
38
37
  }
39
38
 
40
39
  const steps = {
41
- /**
42
- * Verifies the color of a color block.
43
- * @param {number} blockIndex - The index of the color block.
44
- * @param {string} color - The expected background color of the color block.
45
- */
46
- verifyColorBlockColor: (blockIndex, color) => {
47
- utilities.verifyCSS(utilities.getNthElement(listOrderingCommonStyleAndLayoutComponent.colorBlock(), blockIndex), {
48
- 'background-color': color
49
- });
50
- },
51
-
52
40
  /**
53
41
  * @param {number} blockIndex index of the color block in the style and layout customization section
54
42
  * @description this function verifies the selected state of a block
@@ -1,5 +1,4 @@
1
1
  import utilities from "../../support/helpers/utilities"
2
- import { commonComponents } from "./commonComponents"
3
2
 
4
3
  const selectors = {
5
4
  //Options design dropdown
@@ -78,7 +78,7 @@ const steps = {
78
78
  .eq(index)
79
79
  .within(() => {
80
80
  commonComponents.errorMessage()
81
- .should('have.text', 'Error: Option is required.');
81
+ .should('not.exist');
82
82
  });
83
83
  },
84
84
 
@@ -295,7 +295,7 @@ const tests = {
295
295
  * @param {number} optionFieldsCount - The expected number of option input fields.
296
296
  */
297
297
  verifyOptionsSectionContents: ({ optionFieldsCount, optionLabel }) => {
298
- it(`\'${optionLabel}\' label should be displayed`, () => {
298
+ it(`'${optionLabel}' label should be displayed`, () => {
299
299
  utilities.verifyInnerText(optionsWrapperComponent.optionsLabel(), optionLabel);
300
300
  });
301
301
 
@@ -345,7 +345,7 @@ const tests = {
345
345
  .eq(inputFieldIndex)
346
346
  .click()
347
347
  .blur();
348
- utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Option is required.');
348
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
349
349
  });
350
350
 
351
351
  it('User should be able to enter text in options input field and \'Error: Option is required.\' error message should disappear', () => {
@@ -362,13 +362,13 @@ const tests = {
362
362
  utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
363
363
  });
364
364
 
365
- it('If the user enters points more than the allocated points in Minimum points input field, an error message \'Error: Minimum score cannot be greater than allocated points.: *points in points field*\' should be displayed', () => {
365
+ it('If the user enters points more than the allocated points in Minimum points input field, an error message \'Error: Minimum score cannot be greater than allocated points.: *points in points field*\' should not be displayed', () => {
366
366
  scoringSectionBaseEditTab.steps.allotMinimumPoints(20);
367
367
  scoringSectionBaseEditTab.minimumPointsInputField()
368
368
  .focus();
369
369
  scoringSectionBaseEditTab.minimumPointsInputField()
370
370
  .blur();
371
- utilities.verifyInnerText(commonComponents.errorMessage().last(), 'Error: Minimum score cannot be greater than allocated points.: 10');
371
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
372
372
  });
373
373
 
374
374
  it('The error message should disappear once the user removes the entered points from the Minimum score awarded (if attempted) input field', () => {
@@ -438,7 +438,7 @@ const steps = {
438
438
  * @param {string} label - The label expected on the tab list buttons.
439
439
  */
440
440
  verifyTabListButtonLabel: (index, label) => {
441
- for (var i = 0; i < index; i++) {
441
+ for (let i = 0; i < index; i++) {
442
442
 
443
443
  contentBlocksPage.tabListButton()
444
444
  .eq(i)
@@ -118,19 +118,20 @@ const steps = {
118
118
  },
119
119
 
120
120
  /**
121
- * @param {string[]} arrayOfTags of text that need to enter in tags input field
122
- * @description set tags for an item
123
- */
121
+ * @param {string[]} arrayOfTags of text that need to enter in tags input field
122
+ * @description set tags for an item
123
+ */
124
124
  setTags: (arrayOfTags) => {
125
- steps.clickOnTagsButton()
126
- for (let index = 0; index < arrayOfTags.length; index++) {
125
+ steps.clickOnTagsButton();
126
+ for (const tag of arrayOfTags) {
127
127
  createItemPage.tagsInputField()
128
- .type(`${arrayOfTags[index]}{enter}`);
128
+ .type(`${tag}{enter}`);
129
129
  }
130
130
  createItemPage.applyChangesButton()
131
131
  .click();
132
132
  },
133
133
 
134
+
134
135
  /**
135
136
  * @param {string[]} value of text that need to enter in title input field
136
137
  * @description this function enters text in title input field
@@ -41,7 +41,6 @@ const selectors = {
41
41
  correctAnswerOption: () => cy.get('[class*="Matrixstyles__AnswerWrapper"]'),
42
42
  //Note: Items render twice in student view, need to remove .first()
43
43
  categoryGridPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="Matrixstyles__TableWrapper"]').first(),
44
- optionsWrapper: () => cy.get('[class*="CellDropZonestyles__DraggableItemWrapper"]'),
45
44
  correctIncorrectAnswerBlock: () => cy.get('[class*="correct-answer-block"]'),
46
45
  correctIncorrectStatusMessageText: () => cy.get('[class*="Matrixstyles__AnswerStatusText"]'),
47
46
  correctIncorrectAnswerLabel: () => cy.get('[class*="Matrixstyles__CorrectIncorrectLabel"]'),
@@ -782,20 +781,6 @@ const steps = {
782
781
  });
783
782
  },
784
783
 
785
- /**
786
- * @param {number} categoryIndex optionIndex of the category cell in set correct answer section
787
- * @param {string[]} responseArray array of options set as correct responses in a category cell
788
- */
789
- verifyDraggableOptionInDropzoneOfPreviewTab: (dropzoneIndex, responseArray) => {
790
- dragAndDropIntoCategoriesPage.dropzoneCellPreviewTab()
791
- .eq(dropzoneIndex)
792
- .within(() => {
793
- responseArray.forEach((response, count) => {
794
- utilities.verifyTextContent(utilities.getNthElement(dragAndDropIntoCategoriesPage.draggableOption(), count), response);
795
- });
796
- });
797
- },
798
-
799
784
  /**
800
785
  * @description Verifies that the equation text in the Preview tab is correct.
801
786
  * @param {number} optionIndex - The index of the option in the Preview tab.
@@ -844,19 +829,6 @@ const steps = {
844
829
  });
845
830
  },
846
831
 
847
- /**
848
- * @description Verify the text in subheading cell input field
849
- * @param {number} cellIndex Index of cell in specify columns and rows table
850
- * @param {string} text Text to be verified
851
- */
852
- verifySubheadingCellTypeInputFieldText: (cellIndex, text) => {
853
- dragAndDropIntoCategoriesPage.tableCellContainer()
854
- .eq(cellIndex)
855
- .within(() => {
856
- utilities.verifyTextContent(dragAndDropIntoCategoriesPage.cellSubheadingTextArea(), `${text}`);
857
- });
858
- },
859
-
860
832
  /**
861
833
  * @param {number} categoryIndex optionIndex of the category cell in set correct answer section
862
834
  * @param {string[]} responseArray array of options set as correct responses in a category cell
@@ -871,19 +843,6 @@ const steps = {
871
843
  });
872
844
  },
873
845
 
874
- /**
875
- * @description Verify the text in text type cell input field
876
- * @param {number} cellIndex Index of cell in specify columns and rows table
877
- * @param {string} text Text to be verified
878
- */
879
- verifyTextCellTypeInputFieldText: (cellIndex, text) => {
880
- dragAndDropIntoCategoriesPage.tableCellContainer()
881
- .eq(cellIndex)
882
- .within(() => {
883
- utilities.verifyTextContent(dragAndDropIntoCategoriesPage.cellTextTextArea(), `${text}`);
884
- });
885
- },
886
-
887
846
  /**
888
847
  * Verify the text content of a table cell in the preview tab.
889
848
  * @param { number } cellIndex - The index of the table cell to verify.
@@ -1225,7 +1225,6 @@ const tests = {
1225
1225
  });
1226
1226
  equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField(categoryName);
1227
1227
  //Uncomment once https://redmine.zeuslearning.com/issues/525213 is resolved
1228
-
1229
1228
  // if (categoryName === 'setNotation') {
1230
1229
  // essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('∈∉∋∌⊂⊃⊆⊇⊄⊅∅∪∩!,:\\/≺≻≼≽({[(])})', wordCount);
1231
1230
  // } else if (categoryName === 'otherSymbols') {
@@ -65,7 +65,6 @@ const selectors = {
65
65
  legendTextNumberBlock: () => cy.get('[class*="MoreInfostyles__NumberBox"]'),
66
66
  legendTextStarIcon: () => cy.get('[class*="MoreInfostyles__StarWrapper"] svg'),
67
67
  legendTextHeartIcon: () => cy.get('[class*="MoreInfostyles__StarWrapper"] svg'),
68
- editColorButton: () => cy.get('.icon-pencil'),
69
68
  thumbsUpFeedbackButton: () => cy.get('[role="button"][aria-label="Thumbs-Up"]'),
70
69
  thumbsDownFeedbackButton: () => cy.get('[role="button"][aria-label="Thumbs-Down"]'),
71
70
  thumbsUpButtonIcon: () => cy.get('[data-name="Thumbs up button"]'),
@@ -1014,7 +1014,7 @@ const tests = {
1014
1014
  fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Petals': 0 });
1015
1015
  });
1016
1016
 
1017
- 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`, () => {
1017
+ 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`, () => {
1018
1018
  fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Petals');
1019
1019
  utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist')
1020
1020
  if (accordionName == 'Correct') {
@@ -31,6 +31,14 @@ const selectors = {
31
31
  correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.cloze-with-text-correct-answer-wrapper .preview-question-text-wrapper'),
32
32
  correctAnswersLabel: () => cy.get('.cloze-with-text-correct-answer-label'),
33
33
  tooltipText: () => cy.get('[class*="MuiTooltip-tooltip"]'),
34
+ addAlternateButtonSpecifyCorrectAnswer: () => cy.get('.alternate-option-btn-wrapper .ngie-button'),
35
+ alternateAnswerPopup: () => cy.get('.alternate-option-popup-wrapper'),
36
+ alternateAnswerPopupTitle: () => cy.get('.alternate-option-title-wrapper div').eq(0),
37
+ alternateAnswerPopupHelpText: () => cy.get('.alternate-option-title-wrapper div').eq(1),
38
+ alternateAnswerPopupOptions: () => cy.get('.option-container'),
39
+ alternateAnswerPopupCancelButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(0),
40
+ alternateAnswerPopupSaveButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(1),
41
+ selectedAlternateAnswerCountSpecifyCorrectAnswer: () => cy.get('.selected-option-wrapper'),
34
42
  }
35
43
 
36
44
  const steps = {
@@ -232,6 +240,77 @@ const steps = {
232
240
  .eq(index)
233
241
  .trigger('mouseout');
234
242
  },
243
+
244
+ saveSelectedAlternateAnswers: () => {
245
+ fillInTheGapsDropdownPage.alternateAnswerPopupSaveButton()
246
+ .click();
247
+ },
248
+
249
+ CancelDropdownAlternateAnswersPopup: () => {
250
+ fillInTheGapsDropdownPage.alternateAnswerPopupCancelButton()
251
+ .click();
252
+ },
253
+
254
+ /**
255
+ * @description Verify alternate button for a dropdown in specify correct answer section
256
+ * @param {number} dropdownIndex Index of dropdown
257
+ */
258
+ verifyDefaultAddAlternateAnswerButtonIsDisplayed: (dropdownIndex) => {
259
+ const alternateButton = fillInTheGapsDropdownPage.addAlternateButtonSpecifyCorrectAnswer().eq(dropdownIndex);
260
+ utilities.verifyElementVisibilityState(alternateButton, 'visible');
261
+ utilities.verifyElementDisabled(alternateButton);
262
+ },
263
+
264
+ /**
265
+ * @description click on add alternate button for a dropdown in specify correct answer section
266
+ * @param {number} dropdownIndex Index of dropdown
267
+ */
268
+ clickOnAddAlternateButton: (dropdownIndex) => {
269
+ utilities.getNthElement(fillInTheGapsDropdownPage.addAlternateButtonSpecifyCorrectAnswer(), dropdownIndex)
270
+ .click();
271
+ },
272
+
273
+ /**
274
+ * @description Verify dropdown's alternate answer popup options
275
+ * @param {string[]} optionsArray Array of options in dropdown's alternate answer popup
276
+ */
277
+ verifyDropdownAlternateAnswerPopupOptions: (optionsArray) => {
278
+ optionsArray.forEach((option, index) => {
279
+ utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsDropdownPage.alternateAnswerPopupOptions(), index), option);
280
+ });
281
+ },
282
+
283
+ /**
284
+ * @description select alternate answers for a dropdown in its alternate answer popup
285
+ * @param {string[]} alternateAnswerArray Array of options to be selected as alternate answer
286
+ */
287
+ selectAlternateAnswerInAlternateAnswerPopup: (alternateAnswerArray) => {
288
+ alternateAnswerArray.forEach((alternateAnswer) => {
289
+ fillInTheGapsDropdownPage.alternateAnswerPopupOptions()
290
+ .contains(alternateAnswer)
291
+ .click();
292
+ fillInTheGapsDropdownPage.alternateAnswerPopupOptions()
293
+ .contains(alternateAnswer)
294
+ .parent()
295
+ .should('have.class', 'selected');
296
+ });
297
+ },
298
+
299
+ /**
300
+ * @description deselect alternate answers for a dropdown in its alternate answer popup
301
+ * @param {string[]} alternateAnswerArray Array of options to be deselected
302
+ */
303
+ deselectAlternateAnswerInAlternateAnswerPopup: (alternateAnswerArray) => {
304
+ alternateAnswerArray.forEach((alternateAnswer) => {
305
+ fillInTheGapsDropdownPage.alternateAnswerPopupOptions()
306
+ .contains(alternateAnswer)
307
+ .click();
308
+ fillInTheGapsDropdownPage.alternateAnswerPopupOptions()
309
+ .contains(alternateAnswer)
310
+ .parent()
311
+ .should('not.have.class', 'selected');
312
+ });
313
+ },
235
314
  }
236
315
 
237
316
  const tests = {
@@ -231,7 +231,6 @@ const selectors = {
231
231
  //Correct answer section
232
232
  correctAnswerLabel: () => cy.get('[class*="AnswerLabel"]'),
233
233
  graphCorrectAnswerSection: () => cy.get('[class*="GraphingQuestion"] .ngie-jxgbox svg'),
234
- graphSineWaveCorrectAnswerSection: () => cy.get('[class*="GraphingQuestion"] .ngie-jxgbox').eq(1).find('path[stroke-linecap="butt"][stroke-opacity="1"]'),
235
234
  graphCircleCorrectAnswerSection: () => cy.get('[class*="GraphingQuestion"] .ngie-jxgbox').eq(1).find('ellipse[stroke-linecap="butt"]'),
236
235
  graphLineCorrectAnswerSection: () => cy.get('[class*="GraphingQuestion"] .ngie-jxgbox').eq(1).find('line[tabindex="null"]'),
237
236
  graphPolygonCorrectAnswerSection: () => cy.get('[class*="GraphingQuestion"] .ngie-jxgbox').eq(1).find('polygon'),