itemengine-cypress-automation 1.0.343-IEI-5600-IEI-5708-9440b5e.0 → 1.0.343-IEI-5600-IEI-5708-25494c0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  3. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  4. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  5. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  6. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  7. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
  8. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  9. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +1 -0
  10. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  11. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +72 -0
  12. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  13. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  14. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  15. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  16. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  17. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  18. package/cypress/e2e/ILC/Graphing/headerSection.js +37 -4
  19. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  20. package/cypress/e2e/ILC/GridFill/headerSection.js +3 -3
  21. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  22. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  23. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  24. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  25. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  26. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  27. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  28. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +2 -1
  29. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  30. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  31. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  32. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  33. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  34. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  35. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  36. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  37. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  38. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  39. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  40. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  41. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  42. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  43. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  44. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  45. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  46. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  47. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  48. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  49. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  50. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  51. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  52. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  53. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  54. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  55. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  56. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  57. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  58. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  59. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  60. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  61. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +73 -0
  62. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  63. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  64. package/cypress/e2e/ILC/NumberLine/headerSection.js +34 -4
  65. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  66. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  67. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  68. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  69. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  70. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  71. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -4
  72. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  73. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  74. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  75. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  76. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  77. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  78. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  79. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  80. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  81. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  82. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  83. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  84. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  85. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  86. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  87. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  88. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  89. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  90. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  91. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  92. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  93. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  94. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  95. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  96. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  97. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  98. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  99. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  100. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  101. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  102. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  103. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +1 -1
  104. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  105. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  106. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  107. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  108. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  109. package/cypress/pages/chartsBarPage.js +20 -0
  110. package/cypress/pages/components/createQuestionBasePage.js +7 -0
  111. package/cypress/pages/components/desmosToolComponent.js +1 -1
  112. package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
  113. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  114. package/cypress/pages/desmosGeometryPage.js +184 -4
  115. package/cypress/pages/graphingPage.js +26 -4
  116. package/cypress/pages/gridFillPage.js +16 -6
  117. package/cypress/pages/listOrderingPage.js +32 -1
  118. package/cypress/pages/matchingPage.js +26 -7
  119. package/cypress/pages/numberLineLabelPage.js +26 -0
  120. package/cypress/pages/numberLinePage.js +15 -0
  121. package/cypress/pages/textEntryMathPage.js +21 -0
  122. package/cypress/pages/uploadResponsePage.js +2 -1
  123. package/cypress/pages/videoResponsePage.js +3 -0
  124. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import utilities from "../support/helpers/utilities";
2
2
  import { questionInstructionsComponent, createQuestionBasePage, scoringSectionBaseEditTab, autoScoredScoringPreviewTab, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, commonComponents, backgroundImageUploadComponent, imageCanvasComponent, opacityComponent, autoScoredScoringSectionMultiResponseType, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, toolsAndControlsComponent, resetPopupComponent, defaultToolDropdown } from "./components";
3
+ import { createItemPage } from "./createItemPage";
3
4
  const css = Cypress.env('css');
4
5
 
