itemengine-cypress-automation 1.0.340 → 1.0.341

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 (41) hide show
  1. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +84 -0
  2. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/checkAddAlternativeButton.js +33 -0
  3. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +2 -4
  4. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/draggableOptions.js +2 -4
  5. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/editTabBasicSection.js +33 -0
  6. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/headerSection.js +37 -6
  7. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +96 -0
  8. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/checkAddAlternative.js +37 -0
  9. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +4 -6
  10. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabBasicSection.js +47 -0
  11. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/headerSection.js +37 -9
  12. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +12 -0
  13. package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +10 -0
  14. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingAlternatePointsMoreThanCorrectPoints.js +80 -0
  15. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/allOrNothingCorrectPointsMoreThanAlternatePoints.js +30 -0
  16. package/cypress/e2e/ILC/TextSelection/ScoringParagraph/checkScoringLabelBannerAndCorrectAnswerSection.js +110 -0
  17. package/cypress/e2e/ILC/TextSelection/checkAddAlternativeButton.js +46 -0
  18. package/cypress/e2e/ILC/TextSelection/editTabBasicSection.js +57 -0
  19. package/cypress/e2e/ILC/TextSelection/headerSection.js +38 -6
  20. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.js +1 -2
  21. package/cypress/fixtures/constants.js +5 -1
  22. package/cypress/fixtures/theme/ilc.json +2 -0
  23. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +5 -27
  24. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +0 -67
  25. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +0 -66
  26. package/cypress/pages/components/hideExpressionListComponent.js +53 -0
  27. package/cypress/pages/components/index.js +1 -0
  28. package/cypress/pages/components/optionsWrapperComponent.js +1 -1
  29. package/cypress/pages/desmos3DGraphingPage.js +368 -0
  30. package/cypress/pages/desmosGeometryPage.js +308 -0
  31. package/cypress/pages/dragAndDropIntoCategoriesPage.js +26 -6
  32. package/cypress/pages/fillInTheGapsDragAndDropPage.js +1 -68
  33. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +4 -4
  34. package/cypress/pages/imageHighlightPage.js +0 -66
  35. package/cypress/pages/index.js +3 -2
  36. package/cypress/pages/multipleSelectionGridPage.js +1 -68
  37. package/cypress/pages/multipleSelectionPage.js +0 -67
  38. package/cypress/pages/singleSelectionGridPage.js +1 -68
  39. package/cypress/pages/singleSelectionPage.js +0 -67
  40. package/cypress/pages/textSelectionPage.js +25 -6
  41. package/package.json +1 -1
@@ -9,7 +9,6 @@ import { ckEditorLinkComponent } from "../pages/components/ckEditorLinkComponent
9
9
  import { createItemPage } from "./createItemPage";
10
10
  import { selectQuestionResourceToolPage } from "./selectQuestionResourceToolPage";
11
11
  import { audioPlayerPage } from "./audioPlayerPage";
12
- import { dialogBoxBase } from "./dialogBoxBase";
13
12
  const css = Cypress.env('css');
14
13
  const options = ['Pollution caused by treating chemical waste', 'Pollution caused by cement production', 'Pollution caused by methane production', 'Pollution caused by cement and methane production'];
15
14
 
