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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +4 -16
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  3. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  4. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +33 -0
  5. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +37 -0
  6. package/cypress/e2e/ILC/ChartsBar/headerSection.js +50 -2
  7. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +3 -1
  8. package/cypress/e2e/ILC/ChartsLine/headerSection.js +18 -1
  9. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +1 -0
  10. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +3 -1
  11. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +72 -0
  12. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +38 -0
  13. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +38 -0
  14. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  15. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +35 -0
  16. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +28 -0
  17. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +38 -0
  18. package/cypress/e2e/ILC/Graphing/headerSection.js +37 -4
  19. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +40 -0
  20. package/cypress/e2e/ILC/GridFill/headerSection.js +3 -3
  21. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +39 -0
  22. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  23. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +39 -0
  24. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +37 -0
  25. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +39 -0
  26. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +36 -0
  27. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +75 -0
  28. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +2 -1
  29. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +24 -0
  30. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +24 -0
  31. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +24 -0
  32. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +86 -0
  33. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  34. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  35. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +35 -0
  36. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +24 -0
  37. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +108 -0
  38. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +6 -10
  39. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +2 -1
  40. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +52 -0
  41. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +23 -0
  42. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +35 -9
  43. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +41 -0
  44. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +30 -0
  45. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +50 -0
  46. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +101 -0
  47. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +38 -0
  48. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +24 -0
  49. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +4 -1
  50. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +35 -1
  51. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +98 -0
  52. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +38 -0
  53. package/cypress/e2e/ILC/Matching/clickAndDrop.js +3 -5
  54. package/cypress/e2e/ILC/Matching/draggableOptions.js +4 -0
  55. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +41 -0
  56. package/cypress/e2e/ILC/Matching/headerSection.js +36 -11
  57. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +2 -15
  58. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +79 -0
  59. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +42 -0
  60. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +42 -0
  61. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +73 -0
  62. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +32 -0
  63. package/cypress/e2e/ILC/NumberLine/editTabSection.js +38 -0
  64. package/cypress/e2e/ILC/NumberLine/headerSection.js +34 -4
  65. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +81 -0
  66. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +43 -0
  67. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +43 -0
  68. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +76 -0
  69. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +34 -0
  70. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +38 -0
  71. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +37 -4
  72. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -1
  73. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  74. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +2 -4
  75. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +86 -0
  76. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +86 -0
  77. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  78. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -1
  79. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  80. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  81. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +10 -3
  82. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +4 -2
  83. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +5 -3
  84. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  85. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +4 -0
  86. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +64 -0
  87. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +2 -0
  88. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +2 -0
  89. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +64 -0
  90. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +65 -0
  91. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  92. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  93. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  94. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +8 -0
  95. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -0
  96. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -0
  97. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +2 -0
  98. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +1 -0
  99. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +2 -0
  100. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +2 -0
  101. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +27 -3
  102. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +43 -0
  103. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +1 -1
  104. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +34 -0
  105. package/cypress/e2e/ILC/UploadResponse/headerSection.js +38 -1
  106. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +14 -29
  107. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +16 -1
  108. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  109. package/cypress/pages/chartsBarPage.js +20 -0
  110. package/cypress/pages/components/createQuestionBasePage.js +7 -0
  111. package/cypress/pages/components/desmosToolComponent.js +1 -1
  112. package/cypress/pages/components/scoringSectionBaseEditTab.js +3 -0
  113. package/cypress/pages/desmos3DGraphingPage.js +149 -4
  114. package/cypress/pages/desmosGeometryPage.js +184 -4
  115. package/cypress/pages/graphingPage.js +26 -4
  116. package/cypress/pages/gridFillPage.js +16 -6
  117. package/cypress/pages/listOrderingPage.js +32 -1
  118. package/cypress/pages/matchingPage.js +26 -7
  119. package/cypress/pages/numberLineLabelPage.js +26 -0
  120. package/cypress/pages/numberLinePage.js +15 -0
  121. package/cypress/pages/textEntryMathPage.js +21 -0
  122. package/cypress/pages/uploadResponsePage.js +2 -1
  123. package/cypress/pages/videoResponsePage.js +3 -0
  124. package/package.json +1 -1
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -205,4 +207,66 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
205
207
  textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
206
208
  });
207
209
  });
210
+
211
+ describe('Question Preview: AutoScored - All or Nothing with blank scoring: When alternative answer points are more than correct answer points and alternative has no points plotted', () => {
212
+ abortEarlySetup();
213
+ before(() => {
214
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
215
+ cy.barsPreLoaderWait();
216
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
217
+ textEntryMathPage.steps.addResponseArea();
218
+ textEntryMathPage.steps.addResponseArea();
219
+ textEntryMathPage.steps.addResponseArea();
220
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
221
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
222
+ equationEditorFlyout.steps.clearAll();
223
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
224
+ equationEditorFlyout.steps.clickOnOkButton();
225
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(1);
226
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(1);
227
+ equationEditorFlyout.steps.enterQuadraticEquation();
228
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(2);
229
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(2);
230
+ equationEditorFlyout.steps.enterTextInPreviewInputField('9000%');
231
+ equationEditorFlyout.steps.clickOnOkButton();
232
+ textEntryMathPage.steps.allotPoints(12);
233
+ textEntryMathPage.steps.addAlternativeAnswerAccordion(1);
234
+ textEntryMathPage.steps.allotPoints(21);
235
+ textEntryMathPage.steps.expandAdditionalSettings();
236
+ textEntryMathPage.steps.selectModalVisibilityTypeButton();
237
+ textEntryMathPage.steps.switchToPreviewTab();
238
+ });
239
+
240
+ it('When user attempts the question with responses from the correct accordion, then the user should be awarded points specified for correct points accordion (less than full points) and on switching to \'Grading\' view, correct icons should be displayed beside all the correct responses, a status message with text \'Your answer is correct\' should be displayed and correct answer section should not be displayed', () => {
241
+ textEntryMathPage.steps.resetQuestionPreview();
242
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
243
+ equationEditorFlyout.steps.clearAll();
244
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
245
+ equationEditorFlyout.steps.clickOnOkButton();
246
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(1);
247
+ equationEditorFlyout.steps.enterQuadraticEquation();
248
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(2);
249
+ equationEditorFlyout.steps.enterTextInPreviewInputField('9000%');
250
+ equationEditorFlyout.steps.clickOnOkButton();
251
+ textEntryMathPage.steps.verifyPreviewScore(12, 21);
252
+ textEntryMathPage.steps.switchToGradingView();
253
+ textEntryMathPage.steps.verifyCorrectAnswerSectionNotExist();
254
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
255
+ textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
256
+ });
257
+
258
+ it('When user resets the option then full score should be awarded as alternative accordion has blank response', () => {
259
+ textEntryMathPage.steps.resetQuestionPreview();
260
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
261
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
262
+ equationEditorFlyout.steps.clickOnOkButton();
263
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
264
+ equationEditorFlyout.steps.clearAll();
265
+ equationEditorFlyout.steps.clickOnOkButton();
266
+ textEntryMathPage.steps.switchToGradingView();
267
+ textEntryMathPage.steps.verifyCorrectAnswerSectionNotExist();
268
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
269
+ textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
270
+ });
271
+ });
208
272
  });
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -205,4 +207,66 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
205
207
  textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
206
208
  });
207
209
  });
210
+
211
+ describe('Question Preview: AutoScored - All or Nothing with blank scoring: When alternative answer points are equal than correct answer points', () => {
212
+ abortEarlySetup();
213
+ before(() => {
214
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
215
+ cy.barsPreLoaderWait();
216
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
217
+ textEntryMathPage.steps.addResponseArea();
218
+ textEntryMathPage.steps.addResponseArea();
219
+ textEntryMathPage.steps.addResponseArea();
220
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
221
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
222
+ equationEditorFlyout.steps.clearAll();
223
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
224
+ equationEditorFlyout.steps.clickOnOkButton();
225
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(1);
226
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(1);
227
+ equationEditorFlyout.steps.enterQuadraticEquation();
228
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(2);
229
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(2);
230
+ equationEditorFlyout.steps.enterTextInPreviewInputField('9000%');
231
+ equationEditorFlyout.steps.clickOnOkButton();
232
+ textEntryMathPage.steps.allotPoints(12);
233
+ textEntryMathPage.steps.addAlternativeAnswerAccordion(1);
234
+ textEntryMathPage.steps.allotPoints(12);
235
+ textEntryMathPage.steps.expandAdditionalSettings();
236
+ textEntryMathPage.steps.selectModalVisibilityTypeButton();
237
+ textEntryMathPage.steps.switchToPreviewTab();
238
+ });
239
+
240
+ it('When user attempts the question with responses from the correct accordion then full score should be awarded', () => {
241
+ textEntryMathPage.steps.resetQuestionPreview();
242
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
243
+ equationEditorFlyout.steps.clearAll();
244
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
245
+ equationEditorFlyout.steps.clickOnOkButton();
246
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(1);
247
+ equationEditorFlyout.steps.enterQuadraticEquation();
248
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(2);
249
+ equationEditorFlyout.steps.enterTextInPreviewInputField('9000%');
250
+ equationEditorFlyout.steps.clickOnOkButton();
251
+ textEntryMathPage.steps.verifyPreviewScore(12, 12);
252
+ textEntryMathPage.steps.switchToGradingView();
253
+ textEntryMathPage.steps.verifyCorrectAnswerSectionNotExist();
254
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
255
+ textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
256
+ });
257
+
258
+ it('When user attempts the question with responses from the alternative accordion then full score should be awarded', () => {
259
+ textEntryMathPage.steps.resetQuestionPreview();
260
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
261
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
262
+ equationEditorFlyout.steps.clickOnOkButton();
263
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
264
+ equationEditorFlyout.steps.clearAll();
265
+ equationEditorFlyout.steps.clickOnOkButton();
266
+ textEntryMathPage.steps.switchToGradingView();
267
+ textEntryMathPage.steps.verifyCorrectAnswerSectionNotExist();
268
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
269
+ textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
270
+ });
271
+ });
208
272
  });
@@ -13,6 +13,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
13
13
  abortEarlySetup();
14
14
  before(() => {
15
15
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
16
+ cy.barsPreLoaderWait();
17
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
18
20
  textEntryMathPage.steps.addResponseArea();
@@ -253,4 +255,67 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
253
255
  cy.checkAccessibility(textEntryMathPage.previewTabQuestionWrapper());
254
256
  });
255
257
  });
258
+
259
+ describe('Question Preview: AutoScored - All or Nothing with blank scoring: When correct answer points are greater than alternative answer points', () => {
260
+ abortEarlySetup();
261
+ before(() => {
262
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
263
+ cy.barsPreLoaderWait();
264
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
265
+ textEntryMathPage.steps.addResponseArea();
266
+ textEntryMathPage.steps.addResponseArea();
267
+ textEntryMathPage.steps.addResponseArea();
268
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(0);
269
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(0);
270
+ equationEditorFlyout.steps.clearAll();
271
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
272
+ equationEditorFlyout.steps.clickOnOkButton();
273
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(1);
274
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(1);
275
+ equationEditorFlyout.steps.enterQuadraticEquation();
276
+ textEntryMathPage.steps.expandResponseAccordionSpecifyCorrectAnswer(2);
277
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldSpecifyCorrectAnswerSection(2);
278
+ equationEditorFlyout.steps.enterTextInPreviewInputField('9000%');
279
+ equationEditorFlyout.steps.clickOnOkButton();
280
+ textEntryMathPage.steps.allotPoints(21);
281
+ textEntryMathPage.steps.addAlternativeAnswerAccordion(1);
282
+ textEntryMathPage.steps.allotPoints(12);
283
+ textEntryMathPage.steps.expandAdditionalSettings();
284
+ textEntryMathPage.steps.selectModalVisibilityTypeButton();
285
+ textEntryMathPage.steps.switchToPreviewTab();
286
+ });
287
+
288
+ it('When user attempts the question with responses from the correct accordion i.e select an option, then the user should be awarded full points specified for correct points accordion and on switching to \'Grading\' view, correct icons should be displayed beside all the correct responses, a status message with text \'Your answer is correct\' should be displayed and correct answer section should not be displayed', () => {
289
+ textEntryMathPage.steps.resetQuestionPreview();
290
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
291
+ equationEditorFlyout.steps.clearAll();
292
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
293
+ equationEditorFlyout.steps.clickOnOkButton();
294
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(1);
295
+ equationEditorFlyout.steps.enterQuadraticEquation();
296
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(2);
297
+ equationEditorFlyout.steps.enterTextInPreviewInputField('9000%');
298
+ equationEditorFlyout.steps.clickOnOkButton();
299
+ textEntryMathPage.steps.verifyPreviewScore(21, 21);
300
+ textEntryMathPage.steps.switchToGradingView();
301
+ textEntryMathPage.steps.verifyCorrectAnswerSectionNotExist();
302
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
303
+ textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
304
+ });
305
+
306
+ it('When user attempts the question with responses from the alternative accordion then the user should be awarded points specified for correct points accordion (less than full points) and on switching to \'Grading\' view, correct icons should be displayed beside all the correct responses, a status message with text \'Your answer is correct\' should be displayed and correct answer section should not be displayed', () => {
307
+ textEntryMathPage.steps.resetQuestionPreview();
308
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
309
+ equationEditorFlyout.steps.enterTextInPreviewInputField('Correct');
310
+ equationEditorFlyout.steps.clickOnOkButton();
311
+ textEntryMathPage.steps.focusInResponseAnswerInputFieldPreviewTab(0);
312
+ equationEditorFlyout.steps.clearAll();
313
+ equationEditorFlyout.steps.clickOnOkButton();
314
+ textEntryMathPage.steps.verifyPreviewScore(12, 21);
315
+ textEntryMathPage.steps.switchToGradingView();
316
+ textEntryMathPage.steps.verifyCorrectAnswerSectionNotExist();
317
+ textEntryMathPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
318
+ textEntryMathPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
319
+ });
320
+ });
256
321
  });
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -13,6 +13,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
13
13
  abortEarlySetup();
14
14
  before(() => {
15
15
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
16
+ cy.barsPreLoaderWait();
17
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
18
20
  textEntryMathPage.steps.addResponseArea();
@@ -13,6 +13,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
13
13
  abortEarlySetup();
14
14
  before(() => {
15
15
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
16
+ cy.barsPreLoaderWait();
17
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
18
20
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -119,6 +121,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
119
121
  abortEarlySetup();
120
122
  before(() => {
121
123
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
124
+ cy.barsPreLoaderWait();
125
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
122
126
  textEntryMathPage.steps.addResponseArea();
123
127
  textEntryMathPage.steps.addResponseArea();
124
128
  textEntryMathPage.steps.addResponseArea();
@@ -204,6 +208,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
204
208
  abortEarlySetup();
205
209
  before(() => {
206
210
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
211
+ cy.barsPreLoaderWait();
212
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
207
213
  textEntryMathPage.steps.addResponseArea();
208
214
  textEntryMathPage.steps.addResponseArea();
209
215
  textEntryMathPage.steps.addResponseArea();
@@ -321,6 +327,8 @@ describe('Create item page - Text Entry Math: Partial different weights', () =>
321
327
  abortEarlySetup();
322
328
  before(() => {
323
329
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
330
+ cy.barsPreLoaderWait();
331
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
324
332
  textEntryMathPage.steps.addResponseArea();
325
333
  textEntryMathPage.steps.addResponseArea();
326
334
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
@@ -13,6 +13,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
13
13
  abortEarlySetup();
14
14
  before(() => {
15
15
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
16
+ cy.barsPreLoaderWait();
17
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.addResponseArea();
18
20
  textEntryMathPage.steps.addResponseArea();
@@ -13,6 +13,7 @@ describe('Create item page - Text Entry Math: Partial equal weights', () => {
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
15
  cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
16
17
  textEntryMathPage.steps.addResponseArea();
17
18
  textEntryMathPage.steps.addResponseArea();
18
19
  textEntryMathPage.steps.addResponseArea();
@@ -12,6 +12,8 @@ describe('Create Item page - Text entry math: Preview scoring', () => {
12
12
  abortEarlySetup();
13
13
  before(() => {
14
14
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
15
+ cy.barsPreLoaderWait();
16
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
15
17
  textEntryMathPage.steps.addResponseArea();
16
18
  textEntryMathPage.steps.addResponseArea();
17
19
  textEntryMathPage.steps.selectAutoScoredScoringSubtype('Partial equal weights');
@@ -19,6 +19,8 @@ describe('Create Item page - Text entry math: All or nothing ', () => {
19
19
  switch (view) {
20
20
  case 'Question preview':
21
21
  textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
22
+ cy.barsPreLoaderWait();
23
+ textEntryMathPage.steps.addTextInQuestionInstructionsInputField('Enter the correct answer in the response field');
22
24
  textEntryMathPage.steps.addResponseArea();
23
25
  textEntryMathPage.steps.addResponseArea();
24
26
  textEntryMathPage.steps.addResponseArea();
@@ -92,11 +92,9 @@ describe('Create item page - Text entry math: Question instructions, Add structu
92
92
  textEntryMathPage.steps.switchToEditTab();
93
93
  textEntryMathPage.steps.deleteAResponseArea(0);
94
94
  textEntryMathPage.steps.deleteAResponseArea(0);
95
- utilities.verifyElementVisibilityState(textEntryMathPage.errorMessage(), 'exist');
95
+ utilities.verifyElementVisibilityState(textEntryMathPage.errorMessage(), 'notExist');
96
96
  });
97
97
 
98
- textEntryMathPage.tests.verifyErrorMessageCSSAndA11y();
99
-
100
98
  textEntryMathPage.tests.addResponseAreaAndVerifyMinimumOneAreaRequiredErrorMessageNotExist();
101
99
 
102
100
  textEntryMathPage.tests.verifyQuestionInputFieldPlaceholderText();
@@ -200,4 +198,30 @@ describe('Create item page - Text entry math: Question instructions, Add structu
200
198
  utilities.verifyElementCount(textEntryMathPage.responseFieldPreviewTab(), 1);
201
199
  });
202
200
  });
201
+
202
+ describe('User should be able to edit incomplete authored question', () => {
203
+ abortEarlySetup();
204
+ before(() => {
205
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
206
+ cy.barsPreLoaderWait();
207
+ textEntryMathPage.steps.saveAQuestionWithIncompleteAuthoring();
208
+ textEntryMathPage.steps.editItem();
209
+ });
210
+
211
+ it('Warning icons should be displayed on the required input fields', () => {
212
+ utilities.verifyElementVisibilityState(scoringSectionBaseEditTab.questionWarningIcon(), 'exist');
213
+ utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
214
+ });
215
+
216
+ it('When required input fields are filled then warning icons should disappear', () => {
217
+ textEntryMathPage.steps.addResponseArea();
218
+ textEntryMathPage.steps.allotPoints(10);
219
+ textEntryMathPage.steps.verifyErrorMessageIsNotDisplayed();
220
+ textEntryMathPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
221
+ });
222
+
223
+ it('Warning icon should not be visible', () => {
224
+ textEntryMathPage.steps.verifyWarningIconNotExist();
225
+ });
226
+ });
203
227
  });
@@ -0,0 +1,43 @@
1
+ import { textEntryMathPage } from "../../../pages";
2
+ import { browseItemsPage } from "../../../pages/components";
3
+ import { itemPreviewPage } from "../../../pages";
4
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
5
+ import utilities from "../../../support/helpers/utilities";
6
+
7
+ var itemReferenceID = "";
8
+
9
+ describe('Create Item page - Text Entry Math: Header section and Saving question', () => {
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ });
13
+
14
+ describe('Saving a question with incomplete authoring', () => {
15
+ abortEarlySetup();
16
+ before(() => {
17
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
18
+ cy.barsPreLoaderWait();
19
+ });
20
+
21
+ it('User should be able to save the question with incomplete authoring and snackbar with the text "Saved successfully!" should be displayed', () => {
22
+ textEntryMathPage.steps.saveAQuestionWithIncompleteAuthoring();
23
+ });
24
+ textEntryMathPage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
25
+ });
26
+
27
+ describe('Save as you go - Browse item page contents', () => {
28
+ abortEarlySetup();
29
+ before(() => {
30
+ cy.log('Navigating to Text Entry Math question type');
31
+ textEntryMathPage.steps.navigateToCreateQuestion('Text Entry Math');
32
+ cy.barsPreLoaderWait();
33
+ textEntryMathPage.steps.saveAQuestionWithIncompleteAuthoring();
34
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
35
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
36
+ browseItemsPage.steps.navigateToBrowseItemsPage();
37
+ });
38
+
39
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
40
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
41
+ });
42
+ });
43
+ });
@@ -99,7 +99,7 @@ describe('Create question page - Audio player: Header section and saving resourc
99
99
  });
100
100
 
101
101
  describe('Validation error messages', () => {
102
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
102
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please upload a file']);
103
103
 
104
104
  it('Validation error message(s) should be displayed below required input field(s)', () => {
105
105
  utilities.verifyElementVisibilityState(audioPlayerPage.errorMessage(), 'visible');
@@ -2,6 +2,7 @@ import abortEarlySetup from "../../../support/helpers/abortEarly";
2
2
  import { uploadResponsePage } from "../../../pages";
3
3
  import utilities from "../../../support/helpers/utilities";
4
4
  import { supportedFileType } from "../../../fixtures/uploadResponseFileType";
5
+ import { commonComponents } from "../../../pages/components";
5
6
  const css = Cypress.env('css');
6
7
 
7
8
  const fileSizeLimitOptions = ['5', '10', '15', '20', '100'];
@@ -373,4 +374,37 @@ describe('Create question page - Upload Response: Question Instructions, Support
373
374
 
374
375
  uploadResponsePage.tests.verifyWarningMessageDisappear();
375
376
  });
377
+
378
+ describe('User should be able to edit incomplete authored question', () => {
379
+ abortEarlySetup();
380
+ before(() => {
381
+ uploadResponsePage.steps.navigateToCreateQuestion('upload response');
382
+ cy.barsPreLoaderWait();
383
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
384
+ uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
385
+ uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
386
+ uploadResponsePage.steps.editItem();
387
+ });
388
+
389
+ it('Warning icons should be displayed on the required fields', () => {
390
+ uploadResponsePage.steps.verifyWarningIconOnRequiredFields(['Please select a file type']);
391
+ });
392
+
393
+ it('When file type is selected then warning icons should disappear', () => {
394
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
395
+ uploadResponsePage.steps.selectSupportedFileTypeOption(0);
396
+ uploadResponsePage.supportedFileTypesAccordionWrapper()
397
+ .within(() => {
398
+ utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'notExist');
399
+ });
400
+ });
401
+
402
+ it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
403
+ uploadResponsePage.steps.saveAQuestionAndVerifySnackbar();
404
+ });
405
+
406
+ it('Warning icon should not be visible', () => {
407
+ utilities.verifyElementVisibilityState(uploadResponsePage.warningIcon(), 'notExist');
408
+ });
409
+ });
376
410
  });
@@ -1,6 +1,9 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { uploadResponsePage, dialogBoxBase } from "../../../pages";
2
+ import { uploadResponsePage, dialogBoxBase, itemPreviewPage } from "../../../pages";
3
3
  import utilities from "../../../support/helpers/utilities";
4
+ import { browseItemsPage } from "../../../pages/components";
5
+ var itemReferenceID = ""
6
+
4
7
 
5
8
  describe('Create question page - Upload Response: Header section and Saving question', () => {
6
9
  before(() => {
@@ -49,4 +52,38 @@ describe('Create question page - Upload Response: Header section and Saving ques
49
52
 
50
53
  uploadResponsePage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
51
54
  });
55
+
56
+ describe('Saving a question with incomplete authoring', () => {
57
+ abortEarlySetup();
58
+ before(() => {
59
+ uploadResponsePage.steps.navigateToCreateQuestion('upload response');
60
+ cy.barsPreLoaderWait();
61
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
62
+ uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
63
+ });
64
+
65
+ it('User should be able to save the question with incomplete authoring and display a snackbar with the text "Saved successfully!" when the Save Question button is clicked', () => {
66
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please select a file type']);
67
+ uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
68
+ });
69
+ uploadResponsePage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
70
+ });
71
+
72
+ describe('Save as you go - Browse item page contents', () => {
73
+ abortEarlySetup();
74
+ before(() => {
75
+ uploadResponsePage.steps.navigateToCreateQuestion('upload response');
76
+ cy.barsPreLoaderWait();
77
+ uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
78
+ uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
79
+ uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
80
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
81
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
82
+ browseItemsPage.steps.navigateToBrowseItemsPage();
83
+ });
84
+
85
+ it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
86
+ browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
87
+ });
88
+ });
52
89
  });