itemengine-cypress-automation 1.0.283-updatedPackageFile-3c0db7c.0 → 1.0.283

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +21 -21
  2. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneAlternativePointsGreaterThanCorrectPoints.js +9 -9
  3. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneBasic.js +7 -6
  4. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneCorrectPointsEqualToAlternativePoints.js +10 -9
  5. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perDropzoneCorrectPointsGreaterThanAlternativePoints.js +11 -10
  6. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/additionalSettings.js +1 -1
  7. package/cypress/e2e/ILC/EditItem/editItem.ts +133 -0
  8. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingGroupedScoring.js +4 -4
  9. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +15 -15
  10. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +14 -14
  11. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +14 -14
  12. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/blankResponseScoring.js +214 -0
  13. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/manuallyAndNonScored.js +4 -4
  14. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +14 -14
  15. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsBasic.js +8 -8
  16. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +14 -14
  17. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +14 -14
  18. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsBasic.js +8 -8
  19. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +14 -14
  20. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +14 -14
  21. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +14 -14
  22. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/responseLevelAlternateAnswerBasicScoring.js +1 -1
  23. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/blankResponseScoring.js +228 -0
  24. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/manuallyAndNonScored.js +3 -3
  25. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/blankResponseScoring.js +242 -0
  26. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/blankResponseScoring.js +245 -0
  27. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/blankResponseScoring.js +237 -0
  28. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingGroupedScoring.js +4 -4
  29. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +14 -14
  30. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +14 -14
  31. package/cypress/e2e/ILC/Matching/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +14 -14
  32. package/cypress/e2e/ILC/Matching/Scoring/blankResponseScoring.js +239 -0
  33. package/cypress/e2e/ILC/Matching/Scoring/manuallyAndNonScored.js +2 -2
  34. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsScoringBasic.js +2 -2
  35. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +7 -7
  36. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +7 -7
  37. package/cypress/e2e/ILC/Matching/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +7 -7
  38. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsBasic.js +4 -4
  39. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +14 -14
  40. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +14 -14
  41. package/cypress/e2e/ILC/Matching/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +14 -14
  42. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +3 -2
  43. package/cypress/e2e/ILC/MatchingDropdown/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +7 -7
  44. package/cypress/e2e/ILC/MatchingDropdown/Scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +7 -7
  45. package/cypress/e2e/ILC/MatchingDropdown/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +7 -7
  46. package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +212 -0
  47. package/cypress/e2e/ILC/MatchingDropdown/Scoring/manuallyAndNonScored.js +2 -2
  48. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsScoringBasic.js +2 -2
  49. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsWithAlternativePointsGreaterThanCorrectPoints.js +7 -7
  50. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternatePoints.js +7 -7
  51. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternatePoints.js +7 -7
  52. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsBasic.js +4 -4
  53. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +7 -7
  54. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +7 -7
  55. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +7 -7
  56. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/blankResponseScoring.js +366 -0
  57. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/blankResponseScoring.js +306 -0
  58. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +243 -0
  59. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +242 -0
  60. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +289 -0
  61. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +284 -0
  62. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +238 -0
  63. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +279 -0
  64. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +641 -0
  65. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +278 -0
  66. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +228 -0
  67. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +234 -0
  68. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +237 -0
  69. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +134 -0
  70. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +138 -0
  71. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +263 -0
  72. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +5 -5
  73. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +166 -0
  74. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +3 -3
  75. package/cypress/e2e/ILC/TextEntryMath/customSettings.js +3 -3
  76. package/cypress/e2e/ILC/TextEntryMath/customSettingsSeparators.ts +193 -0
  77. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.js +5 -5
  78. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchExact.js +1 -1
  79. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodMatchValue.js +1 -1
  80. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodsWithoutSetResponse.js +4 -4
  81. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +8 -8
  82. package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +1 -1
  83. package/cypress/pages/audioPlayerPage.js +4 -4
  84. package/cypress/pages/components/customSettingsSeparatorsComponent.ts +17 -0
  85. package/cypress/pages/components/equationEditorFlyout.js +1 -1
  86. package/cypress/pages/components/fillInTheGapsDragAndDropCommonComponents.js +1 -1
  87. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +5 -1
  88. package/cypress/pages/components/gridQuestionCommonComponent.js +41 -1
  89. package/cypress/pages/components/optionsWrapperComponent.js +1 -1
  90. package/cypress/pages/createItemPage.js +38 -1
  91. package/cypress/pages/dragAndDropIntoCategoriesPage.js +1 -1
  92. package/cypress/pages/fillInTheGapsDragAndDropPage.js +45 -3
  93. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +35 -2
  94. package/cypress/pages/listOrderingPage.js +1 -1
  95. package/cypress/pages/matchingPage.js +34 -7
  96. package/cypress/pages/multipleSelectionPage.js +17 -2
  97. package/cypress/pages/numberLineLabelPage.js +3 -3
  98. package/cypress/pages/readingRulerPage.js +5 -3
  99. package/cypress/pages/singleSelectionPage.js +5 -2
  100. package/cypress/pages/textEntryMathPage.js +19 -5
  101. package/cypress/pages/textSelectionPage.js +1 -1
  102. package/package.json +1 -1
@@ -31,7 +31,7 @@ describe('Create Item page - Text entry math: All or nothing ', () => {
31
31
  equationEditorFlyout.steps.enterTextInPreviewInputField('Correct1');
32
32
  equationEditorFlyout.steps.clickOnOkButton();
33
33
  textEntryMathPage.steps.expandLayoutAccordion();
34
- textEntryMathPage.steps.focusInLayoutInputFieldNew(0);
34
+ textEntryMathPage.steps.focusInLayoutInputField(0);
35
35
  textEntryMathPage.steps.addResponseContainer();
36
36
  equationEditorFlyout.steps.clickOnOkButton();
37
37
  textEntryMathPage.steps.collapseResponseAccordionSpecifyCorrectAnswer(0);
@@ -39,7 +39,7 @@ describe('Create Item page - Text entry math: All or nothing ', () => {
39
39
  textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(1);
40
40
  equationEditorFlyout.steps.enterQuadraticEquation();
41
41
  textEntryMathPage.steps.expandLayoutAccordion();
42
- textEntryMathPage.steps.focusInLayoutInputFieldNew(1);
42
+ textEntryMathPage.steps.focusInLayoutInputField(1);
43
43
  textEntryMathPage.steps.addResponseContainer();
44
44
  equationEditorFlyout.steps.enterEquation([{ categoryName: 'intermediate', symbolName: ['x', 'square', 'y', 'square'] }]);
45
45
  equationEditorFlyout.steps.enterEquation([{ categoryName: 'numPad', symbolName: ['add'] }]);
@@ -53,7 +53,7 @@ describe('Create Item page - Text entry math: All or nothing ', () => {
53
53
  textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(2);
54
54
  equationEditorFlyout.steps.enterEquationUsingPiSymbol();
55
55
  textEntryMathPage.steps.expandLayoutAccordion();
56
- textEntryMathPage.steps.focusInLayoutInputFieldNew(2);
56
+ textEntryMathPage.steps.focusInLayoutInputField(2);
57
57
  textEntryMathPage.steps.addResponseContainer();
58
58
  equationEditorFlyout.steps.enterEquation([{ categoryName: 'numPad', symbolName: ['multiply'] }, { categoryName: 'intermediate', symbolName: ['pi'] }]);
59
59
  equationEditorFlyout.steps.clickOnOkButton();
@@ -532,7 +532,7 @@ describe('Create Item page - Text entry math: Evaluation methods - Custom settin
532
532
  textEntryMathPage.steps.addResponseArea();
533
533
  textEntryMathPage.steps.allotPoints(20);
534
534
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
535
- textEntryMathPage.steps.selectEvaluationMethod('Value is equivalent');
535
+ textEntryMathPage.steps.selectEvaluationMethod('Value is equivalent', 1);
536
536
  textEntryMathPage.steps.expandAdditionalSettings();
537
537
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
538
538
  textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
@@ -758,7 +758,7 @@ describe('Create Item page - Text entry math: Evaluation methods - Custom settin
758
758
  textEntryMathPage.steps.addResponseArea();
759
759
  textEntryMathPage.steps.allotPoints(20);
760
760
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
761
- textEntryMathPage.steps.selectEvaluationMethod('Match value');
761
+ textEntryMathPage.steps.selectEvaluationMethod('Match value', 2);
762
762
  textEntryMathPage.steps.expandAdditionalSettings();
763
763
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
764
764
  textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
@@ -1154,7 +1154,7 @@ describe('Create Item page - Text entry math: Evaluation methods - Custom settin
1154
1154
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
1155
1155
  textEntryMathPage.steps.allotPoints(20);
1156
1156
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
1157
- textEntryMathPage.steps.selectEvaluationMethod('Match exact');
1157
+ textEntryMathPage.steps.selectEvaluationMethod('Match exact', 8);
1158
1158
  textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
1159
1159
  equationEditorFlyout.steps.clearAll();
1160
1160
  equationEditorFlyout.steps.enterQuadraticEquation()
@@ -1,5 +1,6 @@
1
1
  import { textEntryMathPage } from "../../../pages";
2
2
  import { equationEditorFlyout } from "../../../pages/components";
3
+ import { customSettingsSeparatorComponent } from "../../../pages/components/customSettingsSeparatorsComponent";
3
4
 
4
5
  const arrNoSetAnswer = ['Response is true', 'Expanded form', 'Factored form', 'Simplified version'];
5
6
  const evaluationMethods = [
@@ -580,4 +581,196 @@ describe('Custom Settings Separators for Text Entry Math', () => {
580
581
  });
581
582
  });
582
583
  });
584
+
585
+ describe('Edit and preview tab functionality for tolerance', () => {
586
+ before(() => {
587
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
588
+ cy.barsPreLoaderWait();
589
+ textEntryMathPage.steps.addResponseArea();
590
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
591
+ textEntryMathPage.steps.allotPoints(10);
592
+ textEntryMathPage.steps.addInputToResponseAnswerInputFieldSpecifyCorrectAnswer(0, '5');
593
+ textEntryMathPage.steps.clickOnCustomSettingsAccordion();
594
+ });
595
+
596
+ it('When user sets tolerance to 1 to 5, then the answer should be validated with a tolerance of respective value', () => {
597
+ for (let i = 1; i < 6; i++) {
598
+ customSettingsSeparatorComponent.steps.enterTextInToleranceInputField(i.toString());
599
+ textEntryMathPage.steps.switchToPreviewTab();
600
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
601
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `${5 + i}`);
602
+ equationEditorFlyout.steps.clickOnOkButton();
603
+ textEntryMathPage.steps.switchToGradingView();
604
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
605
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
606
+ textEntryMathPage.steps.switchToEditTab();
607
+ textEntryMathPage.steps.switchToPreviewTab();
608
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
609
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `${5 - i}`);
610
+ equationEditorFlyout.steps.clickOnOkButton();
611
+ textEntryMathPage.steps.switchToGradingView();
612
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
613
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
614
+ textEntryMathPage.steps.switchToEditTab();
615
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
616
+ textEntryMathPage.steps.clickOnCustomSettingsAccordion();
617
+ customSettingsSeparatorComponent.steps.clearTextInToleranceInputField();
618
+ }
619
+ });
620
+
621
+ it('When user sets tolerance to 1 to 5, then the answers above or below the tolerance level should be validated as incorrect', () => {
622
+ for (let i = 1; i < 6; i++) {
623
+ customSettingsSeparatorComponent.steps.enterTextInToleranceInputField(i.toString());
624
+ textEntryMathPage.steps.switchToPreviewTab();
625
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
626
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `${5 + i + 1}`);
627
+ equationEditorFlyout.steps.clickOnOkButton();
628
+ textEntryMathPage.steps.switchToGradingView();
629
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
630
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
631
+ textEntryMathPage.steps.switchToEditTab();
632
+ textEntryMathPage.steps.switchToPreviewTab();
633
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
634
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `${5 - i - 1}`);
635
+ equationEditorFlyout.steps.clickOnOkButton();
636
+ textEntryMathPage.steps.switchToGradingView();
637
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
638
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
639
+ textEntryMathPage.steps.switchToEditTab();
640
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
641
+ textEntryMathPage.steps.clickOnCustomSettingsAccordion();
642
+ customSettingsSeparatorComponent.steps.clearTextInToleranceInputField();
643
+ }
644
+ });
645
+
646
+ it('When user sets a value for tolerance and uses a decimal value as for correct answer, then the decimal inputs within the tolerance value should be validated as correct', () => {
647
+ textEntryMathPage.steps.deleteAResponseArea(0);
648
+ textEntryMathPage.steps.addResponseArea();
649
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
650
+ textEntryMathPage.steps.allotPoints(10);
651
+ textEntryMathPage.steps.addInputToResponseAnswerInputFieldSpecifyCorrectAnswer(0, '5.5');
652
+ textEntryMathPage.steps.clickOnCustomSettingsAccordion();
653
+ customSettingsSeparatorComponent.steps.enterTextInToleranceInputField('1.5');
654
+ textEntryMathPage.steps.switchToPreviewTab();
655
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
656
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `5.6`);
657
+ equationEditorFlyout.steps.clickOnOkButton();
658
+ textEntryMathPage.steps.switchToGradingView();
659
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
660
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
661
+ textEntryMathPage.steps.switchToEditTab();
662
+ textEntryMathPage.steps.switchToPreviewTab();
663
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
664
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `6.9999`);
665
+ equationEditorFlyout.steps.clickOnOkButton();
666
+ textEntryMathPage.steps.switchToGradingView();
667
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
668
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
669
+ textEntryMathPage.steps.switchToEditTab();
670
+ textEntryMathPage.steps.switchToPreviewTab();
671
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
672
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `4.001`);
673
+ equationEditorFlyout.steps.clickOnOkButton();
674
+ textEntryMathPage.steps.switchToGradingView();
675
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
676
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
677
+ });
678
+
679
+ it('When user sets a value for tolerance and uses a decimal value as for correct answer, then the decimal inputs outside the tolerance value should be validated as incorrect', () => {
680
+ textEntryMathPage.steps.switchToEditTab();
681
+ textEntryMathPage.steps.deleteAResponseArea(0);
682
+ textEntryMathPage.steps.addResponseArea();
683
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
684
+ textEntryMathPage.steps.allotPoints(10);
685
+ textEntryMathPage.steps.addInputToResponseAnswerInputFieldSpecifyCorrectAnswer(0, '5.5');
686
+ textEntryMathPage.steps.clickOnCustomSettingsAccordion();
687
+ customSettingsSeparatorComponent.steps.enterTextInToleranceInputField('1.5');
688
+ textEntryMathPage.steps.switchToPreviewTab();
689
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
690
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `7.1`);
691
+ equationEditorFlyout.steps.clickOnOkButton();
692
+ textEntryMathPage.steps.switchToGradingView();
693
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
694
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
695
+ textEntryMathPage.steps.resetQuestionPreview();
696
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
697
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `7.001`);
698
+ equationEditorFlyout.steps.clickOnOkButton();
699
+ textEntryMathPage.steps.switchToGradingView();
700
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
701
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
702
+ textEntryMathPage.steps.switchToEditTab();
703
+ textEntryMathPage.steps.switchToPreviewTab();
704
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
705
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `3.999`);
706
+ equationEditorFlyout.steps.clickOnOkButton();
707
+ textEntryMathPage.steps.switchToGradingView();
708
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
709
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
710
+ });
711
+
712
+ it('When user sets a value for tolerance and uses a fractional value as for correct answer, then the fractional inputs within the tolerance value should be validated as correct', () => {
713
+ textEntryMathPage.steps.switchToEditTab();
714
+ textEntryMathPage.steps.deleteAResponseArea(0);
715
+ textEntryMathPage.steps.addResponseArea();
716
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
717
+ textEntryMathPage.steps.allotPoints(10);
718
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
719
+ equationEditorFlyout.steps.enterEquation([{ categoryName: 'intermediate', symbolName: ['fraction'] }, { categoryName: 'keyPad', symbolName: ['one', 'moveDown', 'two'] }]);
720
+ equationEditorFlyout.steps.clickOnOkButton();
721
+ textEntryMathPage.steps.clickOnCustomSettingsAccordion();
722
+ customSettingsSeparatorComponent.steps.enterTextInToleranceInputField('1');
723
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
724
+ textEntryMathPage.steps.switchToPreviewTab();
725
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
726
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `3/2`);
727
+ equationEditorFlyout.steps.clickOnOkButton();
728
+ textEntryMathPage.steps.switchToGradingView();
729
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
730
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
731
+ textEntryMathPage.steps.switchToEditTab();
732
+ textEntryMathPage.steps.switchToPreviewTab();
733
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
734
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `-1/2`);
735
+ equationEditorFlyout.steps.clickOnOkButton();
736
+ textEntryMathPage.steps.switchToGradingView();
737
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
738
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
739
+ textEntryMathPage.steps.switchToEditTab();
740
+ textEntryMathPage.steps.switchToPreviewTab();
741
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
742
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `1`);
743
+ equationEditorFlyout.steps.clickOnOkButton();
744
+ textEntryMathPage.steps.switchToGradingView();
745
+ textEntryMathPage.steps.verifyCorrectResponseIcon(0);
746
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("correct");
747
+ });
748
+
749
+ it('When user sets a value for tolerance and uses a fractional value as for correct answer, then the fractional inputs outside the tolerance value should be validated as incorrect', () => {
750
+ textEntryMathPage.steps.switchToEditTab();
751
+ textEntryMathPage.steps.switchToPreviewTab();
752
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
753
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `4/2`);
754
+ equationEditorFlyout.steps.clickOnOkButton();
755
+ textEntryMathPage.steps.switchToGradingView();
756
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
757
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
758
+ textEntryMathPage.steps.switchToEditTab();
759
+ textEntryMathPage.steps.switchToPreviewTab();
760
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
761
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `-1`);
762
+ equationEditorFlyout.steps.clickOnOkButton();
763
+ textEntryMathPage.steps.switchToGradingView();
764
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
765
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
766
+ textEntryMathPage.steps.switchToEditTab();
767
+ textEntryMathPage.steps.switchToPreviewTab();
768
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
769
+ textEntryMathPage.steps.enterTextInPreviewInputFieldNew(0, `-2`);
770
+ equationEditorFlyout.steps.clickOnOkButton();
771
+ textEntryMathPage.steps.switchToGradingView();
772
+ textEntryMathPage.steps.verifyIncorrectResponseIcon(0);
773
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel("incorrect");
774
+ });
775
+ });
583
776
  });
@@ -20,7 +20,7 @@ describe('Create item page - Text entry math: Equivalent structure evaluation me
20
20
  textEntryMathPage.steps.addResponseArea();
21
21
  textEntryMathPage.steps.allotPoints(20);
22
22
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
23
- textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure');
23
+ textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure', 3);
24
24
  textEntryMathPage.steps.clickOnCustomSettingsAccordion();
25
25
  textEntryMathPage.steps.expandSyntaxDropdown();
26
26
  textEntryMathPage.steps.selectSyntaxDropdownListOption('Number');
@@ -337,7 +337,7 @@ describe('Create item page - Text entry math: Equivalent structure evaluation me
337
337
  textEntryMathPage.steps.addResponseArea();
338
338
  textEntryMathPage.steps.allotPoints(20);
339
339
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
340
- textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure');
340
+ textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure', 3);
341
341
  textEntryMathPage.steps.clickOnCustomSettingsAccordion();
342
342
  textEntryMathPage.steps.expandSyntaxDropdown();
343
343
  textEntryMathPage.steps.selectSyntaxDropdownListOption('Fraction');
@@ -775,7 +775,7 @@ describe('Create item page - Text entry math: Equivalent structure evaluation me
775
775
  textEntryMathPage.steps.addResponseArea();
776
776
  textEntryMathPage.steps.allotPoints(20);
777
777
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
778
- textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure');
778
+ textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure', 3);
779
779
  textEntryMathPage.steps.clickOnCustomSettingsAccordion();
780
780
  textEntryMathPage.steps.expandSyntaxDropdown();
781
781
  textEntryMathPage.steps.selectSyntaxDropdownListOption('Variable');
@@ -924,7 +924,7 @@ describe('Create item page - Text entry math: Equivalent structure evaluation me
924
924
  textEntryMathPage.steps.addResponseArea();
925
925
  textEntryMathPage.steps.allotPoints(20);
926
926
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
927
- textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure');
927
+ textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure', 3);
928
928
  textEntryMathPage.steps.clickOnCustomSettingsAccordion();
929
929
  textEntryMathPage.steps.expandSyntaxDropdown();
930
930
  textEntryMathPage.steps.selectSyntaxDropdownListOption('Expression');
@@ -1223,7 +1223,7 @@ describe('Create item page - Text entry math: Equivalent structure evaluation me
1223
1223
  textEntryMathPage.steps.addResponseArea();
1224
1224
  textEntryMathPage.steps.allotPoints(20);
1225
1225
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
1226
- textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure');
1226
+ textEntryMathPage.steps.selectEvaluationMethod('Equivalent structure', 3);
1227
1227
  textEntryMathPage.steps.clickOnCustomSettingsAccordion();
1228
1228
  textEntryMathPage.steps.expandSyntaxDropdown();
1229
1229
  textEntryMathPage.steps.selectSyntaxDropdownListOption('Scientific');
@@ -21,7 +21,7 @@ describe('Create item page - Text entry math: Match exact evaluation method', ()
21
21
  textEntryMathPage.steps.expandAdditionalSettings();
22
22
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
23
23
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
24
- textEntryMathPage.steps.selectEvaluationMethod('Match exact');
24
+ textEntryMathPage.steps.selectEvaluationMethod('Match exact', 8);
25
25
  textEntryMathPage.steps.selectModalVisibilityTypeButton();
26
26
  });
27
27
 
@@ -23,7 +23,7 @@ describe('Create item page - Text entry math: Match value evaluation method', ()
23
23
  textEntryMathPage.steps.expandAdditionalSettings();
24
24
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
25
25
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
26
- textEntryMathPage.steps.selectEvaluationMethod('Match value');
26
+ textEntryMathPage.steps.selectEvaluationMethod('Match value', 3);
27
27
  textEntryMathPage.steps.selectModalVisibilityTypeButton();
28
28
  });
29
29
 
@@ -21,7 +21,7 @@ describe('Create item page - Text entry math: All or nothing scoring', () => {
21
21
  textEntryMathPage.steps.addResponseArea();
22
22
  textEntryMathPage.steps.allotPoints(20);
23
23
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
24
- textEntryMathPage.steps.selectEvaluationMethod('Response is true');
24
+ textEntryMathPage.steps.selectEvaluationMethod('Response is true', 4);
25
25
  textEntryMathPage.steps.expandAdditionalSettings();
26
26
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
27
27
  textEntryMathPage.steps.selectModalVisibilityTypeButton();
@@ -217,7 +217,7 @@ describe('Create item page - Text entry math: All or nothing scoring', () => {
217
217
  textEntryMathPage.steps.addResponseArea();
218
218
  textEntryMathPage.steps.allotPoints(20);
219
219
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
220
- textEntryMathPage.steps.selectEvaluationMethod('Expanded form');
220
+ textEntryMathPage.steps.selectEvaluationMethod('Expanded form', 5);
221
221
  textEntryMathPage.steps.expandAdditionalSettings();
222
222
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
223
223
  textEntryMathPage.steps.selectModalVisibilityTypeButton();
@@ -429,7 +429,7 @@ describe('Create item page - Text entry math: All or nothing scoring', () => {
429
429
  textEntryMathPage.steps.addResponseArea();
430
430
  textEntryMathPage.steps.allotPoints(20);
431
431
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
432
- textEntryMathPage.steps.selectEvaluationMethod('Factored form');
432
+ textEntryMathPage.steps.selectEvaluationMethod('Factored form', 6);
433
433
  textEntryMathPage.steps.expandAdditionalSettings();
434
434
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
435
435
  textEntryMathPage.steps.selectModalVisibilityTypeButton();
@@ -628,7 +628,7 @@ describe('Create item page - Text entry math: All or nothing scoring', () => {
628
628
  textEntryMathPage.steps.addResponseArea();
629
629
  textEntryMathPage.steps.allotPoints(20);
630
630
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
631
- textEntryMathPage.steps.selectEvaluationMethod('Simplified version');
631
+ textEntryMathPage.steps.selectEvaluationMethod('Simplified version', 7);
632
632
  textEntryMathPage.steps.expandAdditionalSettings();
633
633
  textEntryMathPage.steps.selectEquationEditorSectionCategories([equationEditorCategoriesAndSymbols.trig.displayName, equationEditorCategoriesAndSymbols.greek.displayName, equationEditorCategoriesAndSymbols.calculus.displayName]);
634
634
  textEntryMathPage.steps.selectModalVisibilityTypeButton();
@@ -75,7 +75,7 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
75
75
  });
76
76
 
77
77
  it('When user clicks on \'Add evaluation\' button, then a tab \'Evaluation 2\' should be added in the response accordion', () => {
78
- textEntryMathPage.steps.clickOnAddEvaluationButton();
78
+ textEntryMathPage.steps.clickOnAddEvaluationButton(0);
79
79
  utilities.verifyInnerText(utilities.getNthElement(textEntryMathPage.evaluationTab(), 1), 'Evaluation 2');
80
80
  utilities.verifyElementCount(textEntryMathPage.evaluationTab(), 2);
81
81
  utilities.verifyElementVisibilityState(utilities.getNthElement(textEntryMathPage.evaluationTab(), 1), 'visible');
@@ -90,7 +90,7 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
90
90
  textEntryMathPage.tests.verifyEvaluationTabEvaluationMethodContainers();
91
91
 
92
92
  it('User should be able to add another evaluation method for the response using \'Add evaluation\' button and the name for this new evaluation tab should be \'Evaluation 3\'', () => {
93
- textEntryMathPage.steps.clickOnAddEvaluationButton();
93
+ textEntryMathPage.steps.clickOnAddEvaluationButton(1);
94
94
  utilities.verifyInnerText(utilities.getNthElement(textEntryMathPage.evaluationTab(), 2), 'Evaluation 3');
95
95
  utilities.verifyElementCount(textEntryMathPage.evaluationTab(), 3);
96
96
  });
@@ -105,7 +105,7 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
105
105
 
106
106
  it('When user selects a new evaluation method in \'Evaluation 2\' tab and switches to \'Evaluation 1\' tab then in \'Evaluation 1\' tab the previously selected evaluation method should persist', () => {
107
107
  textEntryMathPage.steps.navigateToEvaluationTab(1);
108
- textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[4].name);
108
+ textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[4].name, 4);
109
109
  textEntryMathPage.steps.navigateToEvaluationTab(0);
110
110
  textEntryMathPage.steps.verifyEvaluationMethodActiveState(evaluationMethods[1].name);
111
111
  });
@@ -262,10 +262,10 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
262
262
  textEntryMathPage.steps.verifyCustomSettingsAccordionIsCollapsed();
263
263
  });
264
264
 
265
- evaluationMethods.forEach((evaluationMethod) => {
265
+ evaluationMethods.forEach((evaluationMethod, index) => {
266
266
  it(`When user clicks on the custom settings accordion for ${evaluationMethod.name}, then the custom settings accordion should be expanded`, () => {
267
267
  cy.log(`Pre-step: Selecting ${evaluationMethod.name} evaluation method`);
268
- textEntryMathPage.steps.selectEvaluationMethod(evaluationMethod.name);
268
+ textEntryMathPage.steps.selectEvaluationMethod(evaluationMethod.name, index);
269
269
  textEntryMathPage.steps.clickOnCustomSettingsAccordion();
270
270
  textEntryMathPage.steps.verifyCustomSettingsAccordionIsExpanded();
271
271
  });
@@ -457,7 +457,7 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
457
457
  'fill': css.color.activeButtons
458
458
  });
459
459
  cy.log('Pre-step: Selecting \'Value is equivalent\' evaluation method');
460
- textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[1].name);
460
+ textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[1].name, 1);
461
461
  utilities.verifyCSS(textEntryMathPage.customSettingsCheckboxContainer(customSettingsIds.caseSensitive).find('[class*="MuiFormControlLabel-label"]'), {
462
462
  'color': css.color.checkboxLabel,
463
463
  'font-size': css.fontSize.normal,
@@ -474,7 +474,7 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
474
474
  'font-weight': css.fontWeight.regular,
475
475
  });
476
476
  cy.log('Pre-step: Selecting \'Equivalent structure\' evaluation method');
477
- textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[3].name);
477
+ textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[3].name, 1);
478
478
  utilities.verifyCSS(textEntryMathPage.syntaxLabel(), {
479
479
  'color': css.color.labels,
480
480
  'font-size': css.fontSize.normal,
@@ -501,7 +501,7 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
501
501
  cy.log('Post-step: Collapse dropdown');
502
502
  textEntryMathPage.steps.selectSyntaxDropdownListOption('Number');
503
503
  cy.log('Pre-step: Selecting \'Factored form\' evaluation method');
504
- textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[6].name);
504
+ textEntryMathPage.steps.selectEvaluationMethod(evaluationMethods[6].name, 6);
505
505
  utilities.verifyCSS(textEntryMathPage.typeOfExpressionLabel(), {
506
506
  'color': css.color.labels,
507
507
  'font-size': css.fontSize.normal,
@@ -73,7 +73,7 @@ describe('Create Item page - Text entry math: All or nothing ', () => {
73
73
  textEntryMathWithImagePage.steps.verifyImageIsUploaded();
74
74
  textEntryMathWithImagePage.steps.insertResponseArea(10);
75
75
  textEntryMathWithImagePage.steps.insertResponseArea(40);
76
- textEntryMathWithImagePage.steps.insertResponseArea(80);
76
+ textEntryMathWithImagePage.steps.insertResponseArea(50);
77
77
  textEntryMathWithImagePage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
78
78
  textEntryMathWithImagePage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
79
79
  equationEditorFlyout.steps.clearAll();
@@ -788,14 +788,14 @@ const steps = {
788
788
  audioPlayerPage.audioOverviewInputField()
789
789
  .find('[data-widget="ngie_equation"]')
790
790
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
791
- // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
791
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
792
792
  },
793
793
 
794
794
  verifyEquationInAudioOverviewPreviewTab: () => {
795
795
  audioPlayerPage.audioOverviewPreviewTab()
796
796
  .find('[role="math"]')
797
797
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
798
- // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
798
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
799
799
  },
800
800
 
801
801
  verifyLinkInAudioOverviewInputField: () => {
@@ -897,14 +897,14 @@ const steps = {
897
897
  audioPlayerPage.transcriptInputField()
898
898
  .find('[data-widget="ngie_equation"]')
899
899
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
900
- // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
900
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
901
901
  },
902
902
 
903
903
  verifyEquationInTranscriptPreviewTab: () => {
904
904
  audioPlayerPage.transcriptContentPreviewTab()
905
905
  .find('[role="math"]')
906
906
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
907
- // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
907
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
908
908
  },
909
909
 
910
910
  verifyLinkInTranscriptInputField: () => {
@@ -90,6 +90,23 @@ const steps = {
90
90
  .should('be.visible');
91
91
  },
92
92
 
93
+ /**
94
+ * @description type in the tolerance input field
95
+ * @param {string} text - text to be entered in the input field
96
+ */
97
+ enterTextInToleranceInputField: (text: string) => {
98
+ customSettingsSeparatorComponent.toleranceInputField()
99
+ .type(text);
100
+ },
101
+
102
+ /**
103
+ * @description clear the tolerance input field
104
+ */
105
+ clearTextInToleranceInputField: () => {
106
+ customSettingsSeparatorComponent.toleranceInputField()
107
+ .clear();
108
+ },
109
+
93
110
  /**
94
111
  * Verifies the selected state of decimal separator toggle options.
95
112
  * @param {string} option - The aria-label of the option to be verified.
@@ -221,7 +221,7 @@ const steps = {
221
221
  * @description Select category and enter the equations in equation editor input field
222
222
  * @param {Object[]} responses - An array of objects containing the categoryName and symbolName
223
223
  * @param {string} responses[].categoryName Name of the category
224
- * @param {string} responses[].symbolName Name of the symbol from the selected category
224
+ * @param {string[]} responses[].symbolName Name of the symbol from the selected category
225
225
  */
226
226
  enterEquation: (responses) => {
227
227
  responses.forEach(({ categoryName, symbolName }) => {
@@ -11,7 +11,7 @@ const selectors = {
11
11
  specifyPointsForEachIncorrectDropzoneRadioButton: () => cy.get('input[aria-label*="Specify points for each incorrect"]'),
12
12
 
13
13
  correctAnswersNumeration: () => cy.get('[class*="__AnswerCell"] .answer-numeration-number-box'),
14
- correctAnswersOptions: () => cy.get('[class*="__AnswerWrapper"] .question-text-wrapper'),
14
+ correctAnswersOptions: () => cy.get('[class*="__AnswerWrapper"]'),
15
15
  correctAnswersLabel: () => cy.get('.correct-answers-label'),
16
16
  tickIconWrapper: () => cy.get('.tick-icon-wrapper'),
17
17
  correctAnswerContainer: () => cy.get('.dnd-correct-answer-wrapper'),
@@ -248,6 +248,10 @@ const steps = {
248
248
  utilities.verifyElementDisabledClass(utilities.getNthElement(fillInTheGapsDropdownCommonComponent.dropdownPreviewTab(), dropdownIndex));
249
249
  },
250
250
 
251
+ verifyVisibilityOfCorrectAnswerLabel: ()=>{
252
+ utilities.verifyInnerText(fillInTheGapsOverImageDropdownPage.correctAnswersLabel(), 'Correct answers');
253
+ },
254
+
251
255
  /**
252
256
  * @param {string[]} dropdownOptionsArray Array of dropdown options
253
257
  * @description Verify the options displayed in dropdown
@@ -752,7 +756,7 @@ const tests = {
752
756
  });
753
757
 
754
758
  //Note: the expand and close dropdown does not work hence selecting one option here, the error message appears
755
- it('When user expands and collapses the dropdown without selecting any option, \'Error: Please set a correct answer.\' error message should not be displayed', () => {
759
+ it('When user expands and collapses the dropdown without selecting any option, \'Error: Please set a correct answer.\' error message should be displayed', () => {
756
760
  fillInTheGapsDropdownCommonComponent.steps.selectResponseFromDropdownSpecifyCorrectAnswerSection(0, 'Flower');
757
761
  utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
758
762
  });
@@ -479,7 +479,7 @@ const steps = {
479
479
  utilities.getNthElement(gridQuestionCommonComponent.tableCell(), column)
480
480
  .find('[role="math"]')
481
481
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
482
- // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
482
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
483
483
  });
484
484
  });
485
485
  },
@@ -561,6 +561,23 @@ const steps = {
561
561
  });
562
562
  },
563
563
 
564
+ /**
565
+ * Unselects options in the preview tab.
566
+ * @param {Object} position - The position of the option button.
567
+ * @param {number} position.row - The row index (zero-based) in the preview tab.
568
+ * @param {number} position.column - The column index (zero-based) of the option button in the preview tab.
569
+ */
570
+ unselectOptionsInPreviewTab: ({ row, column }) => {
571
+ gridQuestionCommonComponent.gridPreviewTab().within(() => {
572
+ utilities.getNthElement(gridQuestionCommonComponent.tableRow(), row)
573
+ .within(() => {
574
+ utilities.getNthElement(gridQuestionCommonComponent.optionsButton(), column)
575
+ .click()
576
+ .should('not.have.class', 'selected');
577
+ });
578
+ });
579
+ },
580
+
564
581
  /**
565
582
  * Selects options for all question stems in the preview tab.
566
583
  * @param {Object[]} rowsAndColumns - An array of objects containing row and column indices.
@@ -654,6 +671,29 @@ const steps = {
654
671
  });
655
672
  },
656
673
 
674
+ /**
675
+ * Verifies correct answer responses for multiple rows and columns.
676
+ * @param {Array<{row: number, column: number}>} rowsAndColumns - An array of objects containing row and column indices.
677
+ * @returns {void}
678
+ */
679
+ verifyBlankAnswerResponseCorrectAnswerSection: (rowsAndColumns) => {
680
+ rowsAndColumns.forEach(({ row, column }) => {
681
+ gridQuestionCommonComponent.correctAnswerGrid()
682
+ .within(() => {
683
+ utilities.getNthElement(gridQuestionCommonComponent.tableRow(), row)
684
+ .within(() => {
685
+ utilities.getNthElement(gridQuestionCommonComponent.optionsButton(), column)
686
+ .should('not.have.class', 'selected');
687
+ utilities.getNthElement(gridQuestionCommonComponent.optionsButton(), column)
688
+ .within(() => {
689
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'notExist');
690
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'notExist');
691
+ });
692
+ });
693
+ })
694
+ });
695
+ },
696
+
657
697
  verifyCorrectAnswerSectionNotExists: () => {
658
698
  utilities.verifyElementVisibilityState(gridQuestionCommonComponent.correctAnswersSectionLabel(), 'notExist');
659
699
  },
@@ -183,7 +183,7 @@ const steps = {
183
183
  .eq(index)
184
184
  .find('[data-widget="ngie_equation"]')
185
185
  .should('have.attr', 'aria-label', constants.CKEditorInputFieldEnteredEquationAriaLabel)
186
- // .contains(constants.CKEditorInputFieldEnteredEquationText); ;
186
+ // .contains(constants.CKEditorInputFieldEnteredEquationText);
187
187
  },
188
188
 
189
189
  /**