@@ -915,72 +914,6 @@ const tests = {
915
914
  ...ckEditorInsertTableComponent.tests,
916
915
  ...ckEditorInsertImageComponent.tests,
917
916
  ...ckEditorLinkComponent.tests,
918
-
919
- //TODO need to remove once Save as you go is available for all questions
920
- /**
921
- * @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
922
- * in the 'Specify correct answer' section for alternative answers in auto-scored questions.
923
- * @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
924
- * @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
925
- */
926
- verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
927
- it('\'+ Add alternative answer\' button should be present', () => {
928
- utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
929
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
930
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
931
- .verifyPseudoClassBeforeProperty('content', '""');
932
- });
933
-
934
- it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
935
- utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
936
- 'color': css.color.activeButtons,
937
- 'font-size': css.fontSize.default,
938
- 'font-weight': css.fontWeight.regular
939
- });
940
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
941
- .verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
942
- });
943
-
944
- it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in disabled state', () => {
945
- utilities.verifyElementDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
946
- });
947
-
948
- it('CSS of warning popup', { tags: 'css' }, () => {
949
- utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
950
- 'color': css.color.flyoutTitle,
951
- 'font-size': css.fontSize.heading,
952
- 'font-weight': css.fontWeight.semibold
953
- });
954
- utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
955
- 'color': css.color.labels,
956
- 'font-size': css.fontSize.default,
957
- 'font-weight': css.fontWeight.regular
958
- });
959
- utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
960
- 'fill': css.color.closeIcon
961
- });
962
- });
963
-
964
- it('Accessibility of warning popup', { tags: 'a11y' }, () => {
965
- cy.checkAccessibility(dialogBoxBase.dialogBox());
966
- dialogBoxBase.steps.closeWarningPopup();
967
- });
968
- },
969
-
970
- //TODO need to remove once Save as you go is available for all questions
971
- verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
972
- it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then a warning popup should be displayed and on closing the popup, alternative 2 accordion should be in expanded state', () => {
973
- autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
974
- .click();
975
- dialogBoxBase.steps.closeWarningPopup();
976
- //TODO: Need to add error message according to question types
977
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
978
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
979
- .eq(1)
980
- .should('have.attr', 'aria-expanded', 'true');
981
- });
982
- },
983
-
984
917
  verifyPreviewModesAndScoreWhenPointsAndCorrectAnswersIsNotSet: () => {
985
918
  it('When the user has not set correct answer option(s) and alloted points, \'Student view\' radio button should be checked, \'Grading view\' button should not be checked, 0 points should be displayed and no correct or incorrect icons should be displayed in the preview tab', () => {
986
919
  utilities.verifyInnerText(autoScoredScoringPreviewTab.studentViewRadioButtonLabel(), 'Student view');
@@ -2,7 +2,6 @@ import utilities from "../support/helpers/utilities";
2
2
  import { createQuestionBasePage, questionInstructionsComponent, gridQuestionCommonComponent, scoringSectionBaseEditTab, ckEditorToolbar, equationEditorFlyout, autoScoredScoringPreviewTab, correctIncorrectAnswerLabelComponent, autoScoredScoringSectionMultiResponseType, autoScoredStudentViewSettings, specifyRowsAndColumnsComponent, autoScoredSpecifyCorrectAnswerSection, randomizeOptionsComponent, studentViewSettingsLabelComponent, commonComponents, additionalSettingsPanel, additionalSettingsAccessibilitySectionComponent, styleAndLayoutCustomizationAccordionComponent } from "./components";
3
3
  const css = Cypress.env('css');
4
4
  import { createItemPage } from "./createItemPage";
5
- import { dialogBoxBase } from "./dialogBoxBase";
6
5
 
7
6
  const selectors = {
8
7
  ...questionInstructionsComponent,
@@ -180,78 +179,12 @@ const tests = {
180
179
  ...randomizeOptionsComponent.tests,
181
180
  ...studentViewSettingsLabelComponent.tests,
182
181
  ...autoScoredStudentViewSettings.tests,
183
- ...specifyRowsAndColumnsComponent.tests,
182
+ ...specifyRowsAndColumnsComponent.tests,
184
183
  ...commonComponents.tests,
185
184
  ...createQuestionBasePage.tests,
186
185
  ...additionalSettingsPanel.tests,
187
186
  ...additionalSettingsAccessibilitySectionComponent.tests,
188
187
  ...styleAndLayoutCustomizationAccordionComponent.tests,
189
- //TODO need to remove once Save as you go is available for all questions
190
- /**
191
- * @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
192
- * in the 'Specify correct answer' section for alternative answers in auto-scored questions.
193
- * @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
194
- * @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
195
- */
196
- verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
197
- it('\'+ Add alternative answer\' button should be present', () => {
198
- utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
199
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
200
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
201
- .verifyPseudoClassBeforeProperty('content', '""');
202
- });
203
-
204
- it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
205
- utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
206
- 'color': css.color.activeButtons,
207
- 'font-size': css.fontSize.default,
208
- 'font-weight': css.fontWeight.regular
209
- });
210
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
211
- .verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
212
- });
213
-
214
- it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
215
- utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
216
- autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
217
- });
218
-
219
- it('CSS of warning popup', { tags: 'css' }, () => {
220
- utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
221
- 'color': css.color.flyoutTitle,
222
- 'font-size': css.fontSize.heading,
223
- 'font-weight': css.fontWeight.semibold
224
- });
225
- utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
226
- 'color': css.color.labels,
227
- 'font-size': css.fontSize.default,
228
- 'font-weight': css.fontWeight.regular
229
- });
230
- utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
231
- 'fill': css.color.closeIcon
232
- });
233
- });
234
-
235
- it('Accessibility of warning popup', { tags: 'a11y' }, () => {
236
- cy.checkAccessibility(dialogBoxBase.dialogBox());
237
- dialogBoxBase.steps.closeWarningPopup();
238
- });
239
- },
240
-
241
- //TODO need to remove once Save as you go is available for all questions
242
- verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
243
- it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then a warning popup should be displayed and on closing the popup, alternative 2 accordion should be in expanded state', () => {
244
- autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
245
- .click();
246
- dialogBoxBase.steps.closeWarningPopup();
247
- //TODO: Need to add error message according to question types
248
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
249
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
250
- .eq(1)
251
- .should('have.attr', 'aria-expanded', 'true');
252
- });
253
- },
254
-
255
188
  /**
256
189
  * Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
257
190
  * @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
@@ -719,73 +719,6 @@ const tests = {
719
719
  ...autoScoredStudentViewSettings.tests,
720
720
  ...additionalSettingsAccessibilitySectionComponent.tests,
721
721
  ...mcqAdditionalSettingsBase.tests,
722
-
723
- //TODO need to remove once Save as you go is available for all questions
724
- /**
725
- * @description Verifies the behavior of the 'Add alternative answer' button, warning popups, and validation error messages
726
- * in the 'Specify correct answer' section for alternative answers in auto-scored questions.
727
- * @param {string|null} questionType - The type of the question (e.g., 'list ordering'). Pass `null` if not applicable.
728
- * @example - verifyAutoScoredAddAlternativeAnswerButtonAndValidation();
729
- */
730
- verifyAutoScoredAddAlternativeAnswerButtonAndValidation: (questionType = null) => {
731
- it('\'+ Add alternative answer\' button should be present', () => {
732
- utilities.verifyInnerText(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'Add alternative answer');
733
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton(), 'visible');
734
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
735
- .verifyPseudoClassBeforeProperty('content', '""');
736
- });
737
-
738
- it('CSS of \'Add Alternative answer\' button', { tags: 'css' }, () => {
739
- utilities.verifyCSS(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton().find('p'), {
740
- 'color': css.color.activeButtons,
741
- 'font-size': css.fontSize.default,
742
- 'font-weight': css.fontWeight.regular
743
- });
744
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton()
745
- .verifyPseudoClassBeforeProperty('color', css.color.activeButtons);
746
- });
747
-
748
- it('If user has not selected correct answer in the correct accordion, then the Add alternative answer button should be in enabled state', () => {
749
- utilities.verifyElementNotDisabled(autoScoredSpecifyCorrectAnswerSection.alternativeAnswerButton());
750
- autoScoredSpecifyCorrectAnswerSection.steps.clickOnAddAlternativeAnswerButton();
751
- });
752
-
753
- it('CSS of warning popup', { tags: 'css' }, () => {
754
- utilities.verifyCSS(dialogBoxBase.dialogBoxTitle(), {
755
- 'color': css.color.flyoutTitle,
756
- 'font-size': css.fontSize.heading,
757
- 'font-weight': css.fontWeight.semibold
758
- });
759
- utilities.verifyCSS(dialogBoxBase.dialogBoxContent(), {
760
- 'color': css.color.labels,
761
- 'font-size': css.fontSize.default,
762
- 'font-weight': css.fontWeight.regular
763
- });
764
- utilities.verifyCSS(dialogBoxBase.buttonClose().find('svg'), {
765
- 'fill': css.color.closeIcon
766
- });
767
- });
768
-
769
- it('Accessibility of warning popup', { tags: 'a11y' }, () => {
770
- cy.checkAccessibility(dialogBoxBase.dialogBox());
771
- dialogBoxBase.steps.closeWarningPopup();
772
- });
773
- },
774
-
775
- //TODO need to remove once Save as you go is available for all questions
776
- verifyWarningPopupAndAccordionNavigationWhenNoPointsAddedInAlternativeAccordion: () => {
777
- it('When user tries to expand correct accordion when all the mandatory fields are not filled in the alternative accordion, then a warning popup should be displayed and on closing the popup, alternative 2 accordion should be in expanded state', () => {
778
- autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
779
- .click();
780
- dialogBoxBase.steps.closeWarningPopup();
781
- //TODO: Need to add error message according to question types
782
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'exist');
783
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
784
- .eq(1)
785
- .should('have.attr', 'aria-expanded', 'true');
786
- });
787
- },
788
-
789
722
  verifyPreviewModesAndScoreWhenPointsAndCorrectAnswersIsNotSet: () => {
790
723
  it('When the user has not set correct answer option(s) and alloted points, \'Student view\' radio button should be checked, \'Grading view\' button should not be checked, 0 points should be displayed and no correct or incorrect icons should be displayed in the preview tab', () => {
791
724
  utilities.verifyInnerText(autoScoredScoringPreviewTab.studentViewRadioButtonLabel(), 'Student view');
@@ -1216,7 +1216,27 @@ const steps = {
1216
1216
  optionsTextArray.forEach((option, optionIndex) => {
1217
1217
  utilities.verifyInnerText(utilities.getNthElement(textSelectionPage.optionsInputFieldInQuestionPreviewTab(), optionIndex), option);
1218
1218
  });
1219
- }
1219
+ },
1220
+
1221
+ verifyAnswerStatusBannerNotExist: () => {
1222
+ textSelectionPage.correctIncorrectAnswerLabelWrapper()
1223
+ .should('not.exist');
1224
+ },
1225
+
1226
+ verifyAnswerStatusBannerExist: () => {
1227
+ textSelectionPage.correctIncorrectAnswerLabelWrapper()
1228
+ .should('be.visible');
1229
+ },
1230
+
1231
+ verifyCorrectAnswerSectionExist: () => {
1232
+ textSelectionPage.correctAnswerSection()
1233
+ .should('be.visible');
1234
+ },
1235
+
1236
+ verifyCorrectAnswerSectionNotExist: () => {
1237
+ textSelectionPage.correctAnswerSection()
1238
+ .should('not.exist');
1239
+ },
1220
1240
  }
1221
1241
 
1222
1242
  const tests = {
@@ -1257,19 +1277,18 @@ const tests = {
1257
1277
  textSelectionPage.steps.verifySelectedStateOptionInSpecifyCorrectAnswerSection(paragraphTextArray[0], 'blue');
1258
1278
  });
1259
1279
 
1260
- it(`When the user deselects all the selected options in the ${accordionName} accordion, \'Error: Please set a correct answer.\' error message should be thrown along with an error icon on the \'${accordionName}\' accordion`, () => {
1280
+ it(`When the user deselects all the selected options in the ${accordionName} accordion, 'Error: Please set a correct answer.' error message should be thrown along with an error icon on the '${accordionName}' accordion`, () => {
1261
1281
  textSelectionPage.steps.deselectOptionInSpecifyCorrectAnswerSection(paragraphTextArray[0]);
1262
- utilities.verifyElementVisibilityState(textSelectionPage.specifyCorrectAnswerErrorMessage(), 'exist');
1263
- utilities.verifyInnerText(textSelectionPage.specifyCorrectAnswerErrorMessage(), 'Error: Please set a correct answer.');
1282
+ utilities.verifyElementVisibilityState(textSelectionPage.specifyCorrectAnswerErrorMessage(), 'notExist');
1264
1283
  if (accordionName == 'Correct') {
1265
1284
  autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
1266
1285
  .within(() => {
1267
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
1286
+ utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'notExist');
1268
1287
  });
1269
1288
  } else {
1270
1289
  autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
1271
1290
  .within(() => {
1272
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
1291
+ utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'notExist');
1273
1292
  });
1274
1293
  };
1275
1294
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.340",
3
+ "version": "1.0.341",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {