itemengine-cypress-automation 1.0.154 → 1.0.155

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/studentViewSettings.js +1 -1
  2. package/cypress/e2e/ILC/DesmosGraphing/additionalSettings.js +5 -5
  3. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/allOrNothingBasicForGroupedOptionsLayout.js +2 -2
  4. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +4 -4
  5. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perCorrectOptionAlternativePointsGreaterThanCorrectPoints.js +4 -4
  6. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perCorrectOptionCorrectPointsEqualToAlternativePoints.js +1 -1
  7. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/perCorrectOptionMinimumAndPenaltyScoring.js +1 -1
  8. package/cypress/e2e/ILC/EssayResponse/previewEditTable.js +6 -6
  9. package/cypress/e2e/ILC/EssayResponse/previewHyperlink.js +2 -3
  10. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/partialDifferentWeightsBasic.js +1 -0
  11. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/clickAndDrop.js +34 -29
  12. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/draggableOptions.js +2 -0
  13. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +1 -1
  14. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +1 -0
  15. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/dropdownOptionsSection.js +4 -1
  16. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/editTabBasicSection.js +1 -1
  17. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/headerSection.js +2 -0
  18. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/specifyCorrectAnswerSection.js +1 -1
  19. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +2 -2
  20. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +1 -1
  21. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/minimumScoringPenaltyPointsAndRoundingDropdown.js +2 -2
  22. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -0
  23. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/additionalSettingsForDropdowns.js +7 -7
  24. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +1 -0
  25. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/checkAnswerFunctionalityForAllViews.smoke.js +1 -0
  26. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownOptionsSection.js +20 -8
  27. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +2 -2
  28. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +4 -0
  29. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/specifyCorrectAnswerSection.js +1 -0
  30. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +3 -3
  31. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +5 -4
  32. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +4 -0
  33. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/setLimitSection.js +5 -2
  34. package/cypress/e2e/ILC/FillInTheGapsTextNew/additionalSettingsForAnswerInputFields.js +2 -2
  35. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +1 -1
  36. package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabScoringSection.js +4 -3
  37. package/cypress/e2e/ILC/FillInTheGapsTextNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -0
  38. package/cypress/e2e/ILC/FillInTheGapsTextNew/specialCharactersSection.js +0 -8
  39. package/cypress/e2e/ILC/GeogebraActivity/additionalSettings.js +1 -1
  40. package/cypress/e2e/ILC/Graphing/addBackgroundShapesSection.js +39 -35
  41. package/cypress/e2e/ILC/Graphing/additionalSettingsBasic.js +1 -1
  42. package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +8 -6
  43. package/cypress/e2e/ILC/GridFill/customizeLayoutFillColor.js +475 -0
  44. package/cypress/e2e/ILC/GridFill/customizeLayoutFillImageBackgroundImage.js +669 -0
  45. package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +1 -1
  46. package/cypress/e2e/ILC/GridFill/editTabScoringSection.js +0 -11
  47. package/cypress/e2e/ILC/GridFill/gridLayoutContents.js +204 -0
  48. package/cypress/e2e/ILC/GridFill/gridLayoutEditTabFunctionality.js +229 -0
  49. package/cypress/e2e/ILC/GridFill/gridLayoutPreviewTabFunctionality.js +219 -0
  50. package/cypress/e2e/ILC/GridFill/minimumScoringPenaltyPointsAndRoundingDropdown.js +2 -0
  51. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +2 -2
  52. package/cypress/e2e/ILC/GridFill/specifyCorrectAnswerSection.js +0 -2
  53. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +1 -1
  54. package/cypress/e2e/ILC/Matching/draggableOptions.js +1 -1
  55. package/cypress/e2e/ILC/Matching/headerSection.js +82 -0
  56. package/cypress/e2e/ILC/Matching/specifyCorrectAnswerSection.js +93 -0
  57. package/cypress/e2e/ILC/MultipleSelection/blockCreateItem.js +2 -2
  58. package/cypress/e2e/ILC/MultipleSelection/editTabScoringSection.js +3 -0
  59. package/cypress/e2e/ILC/MultipleSelection/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
  60. package/cypress/e2e/ILC/MultipleSelection/multipleSelectionBasicAccessibility.js +8 -10
  61. package/cypress/e2e/ILC/MultipleSelection/specifyCorrectAnswerSection.js +3 -3
  62. package/cypress/e2e/ILC/MultipleSelection/studentViewSettings.js +16 -25
  63. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/manuallyAndNonScored.js +140 -0
  64. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +403 -0
  65. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +363 -0
  66. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +393 -0
  67. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +377 -0
  68. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialEqualWeightsBasic.js +1 -1
  69. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +341 -0
  70. package/cypress/e2e/ILC/MultipleSelectionGridNew/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +373 -0
  71. package/cypress/e2e/ILC/Ruler/rulerEditTabBasicsSection.js +0 -1
  72. package/cypress/e2e/ILC/ShortTextResponseNew/conditionalCheckboxes.js +27 -8
  73. package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +15 -34
  74. package/cypress/e2e/ILC/ShortTextResponseNew/responseAnswersAndAcceptedStudentInput.js +13 -15
  75. package/cypress/e2e/ILC/ShortTextResponseNew/specifyCorrectAnswerSection.js +4 -4
  76. package/cypress/e2e/ILC/SimpleCalculator/editTabFunctionality.js +4 -2
  77. package/cypress/e2e/ILC/SingleSelection/blockCreateItem.js +2 -2
  78. package/cypress/e2e/ILC/SingleSelection/specifyCorrectAnswerSection.js +3 -3
  79. package/cypress/e2e/ILC/SingleSelection/studentViewSettings.js +1 -1
  80. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +183 -0
  81. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +185 -0
  82. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +263 -0
  83. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/manuallyAndNonScored.js +140 -0
  84. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +233 -0
  85. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +205 -0
  86. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +233 -0
  87. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +214 -0
  88. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/partialEqualWeightsBasic.js +1 -1
  89. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +183 -0
  90. package/cypress/e2e/ILC/SingleSelectionGridNew/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +213 -0
  91. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +21 -17
  92. package/cypress/e2e/ILC/TextEntryMath/editTabScoringSection.js +1 -1
  93. package/cypress/e2e/ILC/TextEntryMath/minimumScoringPenaltyPointsAndRoundingDropdown.js +25 -25
  94. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +20 -17
  95. package/cypress/e2e/ILC/TextEntryMathWithImage/backgroundImageAndCanvasProperties.js +2 -2
  96. package/cypress/e2e/ILC/UploadResponse/manuallyAndNonScoredScoring.js +2 -3
  97. package/cypress/e2e/ILC/UploadResponse/uploadResponseAdditionalSettings.js +3 -3
  98. package/cypress/e2e/ILC/UploadResponse/uplodResponsePreviewUploadedFileProperties.js +2 -2
  99. package/cypress/fixtures/fillColorDefaultProperties.js +35 -0
  100. package/cypress/fixtures/theme/ilc.json +2 -1
  101. package/cypress/fixtures/uploads/sampleVirus.zip +0 -0
  102. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -3
  103. package/cypress/pages/components/autoScoredStudentViewSettings.js +1 -1
  104. package/cypress/pages/components/backgroundImageUploadComponent.js +4 -1
  105. package/cypress/pages/components/colorPopupComponent.js +6 -3
  106. package/cypress/pages/components/commonComponents.js +1 -1
  107. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +4 -3
  108. package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +47 -12
  109. package/cypress/pages/components/gridQuestionCommonComponent.js +0 -81
  110. package/cypress/pages/components/imageCanvasComponent.js +10 -8
  111. package/cypress/pages/components/listSortingAndOrderingBase.js +1 -1
  112. package/cypress/pages/components/questionInputFieldComponent.js +1 -1
  113. package/cypress/pages/components/questionInstructionsComponent.js +1 -1
  114. package/cypress/pages/dragAndDropIntoCategoriesPage.js +1 -1
  115. package/cypress/pages/essayResponsePage.js +4 -4
  116. package/cypress/pages/fillInTheGapsDragAndDropPage.js +34 -23
  117. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +0 -1
  118. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +26 -4
  119. package/cypress/pages/fillInTheGapsOverImageTextPage.js +0 -29
  120. package/cypress/pages/graphingPage.js +26 -16
  121. package/cypress/pages/gridFillPage.js +1610 -90
  122. package/cypress/pages/matchingPage.js +164 -20
  123. package/cypress/pages/multipleSelectionGridPage.js +82 -2
  124. package/cypress/pages/multipleSelectionPage.js +7 -2
  125. package/cypress/pages/rulerPage.js +3 -8
  126. package/cypress/pages/shortTextResponsePage.js +13 -0
  127. package/cypress/pages/simpleCalculatorPage.js +8 -0
  128. package/cypress/pages/singleSelectionGridPage.js +58 -2
  129. package/cypress/pages/textEntryMathPage.js +58 -11
  130. package/cypress/pages/uploadResponsePage.js +4 -2
  131. package/package.json +1 -1
  132. package/cypress/e2e/ILC/MultipleSelection/multipleSelectionAdditionalSettings.js +0 -835
  133. package/cypress/e2e/ILC/SingleSelection/singleSelectionAdditionalSettings.js +0 -469
@@ -1,4 +1,5 @@
1
1
  import utilities from "../../support/helpers/utilities";
2
+ import { dialogBoxBase } from "../dialogBoxBase";
2
3
  import { acceptedStudentInputComponent } from "./acceptedStudentInputComponent";
3
4
  import { autoScoredScoringSectionMultiResponseType } from "./autoScoredScoringSectionMultiResponseType";
4
5
  import { autoScoredSpecifyCorrectAnswerSection } from "./autoScoredSpecifyCorrectAnswerSection";
@@ -343,7 +344,8 @@ const steps = {
343
344
  */
344
345
  addTextInAnswerInputFieldsPreviewTab: (responseIndex, responseText) => {
345
346
  utilities.getNthElement(fillInTheGapsTextCommonComponent.answerInputFieldPreviewTab(), responseIndex)
346
- .type(responseText);
347
+ .type(responseText)
348
+ .blur();
347
349
  },
348
350
 
349
351
  verifyEnableSpecialCharactersCheckboxUnchecked: () => {
@@ -392,6 +394,34 @@ const steps = {
392
394
  .click();
393
395
  },
394
396
 
397
+ /**
398
+ * Verify custom special characters displayed in special characters popup in preview tab
399
+ * @param {string[]} customSpecialCharacters Array of custom special characters
400
+ */
401
+ verifyCustomSpecialCharactersInSpecialCharactersPopupPreviewTab: (customSpecialCharacters) => {
402
+ dialogBoxBase.dialogBox()
403
+ .within(() => {
404
+ customSpecialCharacters.forEach((customSpecialCharacter, index) => {
405
+ utilities.verifyInnerText(fillInTheGapsTextCommonComponent.specialCharactersCustomSymbolsPreviewTab().eq(index), `${customSpecialCharacter}`);
406
+ utilities.verifyElementVisibilityState(fillInTheGapsTextCommonComponent.specialCharactersCustomSymbolsPreviewTab().eq(index), 'visible');
407
+ });
408
+ utilities.verifyElementCount(fillInTheGapsTextCommonComponent.specialCharactersCustomSymbolsPreviewTab(), `${customSpecialCharacters.length}`);
409
+ });
410
+ },
411
+
412
+ /**
413
+ * Click on custom special character symbol in special characters popup in preview tab
414
+ * @param {string} customSpecialCharacterSymbol custom special character symbol
415
+ */
416
+ clickOnCustomSpecialCharacterSymbolInSpecialCharactersPopupPreviewTab: (customSpecialCharacterSymbol) => {
417
+ dialogBoxBase.dialogBox()
418
+ .within(() => {
419
+ fillInTheGapsTextCommonComponent.specialCharactersCustomSymbolsPreviewTab()
420
+ .contains(customSpecialCharacterSymbol)
421
+ .click();
422
+ });
423
+ },
424
+
395
425
  /**
396
426
  * @description Verify response accordion is collapsed in specify correct answer section
397
427
  * @param {number} responseIndex index of response accordion
@@ -987,7 +1017,7 @@ const tests = {
987
1017
 
988
1018
  verifyMaximumCharacterLimitWarningConditionsSpecifyCorrectAnswerSection: () => {
989
1019
  it('When the user reaches the character limit, then the warning message \'Maximum 10 characters have been entered\' should be displayed', () => {
990
- fillInTheGapsTextCommonComponent.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: 'pots' }]);
1020
+ fillInTheGapsTextCommonComponent.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: 'Flowerpots' }]);
991
1021
  fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: 'Flowerpots' }])
992
1022
  fillInTheGapsTextCommonComponent.steps.verifyLimitReachedWarningMessageExist('Maximum 10 characters have been entered.');
993
1023
  });
@@ -1089,7 +1119,7 @@ const tests = {
1089
1119
  });
1090
1120
 
1091
1121
  it('The user should not be able to enter characters more than the maximum character limit and warning message should persist', () => {
1092
- fillInTheGapsTextCommonComponent.steps.addTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'From' }]);
1122
+ fillInTheGapsTextCommonComponent.steps.addTextInAnswerInputFieldsPreviewTab(0, 'From');
1093
1123
  fillInTheGapsTextCommonComponent.steps.verifyTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'Flowerpots' }])
1094
1124
  fillInTheGapsTextCommonComponent.steps.verifyLimitReachedWarningMessageExist('Maximum 10 characters have been entered.');
1095
1125
  });
@@ -1101,8 +1131,8 @@ const tests = {
1101
1131
  });
1102
1132
 
1103
1133
  it('When the user reaches the maximum character limit, then the warning message \'Maximum 10 characters have been entered\' should be displayed and on focusing out of the answer input field, the warning message should disappear', () => {
1104
- fillInTheGapsTextCommonComponent.steps.addTextInAnswerInputFieldsPreviewTab('s');
1105
- fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: 'Flowerpots' }])
1134
+ fillInTheGapsTextCommonComponent.steps.addTextInAnswerInputFieldsPreviewTab(0, 's');
1135
+ fillInTheGapsTextCommonComponent.steps.verifyTextInAnswerInputFieldsPreviewTab([{ responseIndex: 0, responseText: 'Flowerpots' }])
1106
1136
  fillInTheGapsTextCommonComponent.steps.verifyLimitReachedWarningMessageExist('Maximum 10 characters have been entered.');
1107
1137
  fillInTheGapsTextCommonComponent.steps.focusOutOfResponseAnswerInputFieldPreviewTab(0);
1108
1138
  fillInTheGapsTextCommonComponent.steps.verifyLimitReachedWarningMessageNotExist();
@@ -1111,7 +1141,7 @@ const tests = {
1111
1141
 
1112
1142
  verifyMinimumCharacterLimitWarningConditionsPreviewTab: () => {
1113
1143
  it('When the minimum character limit is set as 0, then on focusing out of the answer input field, no warning message should be displayed', () => {
1114
- fillInTheGapsTextCommonComponent.steps.focusInAndFocusOutOfResponseAnswerInputFieldPreviewTab();
1144
+ fillInTheGapsTextCommonComponent.steps.focusInAndFocusOutOfResponseAnswerInputFieldPreviewTab(0);
1115
1145
  fillInTheGapsTextCommonComponent.steps.verifyLimitReachedWarningMessageNotExist();
1116
1146
  });
1117
1147
 
@@ -1174,6 +1204,8 @@ const tests = {
1174
1204
  commonComponents.steps.verifyErrorMessageIsNotDisplayed();
1175
1205
  });
1176
1206
 
1207
+ autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredPointsErrorMessageWhenPointsFieldIsEmpty(accordionName);
1208
+
1177
1209
  it('\'Accepted student input\' label, menu and its options - \'Text\', \'Number\', \'Integer\' should be displayed and \'Text\' option should be active', () => {
1178
1210
  utilities.verifyInnerText(acceptedStudentInputComponent.acceptedStudentInputLabel(), 'Accepted student input');
1179
1211
  utilities.verifyElementVisibilityState(acceptedStudentInputComponent.acceptedStudentInputLabel(), 'visible');
@@ -1185,8 +1217,6 @@ const tests = {
1185
1217
  fillInTheGapsTextCommonComponent.steps.collapseResponseAccordionSpecifyCorrectAnswer(0);
1186
1218
  });
1187
1219
 
1188
- autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredPointsErrorMessageWhenPointsFieldIsEmpty(accordionName);
1189
-
1190
1220
  it(`CSS of ${accordionName} accordion contents`, { tags: 'css' }, () => {
1191
1221
  utilities.verifyCSS(utilities.getNthElement(fillInTheGapsTextCommonComponent.responseAccordionLabel(), 0), {
1192
1222
  'color': css.color.text,
@@ -1426,8 +1456,10 @@ const tests = {
1426
1456
  fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: 'Hi23(^^)' }]);
1427
1457
  });
1428
1458
 
1429
- it('When user selects \'Number\' in accepted student input, then text inside the answer input field should only include numbers part from the previously entered input', () => {
1459
+ it('When user selects \'Number\' in accepted student input, then text inside the answer input field should be removed and user should be able to include numbers in the input field', () => {
1430
1460
  acceptedStudentInputComponent.steps.selectAcceptedStudentInputType(0, 'Number');
1461
+ fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '' }]);
1462
+ fillInTheGapsTextCommonComponent.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: '23' }]);
1431
1463
  fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '23' }]);
1432
1464
  });
1433
1465
 
@@ -1451,8 +1483,10 @@ const tests = {
1451
1483
  fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '29.54' }]);
1452
1484
  });
1453
1485
 
1454
- it('When user selects \'Integer\' in accepted student input, then text inside the answer input field should only include whole numbers part from the previously entered input', () => {
1486
+ it('When user selects \'Integer\' in accepted student input, then text inside the answer input field should be removed and user should be able to include numbers', () => {
1455
1487
  acceptedStudentInputComponent.steps.selectAcceptedStudentInputType(0, 'Integer');
1488
+ fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '' }]);
1489
+ fillInTheGapsTextCommonComponent.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: '2954' }]);
1456
1490
  fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '2954' }]);
1457
1491
  });
1458
1492
 
@@ -1471,9 +1505,10 @@ const tests = {
1471
1505
  fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '44' }]);
1472
1506
  });
1473
1507
 
1474
- it('When user selects \'Text\' in accepted student input again, then answer input field should contain text from previously added input', () => {
1508
+ it('When user selects \'Text\' in accepted student input again, then answer input field should be removed and user should be able to enter text in input field', () => {
1475
1509
  acceptedStudentInputComponent.steps.selectAcceptedStudentInputType(0, 'Text');
1476
- fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '44' }]);
1510
+ fillInTheGapsTextCommonComponent.steps.verifyTextInResponseAccordionAnswerInputField([{ responseIndex: 0, responseText: '' }]);
1511
+ fillInTheGapsTextCommonComponent.steps.enterTextInAnswerInputFieldsSpecifyCorrectAnswerSection([{ responseIndex: 0, responseText: 'Text' }]);
1477
1512
  });
1478
1513
 
1479
1514
  it('When user adds alternate answer input field, then accepted student input should be applied on both the response answer input fields in the response accordion', () => {
@@ -677,87 +677,6 @@ const tests = {
677
677
 
678
678
  });
679
679
  },
680
-
681
- /**
682
- * Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
683
- * @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
684
- * @example - verifySpecifyCorrectAnswerAccordionContentsAndFunctionality('Correct');
685
- */
686
- verifySpecifyCorrectAnswerAccordionContentsAndFunctionality: (accordionName) => {
687
- it(`The user should be able to check an option in the ${accordionName} accordion`, () => {
688
- gridQuestionCommonComponent.steps.setAnswerInSpecifyCorrectAnswerSection({ row: 1, column: 0 });
689
- });
690
-
691
- it(`When the user has unchecked all the options in the ${accordionName} accordion, \'Error: Please set a correct answer.\' error message should be thrown along with an error icon on the \'${accordionName}\' accordion`, () => {
692
- gridQuestionCommonComponent.steps.uncheckOptionInSpecifyCorrectAnswerSection({ row: 1, column: 0 });
693
- utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible')
694
- utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Please set a correct answer.');
695
- if (accordionName == 'Correct') {
696
- autoScoredSpecifyCorrectAnswerSection.correctAnswerAccordion()
697
- .within(() => {
698
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
699
- });
700
- } else {
701
- autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
702
- .within(() => {
703
- utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
704
- });
705
- };
706
- });
707
-
708
- autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredCorrectAnswerErrorMessageCSSAndA11y();
709
-
710
- it('When the user checks an option in the question grid, the error message should disappear', () => {
711
- gridQuestionCommonComponent.steps.setAnswersForAllQuestionStemsInSpecifyCorrectAnswerSection([{ row: 1, column: 0 }, { row: 2, column: 1 }, { row: 3, column: 0 }, { row: 4, column: 1 }]);
712
- commonComponents.steps.verifyErrorMessageIsNotDisplayed();
713
- });
714
-
715
- autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredPointsErrorMessageWhenPointsFieldIsEmpty(accordionName);
716
-
717
- it('CSS of \'Correct\' accordion contents', { tags: 'css' }, () => {
718
- gridQuestionCommonComponent.gridSpecifyCorrectAnswerSection()
719
- .within(() => {
720
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.tableCell().parent(), 1), {
721
- 'background-color': css.color.matrixHeadingCellBg,
722
- 'border-color': `${css.color.matrixCellBorder}`
723
- });
724
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.tableCell().parent(), 6), {
725
- 'background-color': css.color.matrixSubheadingCellBg,
726
- 'border-color': `${css.color.matrixCellBorder}`
727
- });
728
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.tableCell().parent(), 9), {
729
- 'background-color': css.color.defaultBackground,
730
- 'border-color': `${css.color.matrixCellBorder}`
731
- });
732
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.optionsButton, 0), {
733
- 'background-color': css.color.matrixHeadingCellBg,
734
- 'color': `${css.color.matrixCellBorder}`
735
- });
736
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.optionsButton, 0).find('svg'), {
737
- 'color': css.color.activeButtons
738
- });
739
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.tableCell(), 1).find('.question-text-wrapper'), {
740
- 'color': css.color.text,
741
- 'font-size': css.fontSize.heading,
742
- 'font-weight': css.fontWeight.bold
743
- });
744
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.tableCell(), 6).find('.question-text-wrapper'), {
745
- 'color': css.color.text,
746
- 'font-size': css.fontSize.default,
747
- 'font-weight': css.fontWeight.bold
748
- });
749
- utilities.verifyCSS(utilities.getNthElement(gridQuestionCommonComponent.tableCell(), 9).find('.question-text-wrapper'), {
750
- 'color': css.color.text,
751
- 'font-size': css.fontSize.default,
752
- 'font-weight': css.fontWeight.regular
753
- });
754
- });
755
- });
756
-
757
- it('Accessibility of \'Correct\' accordion contents', { tags: 'a11y' }, () => {
758
- cy.checkAccessibility(gridQuestionCommonComponent.tableCell().parents('.correct-answer-accordion'));
759
- });
760
- },
761
680
  }
762
681
 
763
682
  export const gridQuestionCommonComponent = {
@@ -43,9 +43,9 @@ const selectors = {
43
43
  fillImageToCanvasLabel: () => cy.get('[data-ngie-testid="fill-image-to-canvas-checkbox"] .MuiFormControlLabel-label'),
44
44
  fillImageToCanvasCheckbox: () => cy.get('[data-ngie-testid="fill-image-to-canvas-checkbox"] input'),
45
45
  imageAlignmentLabel: () => cy.get('.image-alignment-wrapper [class*="OptionsContainerstyles__LabelWrapper"]'),
46
- topLeftAlignmentButton: () => cy.get('[data-ngie-testid="top-left-toggle-button"], [data-testid="top-left-toggle-button"]'),
47
- centerAlignmentButton: () => cy.get('[data-ngie-testid="center-toggle-button"], [data-testid="center-toggle-button"]'),
48
- topRightAlignmentButton: () => cy.get('[data-ngie-testid="top-right-toggle-button"], [data-testid="top-right-toggle-button"]'),
46
+ topLeftAlignmentButton: () => cy.get('.image-alignment-wrapper [data-ngie-testid="top-left-toggle-button"], [data-testid="top-left-toggle-button"]'),
47
+ centerAlignmentButton: () => cy.get('.image-alignment-wrapper [data-ngie-testid="center-toggle-button"], [data-testid="center-toggle-button"]'),
48
+ topRightAlignmentButton: () => cy.get('.image-alignment-wrapper [data-ngie-testid="top-right-toggle-button"], [data-testid="top-right-toggle-button"]'),
49
49
  canvasWidthLabel: () => cy.get('.common-text-wrapper .additional-settings-label').eq(0),
50
50
  canvasWidthInputField: () => cy.get('.common-text-wrapper .text-field').eq(0),
51
51
  canvasHeightLabel: () => cy.get('.common-text-wrapper .additional-settings-label').eq(1),
@@ -385,7 +385,7 @@ const steps = {
385
385
  .click();
386
386
  },
387
387
 
388
- clearAll: () => {
388
+ clearAllCanvas: () => {
389
389
  imageCanvasComponent.clearAllButton()
390
390
  .click();
391
391
  },
@@ -435,7 +435,7 @@ const steps = {
435
435
  const getPosition = (option) => {
436
436
  switch (option) {
437
437
  case 'bottom':
438
- return { top: '-31.5px', left: '-37.5px' };
438
+ return { top: '-31px', left: '-35px' };
439
439
  case 'bottom right':
440
440
  return { top: '-25px', left: '-40px' };
441
441
  case 'right':
@@ -450,6 +450,8 @@ const steps = {
450
450
  return { bottom: '-20px', left: '-27px' };
451
451
  case 'bottom left':
452
452
  return { bottom: '-18px', left: '-32px' };
453
+ default:
454
+ return { top: '0', left: '0' };
453
455
  }
454
456
  }
455
457
  const expectedPosition = getPosition(style);
@@ -736,7 +738,7 @@ const tests = {
736
738
  });
737
739
 
738
740
  it(`When user clicks on \'Clear all\' button, then all response container should be deleted and error message 'Error: Please insert a ${response}.' should be displayed`, () => {
739
- imageCanvasComponent.steps.clearAll();
741
+ imageCanvasComponent.steps.clearAllCanvas();
740
742
  utilities.verifyElementVisibilityState(imageCanvasComponent.responseAreaWrapper(), 'notExist');
741
743
  utilities.verifyInnerText(commonComponents.errorMessage(), `Error: Please insert a ${response}.`);
742
744
  utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible');
@@ -977,7 +979,7 @@ const tests = {
977
979
 
978
980
  it('When user clears text in the \'Alternative text\' input field, then default alternative text should be displayed for canvas image', () => {
979
981
  imageCanvasComponent.steps.clearImageAlternativeTextInputFieldText();
980
- imageCanvasComponent.steps.verifyDefaultImageAlternativeTextPresentInEditTab();
982
+ imageCanvasComponent.steps.verifyNoImageAlternativeTextPresentInPreviewTab();
981
983
  });
982
984
  },
983
985
 
@@ -1039,7 +1041,7 @@ const tests = {
1039
1041
  imageCanvasComponent.steps.switchToEditTab();
1040
1042
  imageCanvasComponent.steps.clearImageAlternativeTextInputFieldText();
1041
1043
  imageCanvasComponent.steps.switchToPreviewTab();
1042
- imageCanvasComponent.steps.verifyDefaultImageAlternativeTextPresentInPreviewTab();
1044
+ imageCanvasComponent.steps.verifyNoImageAlternativeTextPresentInPreviewTab();
1043
1045
  });
1044
1046
  },
1045
1047
 
@@ -362,7 +362,7 @@ const tests = {
362
362
  utilities.verifyElementVisibilityState(listSortingAndOrderingBase.randomizeOptionsCheckbox(), 'notExist');
363
363
  utilities.verifyElementVisibilityState(listSortingAndOrderingBase.hideDragHandleCheckbox(), 'notExist');
364
364
  scoringSectionBase.steps.verifyDefaultMinimumScoreIfAttemptedLabelAndPointsField()
365
- additionalSettingsPanel.steps.expandAdditonalSettings()
365
+ additionalSettingsPanel.steps.expandAdditionalSettings()
366
366
  utilities.verifyElementVisibilityState(autoScoredAdditionalSettings.checkAnswerLabel(), 'notExist');
367
367
  utilities.verifyElementVisibilityState(autoScoredAdditionalSettings.allowStudentsToCheckAnswerLabel(), 'notExist');
368
368
  });
@@ -138,7 +138,7 @@ const tests = {
138
138
  questionInputFieldComponent.steps.clearQuestionInputField();
139
139
  questionInputFieldComponent.steps.verifyQuestionInputFieldPlaceholder();
140
140
  questionInputFieldComponent.steps.addInputToQuestionInputField('Lorem Ipsum');
141
- utilities.verifyInnerText(questionInputFieldComponent.questionInputField(), '​​​​​​​Lorem Ipsum');
141
+ utilities.verifyInnerText(questionInputFieldComponent.questionInputField(), 'Lorem Ipsum');
142
142
  questionInputFieldComponent.steps.verifyQuestionInputFieldPlaceholderNotDisplayed();
143
143
  });
144
144
  },
@@ -6,7 +6,7 @@ const css = Cypress.env('css');
6
6
  const selectors = {
7
7
  questionInstructionsLabelEditTab: () => cy.get('.edit-question-instruction-label'),
8
8
  questionInstructionsInputField: () => cy.get('[title="Question Instructions"]'),
9
- questionInstructionsText: () => cy.get('.question-instruction'),
9
+ questionInstructionsText: () => cy.get('.question-instruction:visible'),
10
10
  questionInstructionsWrapper: () => cy.get('.edit-question-instruction-wrapper')
11
11
  }
12
12
 
@@ -1245,7 +1245,7 @@ const steps = {
1245
1245
  let animals = [['Bat', 'Platypus', 'Panda', 'Zebra'],
1246
1246
  ['Peacock', 'Falcon', 'Eagle', 'Tiger'],
1247
1247
  ['Parrot', 'Lion', 'Whale', 'Elephant'],
1248
- ['Giraffe', 'Kangaroo', 'Ostrich', 'Flying squirrel']
1248
+ ['Giraffe', 'Bat', 'Ostrich', 'Flying squirrel']
1249
1249
  ];
1250
1250
  let groupTitles = ['Group A', 'Group B', 'Group C', 'Group D'];
1251
1251
  draggableOptionsSectionComponent.steps.expandDraggableOptionsLayoutDropdown()
@@ -86,12 +86,12 @@ const tableDialogBox = {
86
86
  previewInputFieldTable: () => cy.get('.ngcke_custom_table'),
87
87
  //Edit Table Dialog Box
88
88
  editTableDialogBox: () => cy.get('.cke_dialog_body'),
89
- editTableDialogBoxTitle: () => cy.get('.cke_dialog_title').eq(1),
90
- editTableDialogBoxAddRowHeaderLabel: () => cy.get('.chk_box_add_header_row label').eq(1),
89
+ editTableDialogBoxTitle: () => cy.get('.cke_dialog_title'),
90
+ editTableDialogBoxAddRowHeaderLabel: () => cy.get('.chk_box_add_header_row label'),
91
91
  editTableDialogBoxHighlightFirstColumnLabel: () => cy.get('.chk_box_highlight_first_column label'),
92
- editTableDialogBoxAddRowHeaderCheckbox: () => cy.get('.chk_box_add_header_row input').eq(1),
92
+ editTableDialogBoxAddRowHeaderCheckbox: () => cy.get('.chk_box_add_header_row input'),
93
93
  editTableDialogBoxHighlightFirstColumnCheckbox: () => cy.get('.chk_box_highlight_first_column input'),
94
- editTableDialogBoxColumnsLabel: () => essayResponsePage.editTableDialogBox().find('.cke_dialog_ui_labeled_label').eq(0),
94
+ editTableDialogBoxColumnsLabel: () => essayResponsePage.editTableDialogBox().find('.cke_dialog_ui_labeled_label'),
95
95
  editTableDialogBoxRowsLabel: () => essayResponsePage.editTableDialogBox().find('.cke_dialog_ui_labeled_label').eq(1),
96
96
  editTableDialogBoxInsertBeforeButton: () => cy.get('[title="Insert Before"]'),
97
97
  editTableDialogBoxInsertAfterButton: () => cy.get('[title="Insert After"]'),
@@ -36,6 +36,9 @@ const selectors = {
36
36
  alternateAnswerPopupOptions: () => cy.get('.option-container'),
37
37
  alternateAnswerPopupCancelButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(0),
38
38
  alternateAnswerPopupSaveButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(1),
39
+ dropzoneOptionSpecifyCorrectAnswerSection: () => cy.get('.item-content-container'),
40
+ partialEqualWeightsPointsPerResponseScore: () => cy.get('.alternate-points-points-per-value-span'),
41
+ pointsLabel: () => cy.get('.cloze-with-dropdown-partial-points-per-response-label'),
39
42
  //Preview tab
40
43
  questionBorderPreviewTab: () => cy.get('[class*="ClozeWithDragAndDropstyles__WrapperDiv"]'),
41
44
  optionPreviewTab: () => cy.get('.draggable-selected-item'),
@@ -393,7 +396,7 @@ const steps = {
393
396
 
394
397
  verifyInactiveStateOfAllDropzoneInSpecifyCorrectAnswerSection: () => {
395
398
  fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection()
396
- .should('not.have.class', 'isActiveForDrop');
399
+ .should('not.have.attr', 'aria-describedby');
397
400
  },
398
401
 
399
402
  /**
@@ -405,8 +408,7 @@ const steps = {
405
408
  .eq(dropzoneIndex)
406
409
  .within(() => {
407
410
  responseArray.forEach((response, count) => {
408
- cy.get('.item-content-container')
409
- // draggableOptionContainer.draggableOption()
411
+ fillInTheGapsDragAndDropPage.dropzoneOptionSpecifyCorrectAnswerSection()
410
412
  .eq(count)
411
413
  .verifyInnerText(response);
412
414
  });
@@ -414,14 +416,14 @@ const steps = {
414
416
  },
415
417
 
416
418
  /**
417
- * @param {number} responseAreaIndex Index of the dropzone in specify correct answer section
418
- * @description Verify drag handle is not visible in filled category cell in specify correct answer section
419
- */
419
+ * @param {number} responseAreaIndex Index of the dropzone in specify correct answer section
420
+ * @description Verify drag handle is not visible in filled category cell in specify correct answer section
421
+ */
420
422
  verifyDragHandleNotVisibleInFilledDropzoneOfSpecifyCorrectAnswerSection: (responseAreaIndex) => {
421
423
  fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection()
422
424
  .eq(responseAreaIndex)
423
425
  .within(() => {
424
- utilities.verifyElementVisibilityState(draggableOptionContainer.draggableOptionDragIcon(), 'hidden')
426
+ utilities.verifyElementVisibilityState(draggableOptionContainer.draggableOptionDragIcon(), 'notExist')
425
427
  });
426
428
  },
427
429
 
@@ -434,7 +436,7 @@ const steps = {
434
436
  fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection()
435
437
  .eq(dropzoneIndex)
436
438
  .within(() => {
437
- draggableOptionContainer.draggableOption()
439
+ fillInTheGapsDragAndDropPage.dropzoneOptionSpecifyCorrectAnswerSection()
438
440
  .contains(optionName)
439
441
  .click();
440
442
  });
@@ -452,7 +454,7 @@ const steps = {
452
454
 
453
455
  verifyInactiveStateOfAllDropzoneInPreviewTab: () => {
454
456
  fillInTheGapsDragAndDropPage.dropzonePreviewTab()
455
- .should('not.have.class', 'isActiveForDrop');
457
+ .should('not.have.attr', 'aria-describedby');
456
458
  },
457
459
 
458
460
  /**
@@ -477,7 +479,7 @@ const steps = {
477
479
  fillInTheGapsDragAndDropPage.dropzonePreviewTab()
478
480
  .eq(responseAreaIndex)
479
481
  .within(() => {
480
- utilities.verifyElementVisibilityState(draggableOptionContainer.draggableOptionDragIcon(), 'hidden')
482
+ utilities.verifyElementVisibilityState(draggableOptionContainer.draggableOptionDragIcon(), 'notExist')
481
483
  });
482
484
  },
483
485
 
@@ -490,7 +492,7 @@ const steps = {
490
492
  fillInTheGapsDragAndDropPage.dropzonePreviewTab()
491
493
  .eq(dropzoneIndex)
492
494
  .within(() => {
493
- draggableOptionContainer.draggableOption()
495
+ fillInTheGapsDragAndDropPage.dropzoneOptionSpecifyCorrectAnswerSection()
494
496
  .contains(optionName)
495
497
  .click();
496
498
  });
@@ -641,16 +643,19 @@ const steps = {
641
643
  },
642
644
 
643
645
  verifyDropzoneHeightWhenLongTextIsDroppedInSpecifyCorrectAnswerSection: () => {
644
- let originalDropzoneHeight
646
+ let originalDropzoneHeight;
645
647
  utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), 1)
646
648
  .then(($originalDropzoneHeight) => {
647
- originalDropzoneHeight = $originalDropzoneHeight.height(); //Storing original dropzone width
648
- });
649
- fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Leaves grow on the branches of a plant which in turn grow on the stem': 1 });
650
- utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), 1)
651
- .then(($modifiedDropzoneHeight) => {
652
- let modifiedDropzoneHeight = $modifiedDropzoneHeight.height(); //Storing modified dropzone width
653
- expect(modifiedDropzoneHeight).to.be.gt(originalDropzoneHeight);
649
+ originalDropzoneHeight = $originalDropzoneHeight[0].offsetHeight; //Storing original dropzone height
650
+ }).then(() => {
651
+ fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Leaves grow on the branches of a plant which in turn grow on the stem': 1 });
652
+ })
653
+ .then(() => {
654
+ utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), 1)
655
+ .then(($modifiedDropzoneHeight) => {
656
+ const modifiedDropzoneHeight = $modifiedDropzoneHeight[0].offsetHeight; //Storing modified dropzone height
657
+ expect(modifiedDropzoneHeight).to.be.gt(originalDropzoneHeight);
658
+ });
654
659
  });
655
660
  },
656
661
 
@@ -705,7 +710,9 @@ const steps = {
705
710
  * @param {string} tooltip Tooltip text
706
711
  */
707
712
  verifyDropzoneOptionTooltipSpecifyCorrectAnswerSection: (dropzoneIndex, tooltip) => {
708
- utilities.hoverOverElement(utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection, dropzoneIndex));
713
+ fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection()
714
+ .eq(dropzoneIndex)
715
+ .trigger('mouseover')
709
716
  utilities.verifyTextContent(fillInTheGapsDragAndDropPage.dropzoneOptionTooltip(), tooltip);
710
717
  utilities.hoverAwayFromElement();
711
718
  },
@@ -716,10 +723,15 @@ const steps = {
716
723
  * @param {string} tooltip Tooltip text
717
724
  */
718
725
  verifyDropzoneOptionTooltipPreviewTab: (dropzoneIndex, tooltip) => {
719
- utilities.hoverOverElement(utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab, dropzoneIndex));
726
+ utilities.hoverOverElement(utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex));
720
727
  utilities.verifyTextContent(fillInTheGapsDragAndDropPage.dropzoneOptionTooltip(), tooltip);
721
728
  utilities.hoverAwayFromElement();
722
- }
729
+ },
730
+
731
+ verifyPartialEqualWeightsPointsPerResponseScore: (pointsPerResponse) => {
732
+ fillInTheGapsDragAndDropPage.partialEqualWeightsPointsPerResponseScore()
733
+ .should('have.text', pointsPerResponse);
734
+ },
723
735
  }
724
736
 
725
737
  const tests = {
@@ -771,7 +783,6 @@ const tests = {
771
783
  });
772
784
  } else {
773
785
  autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
774
- .eq(1)
775
786
  .within(() => {
776
787
  utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
777
788
  });
@@ -589,7 +589,6 @@ const tests = {
589
589
  });
590
590
  } else {
591
591
  autoScoredSpecifyCorrectAnswerSection.alternativeAnswerAccordion()
592
- .eq(1)
593
592
  .within(() => {
594
593
  utilities.verifyElementVisibilityState(autoScoredSpecifyCorrectAnswerSection.specifyCorrectAnswerErrorIcon(), 'visible');
595
594
  });
@@ -2,8 +2,6 @@ import utilities from "../support/helpers/utilities";
2
2
  import { imageCanvasComponent, autoScoredScoringPreviewTab, createQuestionBasePage, backgroundImageUploadComponent, scoringSectionBaseEditTab, questionInstructionsComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, fillInTheGapsDropdownCommonComponent, randomizeOptionsComponent, optionsWrapperComponent, studentViewSettingsLabelComponent, additionalSettingsPanel, placeholderTextSectionComponent, gradingViewEnumerationComponent, ariaLabelSectionComponent, commonComponents, additionalSettingsAccessibilitySectionComponent } from "./components";
3
3
  const css = Cypress.env('css');
4
4
 
5
- const optionsForDropdown = ['Flower', 'Petal', 'Stem', 'Branch'];
6
-
7
5
  const selectors = {
8
6
  ...questionInstructionsComponent,
9
7
  ...imageCanvasComponent,
@@ -19,6 +17,11 @@ const selectors = {
19
17
  ...ariaLabelSectionComponent,
20
18
  ...commonComponents,
21
19
  ...additionalSettingsPanel,
20
+ ...autoScoredSpecifyCorrectAnswerSection,
21
+
22
+ optionsInputField: () => cy.get('[class*="TextFieldWrapper"] input'),
23
+ optionNumeration: () => cy.get('.MuiInputAdornment-positionStart'),
24
+ pointsLabel: () => cy.get('.cloze-with-text-partial-points-per-response-label'),
22
25
  dropdownWrapperPreviewTab: () => cy.get('[class*="Canvasstyle__DropzoneWrapper"]'),
23
26
  correctAnswerResponseWrapper: () => cy.get('[class*="LabelImageWithDropdownPreviewstyles__AnswerCell"]'),
24
27
  correctAnswerResponse: () => cy.get('[class*="LabelImageWithDropdownPreviewstyles__AnswerWrapper"]'),
@@ -111,7 +114,7 @@ const steps = {
111
114
  const getPosition = (option) => {
112
115
  switch (option) {
113
116
  case 'bottom':
114
- return { top: '-31.5px', left: '-37.5px' };
117
+ return { top: '-31px', left: '-35px' };
115
118
  case 'bottom right':
116
119
  return { top: '-25px', left: '-40px' };
117
120
  case 'right':
@@ -222,7 +225,7 @@ const steps = {
222
225
  });
223
226
  });
224
227
  },
225
-
228
+
226
229
  /**
227
230
  * Verifies the dropdown enumeration in the preview tab.
228
231
  * @param {string[]} enumerationArray - An array of enumeration values to verify.
@@ -239,6 +242,25 @@ const steps = {
239
242
  });
240
243
  });
241
244
  },
245
+
246
+ /**
247
+ * @param {number} index of the option
248
+ * @description verify the enter option input field, drag handle, delete button and option numeration
249
+ */
250
+ verifyOptionsContents: (index) => {
251
+ optionsWrapperComponent.optionWrapper()
252
+ .eq(index)
253
+ .within(() => {
254
+ fillInTheGapsOverImageDropdownPage.optionsInputField()
255
+ .should('have.attr', 'placeholder', 'Enter option');
256
+ commonComponents.dragHandleButton()
257
+ .should('exist');
258
+ commonComponents.deleteButton()
259
+ .should('be.visible');
260
+ fillInTheGapsOverImageDropdownPage.optionNumeration()
261
+ .should('have.text', index + 1);
262
+ });
263
+ },
242
264
  }
243
265
 
244
266
  const tests = {
@@ -90,35 +90,6 @@ const steps = {
90
90
  });
91
91
  },
92
92
 
93
- /**
94
- * Verify custom special characters displayed in special characters popup in preview tab
95
- * @param {string[]} customSpecialCharacters Array of custom special characters
96
- */
97
- verifyCustomSpecialCharactersInSpecialCharactersPopupPreviewTab: (customSpecialCharacters) => {
98
- dialogBoxBase.dialogBox()
99
- .within(() => {
100
- customSpecialCharacters.forEach((customSpecialCharacter, index) => {
101
- utilities.verifyInnerText(fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab().eq(index), `${customSpecialCharacter}`);
102
- utilities.verifyElementVisibilityState(fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab().eq(index), 'visible');
103
- });
104
- utilities.verifyElementCount(fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab(), `${customSpecialCharacters.length}`);
105
- });
106
- },
107
-
108
- /**
109
- * Click on custom special character symbol in special characters popup in preview tab
110
- * @param {string} customSpecialCharacterSymbol custom special character symbol
111
- */
112
- clickOnCustomSpecialCharacterSymbolInSpecialCharactersPopupPreviewTab: (customSpecialCharacterSymbol) => {
113
- dialogBoxBase.dialogBox()
114
- .within(() => {
115
- fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab()
116
- .contains(customSpecialCharacterSymbol)
117
- .click();
118
- });
119
- },
120
-
121
-
122
93
  /**
123
94
  *@description Verify text in the answer input fields of the specify correct answer section.
124
95
  * @param {Object[]} responses - An array of objects containing the responseIndex and responseText.