5
6
  const selectors = {
@@ -262,6 +263,7 @@ const steps = {
262
263
  ...toolsAndControlsComponent.steps,
263
264
  ...resetPopupComponent.steps,
264
265
  ...defaultToolDropdown.steps,
266
+ ...createItemPage.steps,
265
267
 
266
268
  //Edit tab
267
269
  checkPatternBackground: () => {
@@ -1767,7 +1769,27 @@ const steps = {
1767
1769
  verifyAcceptRepeatedPointsToggleChecked: () => {
1768
1770
  graphingPage.acceptRepeatedPointsToggle()
1769
1771
  .should('have.attr', 'aria-pressed', 'true');
1770
- }
1772
+ },
1773
+
1774
+ verifyAnswerStatusBannerNotExist: () => {
1775
+ graphingPage.correctIncorrectStatusMessageText()
1776
+ .should('not.exist');
1777
+ },
1778
+
1779
+ verifyAnswerStatusBannerExist: () => {
1780
+ graphingPage.correctIncorrectStatusMessageText()
1781
+ .should('be.visible');
1782
+ },
1783
+
1784
+ verifyCorrectAnswerSectionExist: () => {
1785
+ graphingPage.correctAnswerLabel()
1786
+ .should('be.visible');
1787
+ },
1788
+
1789
+ verifyCorrectAnswerSectionNotExist: () => {
1790
+ graphingPage.correctAnswerLabel()
1791
+ .should('not.exist');
1792
+ },
1771
1793
  }
1772
1794
 
1773
1795
  const tests = {
@@ -1806,12 +1828,12 @@ const tests = {
1806
1828
  graphingPage.steps.verifyPointsPlottedOnSpecifyCorrectAnswerSection([{ x: 0, xRange: 20, y: 1, yRange: 20 }, { x: 0, xRange: 20, y: 2, yRange: 20 }]);
1807
1829
  });
1808
1830
 
1809
- it(`When the user resets the graph in the ${accordionName} accordion, error message not should be thrown`, () => {
1831
+ it(`When the user resets the graph in the ${accordionName} accordion, error message should not be thrown along with an error icon on the '${accordionName}' accordion`, () => {
1810
1832
  graphingPage.graphControlOptionSpecifyCorrectAnswer('Reset')
1811
1833
  .click();
1812
1834
  graphingPage.resetPopupConfirmResetButton()
1813
1835
  .click();
1814
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist')
1836
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
1815
1837
  if (accordionName == 'Correct') {
1816
1838
  autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
1817
1839
  .within(() => {
@@ -1825,7 +1847,7 @@ const tests = {
1825
1847
  };
1826
1848
  });
1827
1849
 
1828
- it('User should be able to plot on the graph', () => {
1850
+ it('When the user plots on the graph then the error message should disappear', () => {
1829
1851
  graphingPage.steps.selectGraphToolOptionSpecifyCorrectAnswer('Circle');
1830
1852
  graphingPage.steps.plotPointsOnGraphSpecifyCorrectAnswerSection([{ x: 0, xRange: 20, y: 1, yRange: 20 }, { x: 0, xRange: 20, y: 2, yRange: 20 }]);
1831
1853
  graphingPage.steps.verifyPointsPlottedOnSpecifyCorrectAnswerSection([{ x: 0, xRange: 20, y: 1, yRange: 20 }, { x: 0, xRange: 20, y: 2, yRange: 20 }]);
@@ -174,7 +174,8 @@ const selectors = {
174
174
  correctAnswerLabel: () => cy.get('[class*="GridFillResponsestyles__CorrectAnswerLabel"]'),
175
175
  warningMessageContainer: () => cy.get('.disabled-wrapper-cls'),
176
176
  warningMessage: () => cy.get('.disabled-wrapper-cls [class*="DisabledTextWrapper"]'),
177
- resetButton: () => cy.get('[class*="reset-color-wrapper"] button')
177
+ resetButton: () => cy.get('[class*="reset-color-wrapper"] button'),
178
+ scoringTypeLabelPreviewTab: () => cy.get('[class*="ScoringPreviewBandstyles__ScoreWrapper"]'),
178
179
  }
179
180
 
180
181
  const steps = {
@@ -2850,6 +2851,15 @@ const steps = {
2850
2851
  scoringSectionBaseEditTab.pointsInputField()
2851
2852
  .eq(0)
2852
2853
  .should('have.value', points)
2854
+ },
2855
+
2856
+ /**
2857
+ * @param {String} ScoringType - Scoring Type to check label with.
2858
+ * @description - It will check the parameter scoring type string with the scoring type on top left of tab.
2859
+ */
2860
+ checkScoringLabel: (scoringType) => {
2861
+ autoScoredScoringPreviewTab.scoringTypeLabelPreviewTab()
2862
+ .should('have.text', scoringType);
2853
2863
  }
2854
2864
  }
2855
2865
 
@@ -2917,16 +2927,15 @@ const tests = {
2917
2927
  'background-color': css.color.gridCellHoverStateBg
2918
2928
  });
2919
2929
  utilities.hoverAwayFromElement(utilities.getNthElement(gridFillPage.cellInSpecifyCorrectAnswerSection(), 9));
2920
- utilities.triggerMouseout(utilities.getNthElement(gridFillPage.cellInSpecifyCorrectAnswerSection(), 9));
2921
2930
  });
2922
2931
 
2923
2932
  it('User should be able to select the cells of the grid by clicking on them', () => {
2924
2933
  gridFillPage.steps.selectCellSpecifyCorrectAnswerSection(0, 0);
2925
2934
  });
2926
2935
 
2927
- it(`When user deselect all the cells in the grid in the ${accordionName} accordion, error message and error icons should not be displayed on \'${accordionName}\' accordion`, () => {
2936
+ it(`When user deselect all the cells in the grid in the ${accordionName} accordion, \'Error: Please set a correct answer.\' error message should not be displayed \'${accordionName}\' accordion`, () => {
2928
2937
  gridFillPage.steps.deselectCellSpecifyCorrectAnswerSection(0, 0);
2929
- gridFillPage.steps.verifyErrorMessageIsNotDisplayed();
2938
+ commonComponents.steps.verifyErrorMessageIsNotDisplayed();
2930
2939
  if (accordionName == 'Correct') {
2931
2940
  autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
2932
2941
  .within(() => {
@@ -2980,9 +2989,10 @@ const tests = {
2980
2989
  utilities.verifyInputFieldValue(gridFillPage.cellShadeCountInputField(), '6');
2981
2990
  });
2982
2991
 
2983
- it(`When user clears the value in \'Cell shade count\' input field, then error message should not be thrown along with an error icon on the \'${accordionName}\' accordion`, () => {
2992
+ it(`When user clears the value in \'Cell shade count\' input field, then \'Error: Please set a correct answer.\' error message should be thrown along with an error icon on the \'${accordionName}\' accordion`, () => {
2984
2993
  gridFillPage.steps.clearCellShadeCountInputField();
2985
- gridFillPage.steps.verifyErrorMessageIsNotDisplayed();
2994
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible')
2995
+ utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Please set a correct answer.');
2986
2996
  });
2987
2997
 
2988
2998
  it('CSS of \'Cell shade count\' input field error message', { tags: 'css' }, () => {
@@ -40,6 +40,7 @@ const selectors = {
40
40
  questionDropdownBorderPreviewTab: () => cy.get('[class*="ListOrderingResponsestyles__DroppableDiv"]'),
41
41
  //grading view and correct answer view
42
42
  optionGradingView: () => cy.get('[class*="DraggableItemsWrapper"] [class*="OptionTextWrapper"]'),
43
+ correctIncorrectStatusMessageText: () => cy.get('[class*="AnswerStatusText"]'),
43
44
  optionWrapperGradingView: () => cy.get('[class*="DraggableItemsWrapper"] [class*="OptionsWrapper"]'),
44
45
  //Orientation and layout
45
46
  orderingLayoutLabel: () => cy.get('.list-ordering-order-layout .options-label'),
@@ -105,6 +106,7 @@ const selectors = {
105
106
  optionOrientationSeparateList: () => cy.get('[class*="ClozeWithDragAndDropstyles__DraggableItemsGrid"]'),
106
107
  specifyCorrectAnswerSectionMyListLabel: () => cy.get('[class*="ReorderAsSeparatestyles__TitleContainer"]'),
107
108
  outerBorderPreviewSeparateList: () => cy.get('[class*="ReorderAsSeparatestyles__ReorderSeparateWrapper"]'),
109
+ emptyDropzoneList: () => cy.get('[class*="ClozeWithDragAndDropstyles__PlaceHolderDiv"]:not(:has(*))'),
108
110
 
109
111
  //Style and layout
110
112
  optionsLabel: () => cy.get('.draggable-options-label'),
@@ -1532,6 +1534,15 @@ const steps = {
1532
1534
  .click();
1533
1535
  },
1534
1536
 
1537
+ clickAndResetDropOptionSeperateList: (optionsText) => {
1538
+ listOrderingPage.dropzoneSeperateList()
1539
+ .contains(optionsText)
1540
+ .click();
1541
+ listOrderingPage.emptyDropzoneList()
1542
+ .first()
1543
+ .click();
1544
+ },
1545
+
1535
1546
  clickAndUnDropOptionSeperateList: (optionsText) => {
1536
1547
  listOrderingPage.dropzoneSeperateList()
1537
1548
  .contains(optionsText)
@@ -1761,7 +1772,27 @@ const steps = {
1761
1772
  optionsTextArray.forEach((option, optionIndex) => {
1762
1773
  utilities.verifyTextContent(utilities.getNthElement(listOrderingPage.optionsInputFieldInQuestionPreviewTab(), optionIndex * 2), option);
1763
1774
  });
1764
- }
1775
+ },
1776
+
1777
+ verifyAnswerStatusBannerNotExist: () => {
1778
+ listOrderingPage.correctIncorrectStatusMessageText()
1779
+ .should('not.exist');
1780
+ },
1781
+
1782
+ verifyAnswerStatusBannerExist: () => {
1783
+ listOrderingPage.correctIncorrectStatusMessageText()
1784
+ .should('be.visible');
1785
+ },
1786
+
1787
+ verifyCorrectAnswerSectionExist: () => {
1788
+ listOrderingPage.correctAnswersLabel()
1789
+ .should('be.visible');
1790
+ },
1791
+
1792
+ verifyCorrectAnswerSectionNotExist: () => {
1793
+ listOrderingPage.correctAnswersLabel()
1794
+ .should('not.exist');
1795
+ },
1765
1796
  }
1766
1797
 
1767
1798
  const tests = {
@@ -194,6 +194,7 @@ const selectors = {
194
194
  connectorLineTypeLabel: () => cy.get('[class*="__SubSectionLabel"]').eq(2),
195
195
  connectorLine: () => cy.get('[class*="ClozeWithDragAndDropstyles__ShowIconWrapper"]:visible'),
196
196
  optionsInputFieldInQuestionPreviewTab: () => cy.get('.draggable-selected-item'),
197
+ correctAnswerSection: () => cy.get('[class*=CorrectAnswerWrapperDND]'),
197
198
  }
198
199
 
199
200
  const steps = {
@@ -2648,7 +2649,27 @@ const steps = {
2648
2649
  optionsTextArray.forEach((option, optionIndex) => {
2649
2650
  utilities.verifyTextContent(utilities.getNthElement(matchingPage.optionsInputFieldInQuestionPreviewTab(), optionIndex), option);
2650
2651
  });
2651
- }
2652
+ },
2653
+
2654
+ verifyAnswerStatusBannerNotExist: () => {
2655
+ matchingPage.correctIncorrectAnswerLabel()
2656
+ .should('not.exist');
2657
+ },
2658
+
2659
+ verifyAnswerStatusBannerExist: () => {
2660
+ matchingPage.correctIncorrectAnswerLabel()
2661
+ .should('be.visible');
2662
+ },
2663
+
2664
+ verifyCorrectAnswerSectionExist: () => {
2665
+ matchingPage.correctAnswerSection()
2666
+ .should('be.visible');
2667
+ },
2668
+
2669
+ verifyCorrectAnswerSectionNotExist: () => {
2670
+ matchingPage.correctAnswerSection()
2671
+ .should('not.exist');
2672
+ },
2652
2673
  }
2653
2674
 
2654
2675
  const tests = {
@@ -2760,7 +2781,7 @@ const tests = {
2760
2781
  .eq(inputFieldIndex)
2761
2782
  .click()
2762
2783
  .blur();
2763
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
2784
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'notExist');
2764
2785
  });
2765
2786
 
2766
2787
  it('User should be able to enter text in options input field', () => {
@@ -3061,14 +3082,13 @@ const tests = {
3061
3082
  matchingPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection([{ optionText: 'Petals', dropzoneIndex: 0 }]);
3062
3083
  });
3063
3084
 
3064
- 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`, () => {
3085
+ it(`When the user has removed all the options from the dropzone in the ${accordionName} accordion, should not be thrown any error in '${accordionName}' accordion`, () => {
3065
3086
  matchingPage.steps.clickAndDropOptionInOptionsContainerInSpecifyCorrectAnswerSection('Petals');
3066
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible')
3067
- utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Please set a correct answer.');
3087
+ commonComponents.steps.verifyErrorMessageIsNotDisplayed();
3068
3088
  if (accordionName == 'Correct') {
3069
3089
  autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
3070
3090
  .within(() => {
3071
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
3091
+ utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'notExist');
3072
3092
  });
3073
3093
  } else {
3074
3094
  autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
@@ -3078,7 +3098,6 @@ const tests = {
3078
3098
  };
3079
3099
  });
3080
3100
 
3081
- autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredCorrectAnswerErrorMessageCSSAndA11y();
3082
3101
 
3083
3102
  it('CSS of the dropzone border', { tags: 'css' }, () => {
3084
3103
  utilities.verifyCSS(matchingPage.dropzoneSpecifyCorrectAnswerSection().eq(0), {
@@ -36,6 +36,7 @@ const selectors = {
36
36
  draggableLabelsPreviewTab: () => cy.get('[class*="question-preview-wrapper"] .label-tool'),
37
37
  labelContainerPreviewTab: () => cy.get('[class*="question-preview-wrapper"] .items-container'),
38
38
  numberLinePointPreviewTab: () => cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox').eq(0).find('svg ellipse[display="inline"]:visible'),
39
+ correctIncorrectStatusMessageText: () => cy.get('[class*="NumberLinestyles__CorrectIncorrectWrapper"]'),
39
40
 
40
41
  //Correct answer section
41
42
  numberLineCorrectAnswerSection: () => cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox svg').eq(2),
@@ -296,6 +297,17 @@ const steps = {
296
297
  numberLineLabelPage.labelContainerSpecifyCorrectAnswer()
297
298
  .click({ force: true });
298
299
  },
300
+ /**
301
+ * This function clicks and drops the label back in the container for previewTab
302
+ * @param {string} label to be clicked and dropped
303
+ */
304
+ clickAndDropLabelInContainerPreviewTab: (label) => {
305
+ numberLineLabelPage.draggableLabelsPreviewTab()
306
+ .contains(label)
307
+ .click();
308
+ numberLineLabelPage.labelContainerPreviewTab()
309
+ .click({ force: true });
310
+ },
299
311
 
300
312
  /**
301
313
  * This function verifies plotted points on the number line on the Edit tab.
@@ -641,6 +653,20 @@ const steps = {
641
653
  utilities.verifyElementVisibilityState(numberLineLabelPage.numberLineCorrectAnswerSection(), 'notExist');
642
654
  },
643
655
 
656
+ verifyCorrectAnswerSectionExist: () => {
657
+ utilities.verifyElementVisibilityState(numberLineLabelPage.numberLineCorrectAnswerSection(), 'exist');
658
+ },
659
+
660
+ verifyAnswerStatusBannerNotExist: () => {
661
+ numberLineLabelPage.correctIncorrectStatusMessageText()
662
+ .should('not.exist');
663
+ },
664
+
665
+ verifyAnswerStatusBannerExist: () => {
666
+ numberLineLabelPage.correctIncorrectStatusMessageText()
667
+ .should('be.visible');
668
+ },
669
+
644
670
  /**
645
671
  * @param {number} points - The points to be allotted.
646
672
  * @description - Allots points in the scoring section.
@@ -56,6 +56,7 @@ const selectors = {
56
56
  return cy.get('[class*="question-preview-wrapper"] [class*="ControlsWrapper"] button')
57
57
  }
58
58
  },
59
+ correctIncorrectStatusMessageText: () => cy.get('[class*="NumberLinestyles__CorrectIncorrectWrapper"]'),
59
60
 
60
61
  //Correct answer section
61
62
  numberLineCorrectAnswerSection: () => cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox svg:visible').eq(1),
@@ -758,6 +759,20 @@ const steps = {
758
759
  utilities.verifyElementVisibilityState(numberLinePage.numberLineCorrectAnswerSection(), 'notExist');
759
760
  },
760
761
 
762
+ verifyCorrectAnswerSectionExist: () => {
763
+ utilities.verifyElementVisibilityState(numberLinePage.numberLineCorrectAnswerSection(), 'exist');
764
+ },
765
+
766
+ verifyAnswerStatusBannerNotExist: () => {
767
+ numberLinePage.correctIncorrectStatusMessageText()
768
+ .should('not.exist');
769
+ },
770
+
771
+ verifyAnswerStatusBannerExist: () => {
772
+ numberLinePage.correctIncorrectStatusMessageText()
773
+ .should('be.visible');
774
+ },
775
+
761
776
  /**
762
777
  * @param {("correct" | "incorrect")} answerStatus - The status of the answer.
763
778
  * @description Verifies the visibility and content of the correct/incorrect answer label block.
@@ -1385,6 +1385,26 @@ const steps = {
1385
1385
  expandAndFocusInResponseAnswerInputFieldSpecifyCorrectAnswerSection: (index) => {
1386
1386
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(index);
1387
1387
  textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(index);
1388
+ },
1389
+
1390
+ verifyAnswerStatusBannerNotExist: () => {
1391
+ textEntryMathPage.correctIncorrectStatusMessageText()
1392
+ .should('not.exist');
1393
+ },
1394
+
1395
+ verifyAnswerStatusBannerExist: () => {
1396
+ textEntryMathPage.correctIncorrectStatusMessageText()
1397
+ .should('be.visible');
1398
+ },
1399
+
1400
+ verifyCorrectAnswerSectionExist: () => {
1401
+ textEntryMathPage.correctAnswersLabel()
1402
+ .should('be.visible');
1403
+ },
1404
+
1405
+ verifyCorrectAnswerSectionNotExist: () => {
1406
+ textEntryMathPage.correctAnswersLabel()
1407
+ .should('not.exist');
1388
1408
  }
1389
1409
  }
1390
1410
 
@@ -1402,6 +1422,7 @@ const tests = {
1402
1422
  ...additionalSettingsAccessibilitySectionComponent.tests,
1403
1423
  ...equationEditorSectionCommonComponent.tests,
1404
1424
  ...styleAndLayoutCustomizationAccordionComponent.tests,
1425
+ ...createQuestionBasePage.tests,
1405
1426
  /**
1406
1427
  * Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
1407
1428
  * @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
@@ -1,5 +1,5 @@
1
1
  import { commonComponents, questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, additionalSettingsPanel, autoScoredScoringPreviewTab, studentViewSettingsLabelComponent, additionalSettingsAccessibilitySectionComponent, autoScoredStudentViewSettings } from "./components";
2
- import { dialogBoxBase } from ".";
2
+ import { createItemPage, dialogBoxBase } from ".";
3
3
  import utilities from "../support/helpers/utilities";
4
4
  import { supportedFileType } from "../fixtures/uploadResponseFileType";
5
5
  const css = Cypress.env('css');
@@ -106,6 +106,7 @@ const steps = {
106
106
  ...additionalSettingsPanel.steps,
107
107
  ...commonComponents.steps,
108
108
  ...autoScoredScoringPreviewTab.steps,
109
+ ...createItemPage.steps,
109
110
 
110
111
  /**
111
112
  * @param {number} maxValue value of maximum number of files
@@ -366,6 +366,7 @@ const steps = {
366
366
  .clear()
367
367
  videoResponsePage.maxRecordingDurationInputField()
368
368
  .type(recordingLength)
369
+ cy.wait(500) // Added this wait to ensure the default value updates correctly.
369
370
  videoResponsePage.maxRecordingDurationInputField()
370
371
  .blur();
371
372
  cy.wait(1000)
@@ -396,6 +397,8 @@ const steps = {
396
397
  clearMaximumRecordingDurationInputField: () => {
397
398
  videoResponsePage.maxRecordingDurationInputField()
398
399
  .clear()
400
+ cy.wait(500) // Added this wait to ensure the default value updates correctly.
401
+ videoResponsePage.maxRecordingDurationInputField()
399
402
  .blur();
400
403
  },
401
404
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.343-IEI-5600-IEI-5708-9440b5e.0",
3
+ "version": "1.0.343-IEI-5600-IEI-5708-25494c0.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {