itemengine-cypress-automation 1.0.336 → 1.0.338-12thMarchRegressionFixes-1cd5906.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 (114) hide show
  1. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/editQuestion.smoke.js +94 -0
  2. package/cypress/e2e/ILC/ChartsBar/editQuestion.smoke.js +93 -0
  3. package/cypress/e2e/ILC/ChartsDotsPlot/editQuestion.smoke.js +92 -0
  4. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +84 -0
  5. package/cypress/e2e/ILC/ChartsLine/previewContentsForAllViews.smoke.js +2 -2
  6. package/cypress/e2e/ILC/CkEditorEquationEditor/selectModeEditorBasic.js +1 -1
  7. package/cypress/e2e/ILC/CkEditorInsertImage/insertImageBasicFile.js +1 -1
  8. package/cypress/e2e/ILC/CkEditorInsertImage/upload.js +1 -1
  9. package/cypress/e2e/ILC/CkEditorInsertTable/insertTableEditorBasicFile.js +1 -1
  10. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editQuestion.smoke.js +1 -1
  11. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +12 -9
  12. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/styleAndLayoutCustomizationLayoutProperties.js +2 -1
  13. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +63 -1
  14. package/cypress/e2e/ILC/EssayResponse/editQuestion.smoke.js +1 -1
  15. package/cypress/e2e/ILC/EssayResponseBasic/editQuestion.smoke.js +1 -1
  16. package/cypress/e2e/ILC/EssayResponseMath/editQuestion.smoke.js +1 -1
  17. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/checkScoringLableBannerAndCorrectAnswer.js +84 -0
  18. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/checkAddAlternativeButton.js +33 -0
  19. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +2 -4
  20. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -8
  21. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editQuestion.smoke.js +1 -1
  22. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +32 -2
  23. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +39 -6
  24. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViewInIncompleteAuthoring.smoke.js +119 -0
  25. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +91 -0
  26. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/checkAddAlternativeButton.js +37 -0
  27. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +2 -2
  28. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editQuestion.smoke.js +3 -3
  29. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +36 -2
  30. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +36 -6
  31. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/previewContentsForAllViewsInIncompleteAuthoring.smoke.js +103 -0
  32. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editQuestion.smoke.js +1 -1
  33. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +96 -0
  34. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/checkAddAlternativeButton.js +38 -0
  35. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownOptionsSection.js +1 -1
  36. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editQuestion.smoke.js +2 -2
  37. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +39 -0
  38. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +39 -8
  39. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViews.smoke.js +1 -1
  40. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViewsInIncompleteuthoring.smoke.js +106 -0
  41. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/supportedFileTypes.js +2 -3
  42. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +38 -5
  43. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +88 -0
  44. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +1 -1
  45. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/checkAddAlternative.js +35 -0
  46. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editQuestion.smoke.js +33 -1
  47. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/previewContentsForAllViewsInIncompleteAuthoring.js +97 -0
  48. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -4
  49. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/checkScoringLabelBannerAndCorrectAnswer.js +79 -0
  50. package/cypress/e2e/ILC/FillInTheGapsTextNew/checkAddAlternativeButton.js +32 -0
  51. package/cypress/e2e/ILC/FillInTheGapsTextNew/editQuestion.smoke.js +1 -1
  52. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +30 -2
  53. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +35 -4
  54. package/cypress/e2e/ILC/FillInTheGapsTextNew/previewContentsForAllViewsInIncompleteAuthoring.smoke.js +99 -0
  55. package/cypress/e2e/ILC/GridFill/editQuestion.smoke.js +1 -1
  56. package/cypress/e2e/ILC/ImageHighlight/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +109 -0
  57. package/cypress/e2e/ILC/ImageHighlight/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternatePoints.js +45 -0
  58. package/cypress/e2e/ILC/ImageHighlight/Scoring/checkScoringLableBannerAndCorrectAnswer.js +96 -0
  59. package/cypress/e2e/ILC/ImageHighlight/checkAddAlternativeButton.js +39 -0
  60. package/cypress/e2e/ILC/ImageHighlight/editQuestion.smoke.js +76 -0
  61. package/cypress/e2e/ILC/ImageHighlight/editTabBasicSection.js +46 -0
  62. package/cypress/e2e/ILC/ImageHighlight/headerSection.js +35 -5
  63. package/cypress/e2e/ILC/ImageHighlight/previewContentForAllViewInIncompleteAuthoring.js +118 -0
  64. package/cypress/e2e/ILC/ListOrderingNew/editQuestion.smoke.js +3 -0
  65. package/cypress/e2e/ILC/Matching/editQuestion.smoke.js +1 -1
  66. package/cypress/e2e/ILC/Matching/styleAndLayoutCustomizationLayoutProperties.js +3 -3
  67. package/cypress/e2e/ILC/NumberLine/editQuestion.smoke.js +79 -0
  68. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +5 -5
  69. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/editQuestion.smoke.js +72 -0
  70. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +1 -0
  71. package/cypress/e2e/ILC/NumberLineLabel/editQuestion.smoke.js +80 -0
  72. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +81 -0
  73. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +2 -2
  74. package/cypress/e2e/ILC/ShortTextResponseNew/editQuestion.smoke.js +56 -0
  75. package/cypress/e2e/ILC/ShortTextResponseNew/previewContentsForAllViews.smoke.js +5 -6
  76. package/cypress/e2e/ILC/SingleSelection/editQuestion.smoke.js +1 -1
  77. package/cypress/e2e/ILC/SingleSelection/editTabBasicSection.js +1 -1
  78. package/cypress/e2e/ILC/SingleSelectionGridNew/editQuestion.smoke.js +1 -1
  79. package/cypress/e2e/ILC/TextEntryMath/editQuestion.smoke.js +76 -0
  80. package/cypress/e2e/ILC/TextEntryMathWithImage/editQuestion.smoke.js +92 -0
  81. package/cypress/e2e/ILC/TextEntryMathWithImage/previewTabContentsForAllViews.smoke.js +1 -1
  82. package/cypress/e2e/ILC/TextSelection/editQuestion.smoke.js +0 -3
  83. package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +3 -3
  84. package/cypress/e2e/ILC/chartsDotsPlot/allOrNothingForAllViews.smoke.js +9 -9
  85. package/cypress/e2e/ILC/chartsDotsPlot/gradingViewAndCorrectAnswerView.smoke.js +2 -2
  86. package/cypress/e2e/ILC/chartsDotsPlot/numberLineAxisSettings.js +1 -0
  87. package/cypress/e2e/ILC/chartsDotsPlot/previewContentsForAllViews.smoke.js +1 -1
  88. package/cypress/fixtures/uploadResponseFileType.js +1 -1
  89. package/cypress/pages/chartsBarPage.js +3 -0
  90. package/cypress/pages/chartsDotPlotPage.js +2 -0
  91. package/cypress/pages/chartsLinePage.js +38 -2
  92. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +2 -0
  93. package/cypress/pages/components/browseItemsPage.js +4 -4
  94. package/cypress/pages/components/fillInTheGapsDragAndDropCommonComponents.js +22 -1
  95. package/cypress/pages/components/layoutSectionComponent.js +1 -1
  96. package/cypress/pages/components/optionsWrapperComponent.js +1 -0
  97. package/cypress/pages/components/scoringSectionBaseEditTab.js +2 -1
  98. package/cypress/pages/createItemPage.js +7 -0
  99. package/cypress/pages/drawingResponsePage.js +73 -2
  100. package/cypress/pages/feedbackScalePage.js +2 -0
  101. package/cypress/pages/fillInTheGapsDropdownPage.js +21 -0
  102. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +2 -2
  103. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +22 -0
  104. package/cypress/pages/fillInTheGapsOverImageTextPage.js +22 -0
  105. package/cypress/pages/fillInTheGapsTextPage.js +24 -2
  106. package/cypress/pages/imageHighlightPage.js +37 -2
  107. package/cypress/pages/listOrderingPage.js +4 -2
  108. package/cypress/pages/menuBarPage.js +65 -65
  109. package/cypress/pages/numberLineLabelPage.js +4 -1
  110. package/cypress/pages/numberLinePage.js +2 -0
  111. package/cypress/pages/shortTextResponsePage.js +2 -0
  112. package/cypress/pages/textEntryMathPage.js +7 -3
  113. package/cypress/pages/textEntryMathWithImagePage.js +3 -0
  114. package/package.json +2 -2
@@ -17,6 +17,7 @@ const selectors = {
17
17
  correctAnswerContainer: () => cy.get('.dnd-correct-answer-wrapper'),
18
18
  correctIncorrectAnswerLabel: () => cy.get('[class*="CorrectIncorrectLabel"]'),
19
19
  correctAnswerResponseWrapperWithoutEnumeration: () => cy.get('[class*="CorrectAnswers"] [class*="AnswerStatusIconAndResponseWrapper"]'),
20
+ answerStatusBanner: () => cy.get('[class*="AnswerStatusWrapper"]'),
20
21
 
21
22
  //additional settings
22
23
  enterAriaLabelInputField: () => cy.get('input[aria-label*="Enter ARIA label"]'),
@@ -111,7 +112,27 @@ const steps = {
111
112
  optionsTextArray.forEach((option, optionIndex) => {
112
113
  utilities.verifyTextContent(utilities.getNthElement(fillInTheGapsDragAndDropCommonComponents.optionsInputFieldInQuestionPreviewTab(), optionIndex), option);
113
114
  });
114
- }
115
+ },
116
+
117
+ verifyAnswerStatusBannerNotExist: () => {
118
+ fillInTheGapsDragAndDropCommonComponents.answerStatusBanner()
119
+ .should('not.exist');
120
+ },
121
+
122
+ verifyAnswerStatusBannerExist: () => {
123
+ fillInTheGapsDragAndDropCommonComponents.answerStatusBanner()
124
+ .should('be.visible');
125
+ },
126
+
127
+ verifyCorrectAnswerSectionExist: () => {
128
+ fillInTheGapsDragAndDropCommonComponents.correctAnswerContainer()
129
+ .should('be.visible');
130
+ },
131
+
132
+ verifyCorrectAnswerSectionNotExist: () => {
133
+ fillInTheGapsDragAndDropCommonComponents.correctAnswerContainer()
134
+ .should('not.exist');
135
+ },
115
136
  }
116
137
 
117
138
  export const fillInTheGapsDragAndDropCommonComponents = {
@@ -19,7 +19,7 @@ const selectors = {
19
19
  },
20
20
  widthLabel: () => cy.get('.number-line-layout-options [for="Width (px)"]'),
21
21
  widthInputField: () => cy.get('.number-line-layout-options input[aria-label="Width (px)"]'),
22
- heightLabel: () => cy.get('.number-line-layout-options [aria-labelledby="Height (px)"]'),
22
+ heightLabel: () => cy.get('.number-line-layout-options [for*="Height"]'),
23
23
  heightInputField: () => cy.get('.number-line-layout-options input[aria-label="Height (px)"]'),
24
24
  marginLabel: () => cy.get('.margin-input-wrapper [for="Margin (px)"]'),
25
25
  marginInputField: () => cy.get('.number-line-layout-options input[aria-label="Margin (px)"]'),
@@ -270,6 +270,7 @@ const steps = {
270
270
  for (let i = 0; i < optionFieldsCount; i++) {
271
271
  optionsWrapperComponent.addOptionButton()
272
272
  .click();
273
+ cy.wait(200);
273
274
  };
274
275
  },
275
276
 
@@ -78,8 +78,9 @@ const steps = {
78
78
  selectOptionFromScoringTypeDropdown: (scoringType) => {
79
79
  const convertedString = scoringType.replace(/\b\w/g, (match) => match.toUpperCase());
80
80
  scoringSectionBaseEditTab.scoringTypeDropdownListOptions(convertedString)
81
+ .should('be.visible') // Ensure the dropdown option is visible
81
82
  .click();
82
- cy.wait(2000);
83
+ cy.wait(2000); // Wait for the dropdown to close
83
84
  utilities.verifyElementVisibilityState(commonComponents.dropdownList(), 'notExist');
84
85
  },
85
86
 
@@ -31,6 +31,7 @@ const selectors = {
31
31
  sectionsNumber1Label: () => cy.get('.tablist-numbered-label').eq(0),
32
32
  sectionsNumber2Label: () => cy.get('.tablist-numbered-label').eq(1),
33
33
  noPreviewText: () => cy.get('[class*="__NoPreview"]'),
34
+ buttonEditItemTitle: () => cy.get('[data-at="edit-button"]'),
34
35
  editItemButton: () => cy.get('.column-component-column .icon-pencil'),
35
36
  pointsValue: () => cy.get('[class*="PreviewTabstyles__PointsValue"]'),
36
37
  moreActionsButton: () => cy.get('[class*="MoreActionMenuButton"] [type="button"]'),
@@ -148,6 +149,8 @@ const steps = {
148
149
  enterTitle: (value) => {
149
150
  createItemPage.titleInputField()
150
151
  .type(value);
152
+ createItemPage.titleInputField()
153
+ .blur();
151
154
  },
152
155
 
153
156
  clickOnSubmitButton: () => {
@@ -583,6 +586,10 @@ const steps = {
583
586
  });
584
587
  },
585
588
 
589
+ editItemTitle: () => {
590
+ createItemPage.buttonEditItemTitle()
591
+ },
592
+
586
593
  /**
587
594
  * @param {number} index of the question
588
595
  * @description this function is used to click on edit item button
@@ -77,6 +77,7 @@ const selectors = {
77
77
  previewTabSecondaryOptionPopup: () => cy.get('.extended__drawing-tool .drawing-tool-options__options'),
78
78
  previewTabSecondaryPopup: () => cy.get('.drawing-tool-options__options:visible'),
79
79
  previewTabSecondaryOptionPopupTitle: () => cy.get('.edit-question-preview-wrapper .drawing-tool-options__options .drawing-tool-options__options__label'),
80
+ textColorTitle: () => cy.get('.drawing-tool-options__options__label'),
80
81
  previewTabSecondaryOptionPopupOptions: () => cy.get('.drawing-tool-options__options .drawing-tool-options__options__options-list__button'),
81
82
  previewTabColorPickerLabel: () => cy.get('.drawing-tool-color-picker__label'),
82
83
  colorPalleteSelectedColorLabel: () => cy.get('.drawing-tool-color-picker__selected-color-label'),
@@ -101,6 +102,15 @@ const selectors = {
101
102
  inputTypeFile: () => cy.get('input[type="file"]'),
102
103
  insertImageContainerErrorMessage: () => cy.get('.image-upload__error'),
103
104
 
105
+ //Capture image
106
+ captureImageContainer: () => cy.get('[class="drawing-tool-modal__content Camera"]'),
107
+ captureCancelImageIcon: () => cy.get('button.outlined').contains('Cancel'),
108
+ captureImageButton: () => cy.get('button.contained').contains('Capture'),
109
+ retakeButton: () => cy.get('button.outlined').contains('Retake'),
110
+ saveButton: () => cy.get('button.contained').contains('Save'),
111
+ canvasContainer: () => cy.get('[class*="Camerastyled__CapturingCanvas"]'),
112
+ cameraIsVisible: () => cy.get('.camera-component__video'),
113
+
104
114
  //Characters popup
105
115
  charactersPopupTitle: () => cy.get('[class*="characters__title-container"]'),
106
116
  charactersPopupCloseButton: () => cy.get('[class*="DrawingToolOptionsstyled__ButtonWrapper"]'),
@@ -114,6 +124,8 @@ const selectors = {
114
124
  blankCanvasLabel: () => cy.get('label[aria-label="Blank canvas"]'),
115
125
  blankCanvasRadioButton: () => cy.get('input[aria-label="Blank canvas"]'),
116
126
  imageLabel: () => cy.get('label[aria-label="Image"]'),
127
+ uploadedImage: () => cy.get('[aria-label="Image"]'),
128
+ uploadImageLoader: () => cy.get('[class*="InlineLoaderstyles__LoaderDiv"]'),
117
129
  imageRadioButton: () => cy.get('input[aria-label="Image"]'),
118
130
  patternLabel: () => cy.get('label[aria-label="Pattern"]'),
119
131
  patternRadioButton: () => cy.get('input[aria-label="Pattern"]'),
@@ -124,8 +136,6 @@ const selectors = {
124
136
  aspectRatioButton: () => cy.get('.lock-reset-icon-wrapper button').eq(0),
125
137
  resetDimensionsButton: () => cy.get('.lock-reset-icon-wrapper button').eq(1),
126
138
  uploadLabel: () => cy.get('[class*="SimpleImageUploaderstyles__LabelWrapper"]').eq(0),
127
- uploadedImage: () => cy.get('[aria-label="Image"]'),
128
- uploadImageLoader: () => cy.get('[class*="InlineLoaderstyles__LoaderDiv"]'),
129
139
  fileNameLabel: () => cy.get('[class*="SimpleImageUploaderstyles__LabelWrapper"]').eq(1),
130
140
  fileUploadSection: () => cy.get('.file-input-wrapper'),
131
141
  chooseFileButton: () => cy.get('.choose-file-button'),
@@ -629,6 +639,67 @@ const steps = {
629
639
  utilities.verifyElementVisibilityState(drawingResponsePage.insertImageContainer(), 'notExist');
630
640
  },
631
641
 
642
+ verifyCaptureImageContainerIsVisible: () => {
643
+ utilities.verifyElementVisibilityState(drawingResponsePage.captureImageContainer(), 'visible');
644
+ },
645
+
646
+ verifyCaptureImageContainerNotExist: () => {
647
+ utilities.verifyElementVisibilityState(drawingResponsePage.captureImageContainer(), 'notExist');
648
+ },
649
+
650
+ clickOnCancelIconOfCaptureImage: () => {
651
+ drawingResponsePage.captureCancelImageIcon()
652
+ .should('be.visible')
653
+ .click();
654
+ },
655
+
656
+ clickOnCaptureButtonOfCaptureImage: () => {
657
+ drawingResponsePage.captureImageButton()
658
+ .should('be.visible')
659
+ .click();
660
+ },
661
+
662
+ verifyCaptureImageIsVisible: () => {
663
+ drawingResponsePage.canvasContainer()
664
+ .should('be.visible')
665
+ .within(() => {
666
+ cy.get('img')
667
+ .should('be.visible')
668
+ .and('have.attr', 'src')
669
+ .and('include', 'blob:'); // Ensures the image is captured
670
+ });
671
+ },
672
+
673
+ verifySaveAndRetakeButtonsAreVisible: () => {
674
+ drawingResponsePage.retakeButton()
675
+ .should('be.visible');
676
+ drawingResponsePage.saveButton()
677
+ .should('be.visible');
678
+ },
679
+
680
+ clickOnRetakeButton: () => {
681
+ drawingResponsePage.retakeButton()
682
+ .should('be.visible')
683
+ .click();
684
+ },
685
+
686
+ clickOnSaveButton: () => {
687
+ drawingResponsePage.saveButton()
688
+ .should('be.visible')
689
+ .click();
690
+ },
691
+
692
+ verifyCameraIsVisible: () => {
693
+ drawingResponsePage.cameraIsVisible()
694
+ .should('be.visible');
695
+ },
696
+
697
+ verifyCaptureAndCancelButtonIsVisible: () => {
698
+ drawingResponsePage.captureImageButton()
699
+ .should('be.visible');
700
+ drawingResponsePage.captureCancelImageIcon()
701
+ .should('be.visible');
702
+ },
632
703
  /**
633
704
  * @param {string} fileName name of the file being uploaded
634
705
  * @param {string} fileSize size of the file being uploaded
@@ -739,6 +739,8 @@ const steps = {
739
739
  expandDefaultTextDropdown: () => {
740
740
  feedbackScalePage.defaultTextDropdown()
741
741
  .click();
742
+ cy.wait(500);
743
+ utilities.verifyElementVisibilityState(feedbackScalePage.defaultTextDropdownListOptions(), 'visible');
742
744
  },
743
745
 
744
746
  /**
@@ -40,6 +40,7 @@ const selectors = {
40
40
  alternateAnswerPopupCancelButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(0),
41
41
  alternateAnswerPopupSaveButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(1),
42
42
  selectedAlternateAnswerCountSpecifyCorrectAnswer: () => cy.get('.selected-option-wrapper'),
43
+ answerStatusBanner: () => cy.get('[class*="AnswerStatusWrapper"]'),
43
44
  }
44
45
 
45
46
  const steps = {
@@ -313,6 +314,26 @@ const steps = {
313
314
  .should('not.have.class', 'selected');
314
315
  });
315
316
  },
317
+
318
+ verifyCorrectAnswerSectionNotExist: () => {
319
+ fillInTheGapsDropdownPage.correctAnswerSectionWrapper()
320
+ .should('not.exist');
321
+ },
322
+
323
+ verifyCorrectAnswerSectionExist: () => {
324
+ fillInTheGapsDropdownPage.correctAnswerSectionWrapper()
325
+ .should('exist');
326
+ },
327
+
328
+ verifyAnswerStatusBannerNotExist: () => {
329
+ fillInTheGapsDropdownPage.answerStatusBanner()
330
+ .should('not.exist');
331
+ },
332
+
333
+ verifyAnswerStatusBannerExist: () => {
334
+ fillInTheGapsDropdownPage.answerStatusBanner()
335
+ .should('be.visible');
336
+ },
316
337
  }
317
338
 
318
339
  const tests = {
@@ -1032,13 +1032,13 @@ const steps = {
1032
1032
  break;
1033
1033
  case 'Left':
1034
1034
  fillInTheGapsOverImageDragAndDropPage.optionPanelWrapper()
1035
- .should('have.css', 'width', '143.84375px')
1035
+ .should('have.css', 'width', '145px')
1036
1036
  .and('have.css', 'padding-right', '24px')
1037
1037
  .and('have.css', 'padding-left', '8px')
1038
1038
  break;
1039
1039
  case 'Right':
1040
1040
  fillInTheGapsOverImageDragAndDropPage.optionPanelWrapper()
1041
- .should('have.css', 'width', '143.84375px')
1041
+ .should('have.css', 'width', '145px')
1042
1042
  .and('have.css', 'padding-right', '8px')
1043
1043
  .and('have.css', 'padding-left', '24px')
1044
1044
  break;
@@ -38,6 +38,8 @@ const selectors = {
38
38
  dropdownPointer: () => cy.get('.canvas-pointer-wrapper'),
39
39
  dropdownTextLabel: () => cy.get('.dropdown-list .dropdown-label-text'),
40
40
  dropdownTextLabelCollapsed: () => cy.get('.response-dropdown .dropdown-label-text'),
41
+ answerStatusBanner: () => cy.get('[class*="AnswerStatusWrapper"]'),
42
+ correctAnswerWrapper: () => cy.get('[class*="CorrectAnswerWrapper"]'),
41
43
  }
42
44
 
43
45
  const steps = {
@@ -302,6 +304,26 @@ const steps = {
302
304
  .eq(index)
303
305
  .trigger('mouseout', { force: true });
304
306
  },
307
+
308
+ verifyCorrectAnswerSectionNotExist: () => {
309
+ fillInTheGapsOverImageDropdownPage.correctAnswerWrapper()
310
+ .should('not.exist');
311
+ },
312
+
313
+ verifyCorrectAnswerSectionExist: () => {
314
+ fillInTheGapsOverImageDropdownPage.correctAnswerWrapper()
315
+ .should('exist');
316
+ },
317
+
318
+ verifyAnswerStatusBannerNotExist: () => {
319
+ fillInTheGapsOverImageDropdownPage.answerStatusBanner()
320
+ .should('not.exist');
321
+ },
322
+
323
+ verifyAnswerStatusBannerExist: () => {
324
+ fillInTheGapsOverImageDropdownPage.answerStatusBanner()
325
+ .should('be.visible');
326
+ },
305
327
  }
306
328
 
307
329
  const tests = {
@@ -42,6 +42,8 @@ const selectors = {
42
42
  textContainerWidthInputField: () => cy.get('.dropzone-text-container-dimension [id="Width (px)"]'),
43
43
  textContainerConnectorStyleLabel: () => cy.get('.dropzone-connector-style-label'),
44
44
  responseArea: () => cy.get('.canvas-dropzone'),
45
+ answerStatusBanner: () => cy.get('[class*="AnswerStatusWrapper"]'),
46
+ correctAnswerSectionWrapper: () => cy.get('[class*="label-image-with-text-correct-answer-wrapper"]'),
45
47
  }
46
48
 
47
49
  const steps = {
@@ -327,6 +329,26 @@ const steps = {
327
329
  .attachFile(file);
328
330
  cy.wait(4000);
329
331
  },
332
+
333
+ verifyCorrectAnswerSectionNotExist: () => {
334
+ fillInTheGapsOverImageTextPage.correctAnswerSectionWrapper()
335
+ .should('not.exist');
336
+ },
337
+
338
+ verifyCorrectAnswerSectionExist: () => {
339
+ fillInTheGapsOverImageTextPage.correctAnswerSectionWrapper()
340
+ .should('exist');
341
+ },
342
+
343
+ verifyAnswerStatusBannerNotExist: () => {
344
+ fillInTheGapsOverImageTextPage.answerStatusBanner()
345
+ .should('not.exist');
346
+ },
347
+
348
+ verifyAnswerStatusBannerExist: () => {
349
+ fillInTheGapsOverImageTextPage.answerStatusBanner()
350
+ .should('be.visible');
351
+ },
330
352
  }
331
353
 
332
354
  const tests = {
@@ -23,7 +23,9 @@ const selectors = {
23
23
  ...figCommonStyleAndLayoutComponent,
24
24
  setForAllTextContainersLabel: () => cy.get('[data-ngie-testid="set-for-all-text-containers-checkbox"] .MuiFormControlLabel-label'),
25
25
  setForAllTextContainersCheckbox: () => cy.get('[data-ngie-testid="set-for-all-text-containers-checkbox"] input'),
26
- correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.no-numeration-correct-answers-wrapper .preview-question-text-wrapper')
26
+ correctAnswerSectionWithoutEnumerationWrapper: () => cy.get('.no-numeration-correct-answers-wrapper .preview-question-text-wrapper'),
27
+ answerStatusBanner: () => cy.get('[class*="AnswerStatusWrapper"]'),
28
+ correctAnswerSectionWrapper: () => cy.get('[class*="label-image-with-text-correct-answer-wrapper"]'),
27
29
  }
28
30
 
29
31
  const steps = {
@@ -142,7 +144,27 @@ const steps = {
142
144
  .should('have.attr', 'value', correctAnswer);
143
145
  });
144
146
  });
145
- }
147
+ },
148
+
149
+ verifyCorrectAnswerSectionNotExist: () => {
150
+ fillInTheGapsTextPage.correctAnswerSectionWrapper()
151
+ .should('not.exist');
152
+ },
153
+
154
+ verifyCorrectAnswerSectionExist: () => {
155
+ fillInTheGapsTextPage.correctAnswerSectionWrapper()
156
+ .should('exist');
157
+ },
158
+
159
+ verifyAnswerStatusBannerNotExist: () => {
160
+ fillInTheGapsTextPage.answerStatusBanner()
161
+ .should('not.exist');
162
+ },
163
+
164
+ verifyAnswerStatusBannerExist: () => {
165
+ fillInTheGapsTextPage.answerStatusBanner()
166
+ .should('be.visible');
167
+ },
146
168
  }
147
169
 
148
170
  const tests = {
@@ -1,5 +1,6 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { additionalSettingsAccessibilitySectionComponent, additionalSettingsPanel, autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, backgroundImageUploadComponent, commonComponents, createQuestionBasePage, enableOuterBorderComponent, gradingViewEnumerationComponent, imageActionsComponent, imageCanvasComponent, questionInstructionsComponent, scoringSectionBaseEditTab, showAvailableOptionsToStudents, showStudentMaximumNumberOfPossibleSelections, singleMultipleSelectionModeComponent, colorPopupComponent } from "./components"
2
+ import { additionalSettingsAccessibilitySectionComponent, additionalSettingsPanel, autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, backgroundImageUploadComponent, commonComponents, createQuestionBasePage, enableOuterBorderComponent, gradingViewEnumerationComponent, imageActionsComponent, imageCanvasComponent, questionInstructionsComponent, scoringSectionBaseEditTab, showAvailableOptionsToStudents, showStudentMaximumNumberOfPossibleSelections, singleMultipleSelectionModeComponent, colorPopupComponent } from "./components";
3
+ import { createItemPage } from "./createItemPage";
3
4
  const css = Cypress.env('css');
4
5
  let imageWidth = 768;
5
6
  let imageHeight = 432;
@@ -104,6 +105,8 @@ const selectors = {
104
105
  ariaLabelInputField: () => cy.get('input[placeholder*="Enter ARIA label"]'),
105
106
  inputFieldNumeration: () => cy.get('.MuiInputAdornment-root'),
106
107
  ariaLabelSectionLabel: () => cy.get('[class*="styles__LabelWrapper"]').contains('ARIA'),
108
+ addAlternativeAnswerButton: () => cy.get('[class*="AddAlternateAnswer"] button'),
109
+ correctAnswerSection: () => cy.get('[class*="CorrectAnswerTextWrapper"]'),
107
110
  }
108
111
 
109
112
  const steps = {
@@ -122,6 +125,8 @@ const steps = {
122
125
  ...showStudentMaximumNumberOfPossibleSelections.steps,
123
126
  ...additionalSettingsPanel.steps,
124
127
  ...gradingViewEnumerationComponent.steps,
128
+ ...createItemPage.steps,
129
+ ...commonComponents.steps,
125
130
 
126
131
  //Specify possible options
127
132
  verifyToolbarDisabled: () => {
@@ -518,7 +523,7 @@ const steps = {
518
523
 
519
524
  /**
520
525
  * @param {number} index of highlight region
521
- * @description this functions highlights a region in set correct answer section
526
+ * @description this functions removes highlight for a region in set correct answer section
522
527
  */
523
528
  removeHighlightOfARegionInSetCorrectAnswerSection: (index) => {
524
529
  imageHighlightPage.specifyCorrectAnswerSectionHighlight()
@@ -1501,6 +1506,36 @@ const steps = {
1501
1506
  imageHighlightPage.popupBorderStyleButtons().eq(2)
1502
1507
  .should('have.attr', 'aria-pressed', 'true');
1503
1508
  },
1509
+
1510
+ checkAlternativeButtonDisabled: () => {
1511
+ imageHighlightPage.addAlternativeAnswerButton()
1512
+ .should('be.disabled');
1513
+ },
1514
+
1515
+ checkAlternativeButtonEnabled: () => {
1516
+ imageHighlightPage.addAlternativeAnswerButton()
1517
+ .should('be.enabled');
1518
+ },
1519
+
1520
+ verifyAnswerStatusBannerNotExist: () => {
1521
+ imageHighlightPage.correctIncorrectStatusMessageText()
1522
+ .should('not.exist');
1523
+ },
1524
+
1525
+ verifyAnswerStatusBannerExist: () => {
1526
+ imageHighlightPage.correctIncorrectStatusMessageText()
1527
+ .should('be.visible');
1528
+ },
1529
+
1530
+ verifyCorrectAnswerSectionExist: () => {
1531
+ imageHighlightPage.correctAnswerSection()
1532
+ .should('be.visible');
1533
+ },
1534
+
1535
+ verifyCorrectAnswerSectionNotExist: () => {
1536
+ imageHighlightPage.correctAnswerSection()
1537
+ .should('not.exist');
1538
+ },
1504
1539
  }
1505
1540
 
1506
1541
  const tests = {
@@ -3,6 +3,7 @@ import utilities from "../support/helpers/utilities";
3
3
  import { autoScoredScoringPreviewTab, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, autoScoredStudentViewSettings, commonComponents, correctIncorrectAnswerLabelComponent, createQuestionBasePage, optionsWrapperComponent, questionInstructionsComponent, randomizeOptionsComponent, scoringSectionBaseEditTab, studentViewSettingsLabelComponent, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, enableOuterBorderComponent, styleAndLayoutCustomizationAccordionComponent } from "./components"
4
4
  import { listOrderingCommonStyleAndLayoutComponent } from "./components/listOrderingCommonStyleAndLayoutComponent";
5
5
  import { createItemPage } from "./createItemPage";
6
+ import { dialogBoxBase } from "./dialogBoxBase";
6
7
  const options = ['sprout', 'plant', 'flower', 'seed'];
7
8
  const css = Cypress.env('css');
8
9
 
@@ -149,7 +150,8 @@ const steps = {
149
150
  ...enableOuterBorderComponent.steps,
150
151
  ...styleAndLayoutCustomizationAccordionComponent.steps,
151
152
  ...listOrderingCommonStyleAndLayoutComponent.steps,
152
- ...createItemPage.steps,
153
+ ...createItemPage.steps,
154
+ ...dialogBoxBase.steps,
153
155
 
154
156
  /**
155
157
  * Verifies the border value of specify correct answer section options
@@ -251,7 +253,7 @@ const steps = {
251
253
  break;
252
254
  case 'none':
253
255
  dragIcon
254
- .should('not.exist');
256
+ .should('not.be.visible');
255
257
  break;
256
258
  default:
257
259
  throw new Error('Invalid drag handle option');
@@ -1,66 +1,66 @@
1
1
  import { browseItemsPage, createQuestionBasePage } from "./components";
2
- import { createItemPage } from "./createItemPage";
3
-
4
- const selectors = {
5
- ...browseItemsPage,
6
- ...createItemPage,
7
- itemBankDataApiAccordion: () => cy.get('[role="button"]').contains('Item Bank'),
8
- fetchItemsButton: () => cy.get('[role="button"]').contains('Fetch Items'),
9
- browseItemsButton: () => cy.get('[role="button"]').contains('Browse Items'),
10
- exampleRequestBody: () => cy.get('pre[class="body-param__example microlight"]'),
11
- exampleResponseValue: () => cy.get('pre[class="example microlight"]'),
12
- exampleResponseBody: () => cy.get('pre[class="microlight"]'),
13
- responseStatus: () => cy.get('[class="response-col_status"]'),
14
- responseDescription: () => cy.get('.response-col_description__inner'),
15
- buttonTryItOut: () => cy.get('[class="btn try-out__btn"]'),
16
- responseTextArea: () => cy.get('textarea[class="body-param__text"]'),
17
- buttonExecute: () => cy.get('.execute'),
18
- requestLoader: () => cy.get('.loading-container')
19
- }
20
-
21
- const steps = {
22
- ...browseItemsPage.steps,
23
- ...createItemPage.steps,
24
- ...createQuestionBasePage.steps,
25
- expandItemBankDataApiAccordion: () => {
26
- menuBarPage.itemBankDataApiAccordion()
27
- .click()
28
- .parents('[role="button"]')
29
- .should('have.attr', 'aria-expanded', 'true');
30
- },
31
-
32
- clickFetchItemsButton: () => {
33
- menuBarPage.fetchItemsButton()
34
- .click()
35
- .parents('[role="button"]')
36
- .should('have.class', 'Mui-selected');
37
- cy.url()
38
- .should('eq', Cypress.config().baseUrl + '/item-engine/data-api/item-bank/fetch-items');
39
- },
40
-
41
- tryItOut: () => {
42
- menuBarPage.buttonTryItOut()
43
- .click();
44
- },
45
-
46
- enterTextInSampleRequestBody: (text) => {
47
- menuBarPage.responseTextArea()
48
- .clear()
49
- .fill(text);
50
- },
51
-
52
- execute: () => {
53
- menuBarPage.buttonExecute()
54
- .click();
55
- },
56
-
57
- navigateToBrowseItems: () => {
58
- menuBarPage.browseItemsButton()
59
- .click()
60
- }
61
- }
62
-
63
- export const menuBarPage = {
64
- ...selectors,
65
- steps
66
- }
2
+ import { createItemPage } from "./createItemPage";
3
+
4
+ const selectors = {
5
+ ...browseItemsPage,
6
+ ...createItemPage,
7
+ itemBankDataApiAccordion: () => cy.get('[role="button"]').contains('Item Bank'),
8
+ fetchItemsButton: () => cy.get('[role="button"]').contains('Fetch Items'),
9
+ browseItemsButton: () => cy.get('[role="button"]').contains('Browse Items'),
10
+ exampleRequestBody: () => cy.get('pre[class="body-param__example microlight"]'),
11
+ exampleResponseValue: () => cy.get('pre[class="example microlight"]'),
12
+ exampleResponseBody: () => cy.get('pre[class="microlight"]'),
13
+ responseStatus: () => cy.get('[class="response-col_status"]'),
14
+ responseDescription: () => cy.get('.response-col_description__inner'),
15
+ buttonTryItOut: () => cy.get('[class="btn try-out__btn"]'),
16
+ responseTextArea: () => cy.get('textarea[class="body-param__text"]'),
17
+ buttonExecute: () => cy.get('.execute'),
18
+ requestLoader: () => cy.get('.loading-container')
19
+ }
20
+
21
+ const steps = {
22
+ ...browseItemsPage.steps,
23
+ ...createItemPage.steps,
24
+ ...createQuestionBasePage.steps,
25
+ expandItemBankDataApiAccordion: () => {
26
+ menuBarPage.itemBankDataApiAccordion()
27
+ .click()
28
+ .parents('[role="button"]')
29
+ .should('have.attr', 'aria-expanded', 'true');
30
+ },
31
+
32
+ clickFetchItemsButton: () => {
33
+ menuBarPage.fetchItemsButton()
34
+ .click()
35
+ .parents('[role="button"]')
36
+ .should('have.class', 'Mui-selected');
37
+ cy.url()
38
+ .should('eq', Cypress.config().baseUrl + '/item-engine/data-api/item-bank/fetch-items');
39
+ },
40
+
41
+ tryItOut: () => {
42
+ menuBarPage.buttonTryItOut()
43
+ .click();
44
+ },
45
+
46
+ enterTextInSampleRequestBody: (text) => {
47
+ menuBarPage.responseTextArea()
48
+ .clear()
49
+ .fill(text);
50
+ },
51
+
52
+ execute: () => {
53
+ menuBarPage.buttonExecute()
54
+ .click();
55
+ },
56
+
57
+ navigateToBrowseItems: () => {
58
+ menuBarPage.browseItemsButton()
59
+ .click()
60
+ }
61
+ }
62
+
63
+ export const menuBarPage = {
64
+ ...selectors,
65
+ steps
66
+ }
@@ -1,6 +1,7 @@
1
1
  import constants from '../fixtures/constants';
2
2
  import utilities from '../support/helpers/utilities';
3
3
  import { createQuestionBasePage, questionInstructionsComponent, scoringSectionBaseEditTab, ckEditorToolbar, equationEditorFlyout, autoScoredScoringPreviewTab, autoScoredStudentViewSettings, numberLineCommonComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, commonComponents, studentViewSettingsLabelComponent, randomizeOptionsComponent, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, toolSettingsComponent, layoutSectionComponent } from './components';
4
+ import { createItemPage } from './createItemPage';
4
5
  const css = Cypress.env('css');
5
6
  const tolerance = 6.24;
6
7
 
@@ -57,6 +58,8 @@ const steps = {
57
58
  ...commonComponents.steps,
58
59
  ...layoutSectionComponent.steps,
59
60
  ...createQuestionBasePage.steps,
61
+ ...createItemPage.steps,
62
+
60
63
  navigateToLabelNumberLineTab: () => {
61
64
  numberLineLabelPage.labelNumberLineTab()
62
65
  .click();
@@ -823,7 +826,7 @@ const steps = {
823
826
  let containerHeight = $element[0].clientHeight;
824
827
  graphHeight = graphHeight - containerHeight - 32;
825
828
  const originY = graphHeight / 2 - tolerance / 2;
826
- const yPixel = originY - coordinate * ((graphHeight - tolerance) / range);
829
+ const yPixel = originY - y * ((graphHeight - tolerance) / range);
827
830
  cy.get(`.ngie-accordion .ngie-jxgbox svg ellipse[cy*="${Math.floor(yPixel)}"]:visible`)
828
831
  .should('not.exist');
829
832
  });
@@ -1,5 +1,6 @@
1
1
  import utilities from '../support/helpers/utilities';
2
2
  import { createQuestionBasePage, toolsAndControlsComponent, questionInstructionsComponent, resetPopupComponent, scoringSectionBaseEditTab, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, commonComponents, autoScoredScoringSectionMultiResponseType, toolSettingsComponent, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, autoScoredStudentViewSettings, randomizeOptionsComponent, studentViewSettingsLabelComponent, defaultToolDropdown, layoutSectionComponent, numberLineCommonComponent } from './components';
3
+ import { createItemPage } from './createItemPage';
3
4
  import { dialogBoxBase } from './dialogBoxBase';
4
5
  const css = Cypress.env('css');
5
6
  const range = 22.18;
@@ -76,6 +77,7 @@ const steps = {
76
77
  ...defaultToolDropdown.steps,
77
78
  ...numberLineCommonComponent.steps,
78
79
  ...layoutSectionComponent.steps,
80
+ ...createItemPage.steps,
79
81
 
80
82
  /**
81
83
  * This function selects tool options