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
@@ -159,31 +159,21 @@ describe('Create item page - Video response: Question instructions, Maximum reco
159
159
  });
160
160
  });
161
161
 
162
- it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, \'Error: Maximum recording duration is required.\' validation error should be displayed below the \'Maximum recording duration\' input field', () => {
162
+ it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, Validation error should not be displayed below the \'Maximum recording duration\' input field and it should take up default value i.e. 300', () => {
163
163
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
164
- utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Maximum recording duration is required.');
165
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
164
+ videoResponsePage.steps.verifyMaximumRecordingDuration(300);
165
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
166
166
  });
167
167
 
168
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
169
-
170
168
  it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Maximum recording duration is required.\' should disappear.', () => {
171
169
  videoResponsePage.steps.setMaximumRecordingDuration(1000);
172
170
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
173
171
  });
174
172
 
175
- it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message \'Error: Value must be greater than 0 secs.\' should be displayed', () => {
173
+ it('When the user has set \'Maximum recording duration\' to \'0\' (zero), error message should not be displayed and it should take default value i.e 300', () => {
176
174
  videoResponsePage.steps.setMaximumRecordingDuration(0);
177
- videoResponsePage.steps.verifyMaximumRecordingDuration(0);
178
- utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Value must be greater than 0 secs.');
179
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
180
- });
181
-
182
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
183
-
184
- it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Value must be greater than 0 secs.\' should disappear', () => {
185
- videoResponsePage.steps.setMaximumRecordingDuration(1000);
186
- videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
175
+ videoResponsePage.steps.verifyMaximumRecordingDuration(300);
176
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
187
177
  });
188
178
 
189
179
  it('When user adds decimal values or alphanumeric values then only numeric values should be displayed in the maximum recording length input field', () => {
@@ -204,32 +194,27 @@ describe('Create item page - Video response: Question instructions, Maximum reco
204
194
  videoResponsePage.steps.verifyMaximumRecordingDuration(5);
205
195
  });
206
196
 
207
- it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, \'Error: Maximum recording duration is required.\' validation error should be displayed below the \'Maximum recording duration\' input field', () => {
197
+ it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, validation error should not be displayed below the \'Maximum recording duration\' input field', () => {
208
198
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
209
199
  videoResponsePage.steps.toggleMaximumRecordingDurationInputField('Secs');
210
200
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
211
- utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Maximum recording duration is required.');
212
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
201
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
213
202
  });
214
203
 
215
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
216
-
217
- it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Maximum recording duration is required.\' should disappear.', () => {
204
+ it('When the user updates the \'Maximum recording duration\' value, then the validation message should not be displayed', () => {
218
205
  videoResponsePage.steps.setMaximumRecordingDuration(5);
219
206
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
220
207
  });
221
208
 
222
- it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message \'Error: Value must be greater than 0 mins.\' should be displayed', () => {
223
- videoResponsePage.steps.setMaximumRecordingDurationNew(0);
224
- videoResponsePage.steps.verifyMaximumRecordingDuration(0);
209
+ it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message should not be displayed and it should take default value i.e. 300', () => {
210
+ videoResponsePage.steps.setMaximumRecordingDuration(0);
211
+ videoResponsePage.steps.verifyMaximumRecordingDuration(300);
225
212
  // Uncomment once https://redmine.zeuslearning.com/issues/583618 is resolved
226
213
  // utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Value must be greater than 0 mins.');
227
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
214
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
228
215
  });
229
216
 
230
- videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
231
-
232
- it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Value must be greater than 0 mins.\' should disappear', () => {
217
+ it('When the user updates the \'Maximum recording duration\' value, then the validation message should not be displayed', () => {
233
218
  videoResponsePage.steps.setMaximumRecordingDuration(5);
234
219
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
235
220
  videoResponsePage.steps.toggleMaximumRecordingDurationInputField('Mins');
@@ -98,7 +98,22 @@ describe('Create item page - Charts - Dot plot: Header section and saving questi
98
98
  chartsDotPlotPage.steps.selectDotPlot();
99
99
  });
100
100
 
101
- chartsDotPlotPage.tests.verifyCreateItemWrapperContentsA11y();
101
+ describe('Validation error messages', () => {
102
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please set points']);
103
+
104
+ it('Validation error messages should be displayed below required input fields', () => {
105
+ chartsDotPlotPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
106
+ chartsDotPlotPage.steps.verifyWarningIconOnRequiredFields(['Please set points']);
107
+ chartsDotPlotPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
108
+ });
109
+
110
+ it('Validation error messages should disappear when required input fields are filled', () => {
111
+ chartsDotPlotPage.steps.allotPoints(10);
112
+ chartsDotPlotPage.steps.verifyErrorMessageIsNotDisplayed();
113
+ });
114
+
115
+ chartsDotPlotPage.tests.verifyCreateItemWrapperContentsA11y();
116
+ });
102
117
 
103
118
  describe('Saving a question', () => {
104
119
  it('When user clicks on "Save question" button, then the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
@@ -20,7 +20,7 @@ const selectors = {
20
20
  selectAManipulativeLabel: () => cy.get('[class*="SelectManipulativeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
21
21
  enterAShareCodeLabel: () => cy.get('[class*="EnterShareCodeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
22
22
  enterAShareCodeInputField: () => cy.get('[class*="EnterShareCodeWrapper"] input'),
23
- previewTabCanvas: () => cy.get('.bcm-inner'),
23
+ previewTabCanvas: () => cy.get('.canvas'),
24
24
  }
25
25
 
26
26
  const steps = {
@@ -1306,6 +1306,26 @@ const steps = {
1306
1306
  verifyPenaltyPointsForEachIncorrectBar: (penaltyPoints) => {
1307
1307
  utilities.verifyInnerText(autoScoredScoringSectionMultiResponseType.penaltyPointsDetailsSectionAllottedPointsLabel(), `Penalty points for each incorrect bar: ${penaltyPoints}`);
1308
1308
  },
1309
+
1310
+ verifyAnswerStatusBannerNotExist: () => {
1311
+ chartsBarPage.correctIncorrectAnswerTextWrapper()
1312
+ .should('not.exist');
1313
+ },
1314
+
1315
+ verifyAnswerStatusBannerExist: () => {
1316
+ chartsBarPage.correctIncorrectAnswerTextWrapper()
1317
+ .should('be.visible');
1318
+ },
1319
+
1320
+ verifyCorrectAnswerSectionExist: () => {
1321
+ chartsBarPage.correctAnswersLabel()
1322
+ .should('be.visible');
1323
+ },
1324
+
1325
+ verifyCorrectAnswerSectionNotExist: () => {
1326
+ chartsBarPage.correctAnswersLabel()
1327
+ .should('not.exist');
1328
+ },
1309
1329
  }
1310
1330
 
1311
1331
  const tests = {
@@ -146,6 +146,13 @@ const steps = {
146
146
  .within(() => {
147
147
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
148
148
  });
149
+ }
150
+ else if (field === 'Please select a file type') {
151
+ // Upload Response Select File Type Accordion
152
+ cy.get('.edit-question-edit-tab-wrapper .ngie-accordion-summary')
153
+ .within(() => {
154
+ utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
155
+ });
149
156
  }
150
157
  })
151
158
  },
@@ -21,7 +21,7 @@ const selectors = {
21
21
  previewTabDesmosToolKeypad: () => cy.get('[class*="DesmosToolstyles__DesmosToolViewWrapper"] .dcg-basic-keypad-container'),
22
22
  previewTabDesmosToolKeypadKeys: (ariaLabel = null) => {
23
23
  if (ariaLabel) {
24
- return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]:visible`)
24
+ return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]`)
25
25
  } else {
26
26
  return cy.get('.dcg-basic-keypad .dcg-keypad-btn')
27
27
  }
@@ -29,6 +29,8 @@ const selectors = {
29
29
  }
30
30
  },
31
31
  minimumPointsLabel: () => cy.get('[class*="min-score-points-label"]'),
32
+ questionLabel: () => cy.get('[class*="addResponseCKEditorstyles__TitleWrapper"]'),
33
+ questionWarningIcon: () => cy.get('[class*="addResponseCKEditorstyles__IconWrapper"]'),
32
34
  minimumPointsInputField: () => cy.get('.min-score-points-input-field input'),
33
35
  }
34
36
 
@@ -81,6 +83,7 @@ const steps = {
81
83
  scoringSectionBaseEditTab.scoringTypeDropdownListOptions(convertedString)
82
84
  .should('be.visible') // Ensure the dropdown option is visible
83
85
  .click();
86
+ cy.wait(2000); // Wait for the dropdown to close
84
87
  utilities.verifyElementVisibilityState(commonComponents.dropdownList(), 'notExist');
85
88
  },
86
89
 
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent } from "./components";
2
+ import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent, toolSettingsComponent } from "./components";
3
3
  import { desmosToolComponent } from "./components/desmosToolComponent";
4
4
  const css = Cypress.env('css');
5
5
 
@@ -10,12 +10,13 @@ const selectors = {
10
10
  ...additionalSettingsPanel,
11
11
  ...questionInstructionsComponent,
12
12
  desmosGraphingTool: () => cy.get('[id*="desmos-graph-tool"]'),
13
- desmosGraphingToolExpressionPanel: () => cy.get('[id*="desmos-graph-tool"] .dcg-exppanel-container.dcg-add-shadow'),
13
+ desmosGraphingToolExpressionPanel: () => cy.get('.dcg-exppanel-container'),
14
14
  studentViewSettingsLabel: () => cy.get('[class*="StudentViewWrapper"]'),
15
15
  hideExpressionListLabel: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] .MuiFormControlLabel-label'),
16
16
  hideExpressionListCheckbox: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] input'),
17
17
  showHideListButton: () => cy.get('.dcg-show-expressions-tab[role="button"]'),
18
18
  desmosGraphingWidthLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(0),
19
+ desmosComponentGradingView: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosWrapper"]'),
19
20
  desmosGraphingWidthInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(0),
20
21
  desmosGraphingHeightLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(1),
21
22
  desmosGraphingHeightInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(1),
@@ -38,6 +39,16 @@ const selectors = {
38
39
  errorMessage: () => cy.get('.error-text-message'),
39
40
  resourceLinkPreviewTitle: () => cy.get('[class*="DesmosGraphingstyles__ResourceLinkPreviewLabel"]'),
40
41
  desmosComponent: () => cy.get('[class*="DesmosGraphingstyles__DesmosComponentWrapper"]'),
42
+ widthLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(0),
43
+ heightLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(1),
44
+ lockUnlockAspectRatioButton: () => cy.get('[class*="StudentViewSettingsstyles__LockIconWrapper"] button'),
45
+ resetButton: () => cy.get('[class*="StudentViewSettingsstyles__ResetIconWrapper"] button'),
46
+ desmosResourceCanvasEditTab: () => cy.get('[id*="desmos-3d-graph-tool"]'),
47
+ desmosResourceCanvasPreviewTab: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosPreview"]'),
48
+ addIconDesmos: () => cy.get('.dcg-add-expression-container .dcg-icon-plus'),
49
+ expressionInputField: () => cy.get('.dcg-action-newmath'),
50
+ editIconPencil: () => cy.get('.icon-pencil'),
51
+ teacherGuidelinesInputField: () => cy.get('[class*="TeacherGuidelinesstyles__TextField"] input'),
41
52
  }
42
53
 
43
54
  const steps = {
@@ -47,6 +58,7 @@ const steps = {
47
58
  ...additionalSettingsPanel.steps,
48
59
  ...questionInstructionsComponent.steps,
49
60
  ...commonComponents.steps,
61
+ ...toolSettingsComponent.steps,
50
62
  verifyHideExpressionListCheckboxUnchecked: () => {
51
63
  desmos3DGraphingPage.hideExpressionListCheckbox()
52
64
  .should('not.be.checked');
@@ -322,10 +334,128 @@ const steps = {
322
334
  },
323
335
  clearInputToInsertResourceLinkInputField: () => {
324
336
  desmos3DGraphingPage.insertResourceLinkInputField()
325
- .clear();
337
+ .click()
338
+ desmos3DGraphingPage.insertResourceLinkInputField()
339
+ .type('{selectall}{backspace}')
326
340
  cy.get('body')
327
341
  .click();
328
342
  },
343
+ verifyLockedStateOfLockUnlockAspectRatioButton: () => {
344
+ desmos3DGraphingPage.lockUnlockAspectRatioButton()
345
+ .should('have.attr', 'aria-label', 'Locked aspect ratio');
346
+ },
347
+ verifyUnlockedStateOfLockUnlockAspectRatioButton: () => {
348
+ desmos3DGraphingPage.lockUnlockAspectRatioButton()
349
+ .should('have.attr', 'aria-label', 'Unlocked aspect ratio');
350
+ },
351
+ /**
352
+ * @description add input to width input field
353
+ * @param {number} width Width to be set for geoGebra resource
354
+ */
355
+ addInputToWidthInputField: (width) => {
356
+ desmos3DGraphingPage.widthInputField()
357
+ .clear()
358
+ .type(width)
359
+ .blur();
360
+ utilities.verifyInputFieldValue(desmos3DGraphingPage.widthInputField(), width);
361
+ },
362
+ /**
363
+ * @description add input to height input field
364
+ * @param {number} height Height to be set for geoGebra resource
365
+ */
366
+ addInputToHeightInputField: (height) => {
367
+ desmos3DGraphingPage.heightInputField()
368
+ .clear()
369
+ .type(height)
370
+ .blur();
371
+ utilities.verifyInputFieldValue(desmos3DGraphingPage.heightInputField(), height);
372
+ },
373
+ /**
374
+ * Verify width of geoGebra resource canvas in edit tab
375
+ * @param {number} width Width of geoGebra resource canvas in edit tab
376
+ */
377
+ verifyCanvasWidthEditTab: (width) => {
378
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasEditTab(), {
379
+ 'width': `${width}px`
380
+ });
381
+ },
382
+ /**
383
+ * Verify height of geoGebra resource canvas in edit tab
384
+ * @param {number} height Height of geoGebra resource canvas in edit tab
385
+ */
386
+ verifyCanvasHeightEditTab: (height) => {
387
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasEditTab(), {
388
+ 'height': `${height}px`
389
+ });
390
+ },
391
+ clickOnResetButton: () => {
392
+ desmos3DGraphingPage.resetButton()
393
+ .click();
394
+ },
395
+ clickOnLockUnlockAspectRatioButton: () => {
396
+ desmos3DGraphingPage.lockUnlockAspectRatioButton()
397
+ .click();
398
+ },
399
+ /**
400
+ * Verify width of geoGebra resource canvas in preview tab
401
+ * @param {number} width Width of geoGebra resource canvas in preview tab
402
+ */
403
+ verifyCanvasWidthPreviewTab: (width) => {
404
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasPreviewTab(), {
405
+ 'width': `${width}px`
406
+ });
407
+ },
408
+ /**
409
+ * Verify height of geoGebra resource canvas in preview tab
410
+ * @param {number} height Height of geoGebra resource canvas in preview tab
411
+ */
412
+ verifyCanvasHeightPreviewTab: (height) => {
413
+ utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasPreviewTab(), {
414
+ 'height': `${height}px`
415
+ });
416
+ },
417
+ /**
418
+ * @description Types a mathematical expression in the Desmos expression input field
419
+ * @param {string} expression The mathematical expression to type
420
+ */
421
+ typeExpression: (expression) => {
422
+ desmos3DGraphingPage.expressionInputField()
423
+ .click();
424
+ desmos3DGraphingPage.expressionInputField()
425
+ .type(expression);
426
+ },
427
+ /**
428
+ * @description Verifies that the specified expression is not present in the Desmos expression field
429
+ * @param {string} expression The expression that should not be present
430
+ */
431
+ verifyExpressionNotPresent: (expression) => {
432
+ desmos3DGraphingPage.expressionInputField()
433
+ .should('not.contain', expression);
434
+ },
435
+ editQuestionItemView: () => {
436
+ desmos3DGraphingPage.editIconPencil()
437
+ .click();
438
+ },
439
+ verifyFontSizeDropdown: (fontSize) => {
440
+ desmos3DGraphingPage.fontSizeDropdown()
441
+ .should('have.text', fontSize);
442
+ },
443
+ verifyTeacherGuidelinesInputField: (text) => {
444
+ desmos3DGraphingPage.additionalSettingsTeacherGuidelinesInputField()
445
+ .should('have.text', text);
446
+ },
447
+ verifySampleAnswerInputField: (text) => {
448
+ desmos3DGraphingPage.additionalSettingsSampleAnswerInputField()
449
+ .should('have.text', text);
450
+ },
451
+ verifyAcknowledgementsInputField: (text) => {
452
+ desmos3DGraphingPage.additionalSettingsAcknowledgementsInputField()
453
+ .should('have.text', text);
454
+ },
455
+ verifyFlagThisItemNonAccessibleCheckboxIsChecked: () => {
456
+ desmos3DGraphingPage.flagNonAccessibleCheckbox()
457
+ .should('be.checked');
458
+ },
329
459
  }
330
460
 
331
461
  const tests = {
@@ -337,7 +467,7 @@ const tests = {
337
467
  ...additionalSettingsAccessibilitySectionComponent.tests,
338
468
  ...studentViewSettingsLabelComponent.tests,
339
469
  ...hideExpressionListComponent.tests,
340
-
470
+
341
471
  verifyGraphingQuestionSpecifyPredefinedExpressionContent: () => {
342
472
  it('When user selects a scoring type the contents of the Specify predefined expression should be displayed', () => {
343
473
  utilities.verifyElementVisibilityState(desmos3DGraphingPage.desmosGraphingTool(), 'exist');
@@ -358,6 +488,21 @@ const tests = {
358
488
  it('Accessibility of error message', { tags: 'a11y' }, () => {
359
489
  cy.checkAccessibility(commonComponents.nextGenCreateItemWrapper());
360
490
  });
491
+ },
492
+
493
+ verifyQuestionInstructionsInputFieldPreviewTab: () => {
494
+ it('When user has not entered any text in the Question instructions input field in the \'Edit\' tab then nothing should be displayed in the \'Preview\' tab', () => {
495
+ createQuestionBasePage.steps.switchToPreviewTab();
496
+ //Failing due to https://redmine.zeuslearning.com/issues/553382
497
+ utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsText(), '')
498
+ });
499
+
500
+ it('When the user specifies question instructions, then the added question instructions should be displayed in the \'Preview\' tab', () => {
501
+ createQuestionBasePage.steps.switchToEditTab();
502
+ questionInstructionsComponent.steps.addTextInQuestionInstructionsInputField('Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
503
+ createQuestionBasePage.steps.switchToPreviewTab();
504
+ utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsTextPreviewTab(), 'Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
505
+ });
361
506
  }
362
507
  }
363
508
 
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent } from "./components";
2
+ import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent, toolSettingsComponent } from "./components";
3
3
  import { desmosToolComponent } from "./components/desmosToolComponent";
4
4
  const css = Cypress.env('css');
5
5
 
@@ -10,7 +10,7 @@ const selectors = {
10
10
  ...additionalSettingsPanel,
11
11
  ...questionInstructionsComponent,
12
12
  desmosGraphingTool: () => cy.get('[id*="desmos-graph-tool"]'),
13
- desmosGraphingToolExpressionPanel: () => cy.get('[id*="desmos-graph-tool"] .dcg-exppanel-container.dcg-add-shadow'),
13
+ desmosGraphingToolExpressionPanel: () => cy.get('.dcg-exppanel-container'),
14
14
  studentViewSettingsLabel: () => cy.get('[class*="StudentViewWrapper"]'),
15
15
  hideExpressionListLabel: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] .MuiFormControlLabel-label'),
16
16
  hideExpressionListCheckbox: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] input'),
@@ -36,6 +36,18 @@ const selectors = {
36
36
  errorMessage: () => cy.get('.error-text-message'),
37
37
  resourceLinkPreviewTitle: () => cy.get('[class*="DesmosGraphingstyles__ResourceLinkPreviewLabel"]'),
38
38
  desmosComponent: () => cy.get('[class*="DesmosGraphingstyles__DesmosComponentWrapper"]'),
39
+ desmosComponentGradingView: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosWrapper"]'),
40
+ widthLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(0),
41
+ heightLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(1),
42
+ lockUnlockAspectRatioButton: () => cy.get('[class*="StudentViewSettingsstyles__LockIconWrapper"] button'),
43
+ resetButton: () => cy.get('[class*="StudentViewSettingsstyles__ResetIconWrapper"] button'),
44
+ desmosResourceCanvasEditTab: () => cy.get('[id*="desmos-geometry-tool"]'),
45
+ desmosResourceCanvasPreviewTab: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosPreview"]'),
46
+ widthInputField: () => cy.get('[class*="StudentViewSettingsstyles__DimensionWrapper"] .text-input-field input').eq(0),
47
+ heightInputField: () => cy.get('[class*="StudentViewSettingsstyles__DimensionWrapper"] .text-input-field input').eq(1),
48
+ addIconDesmos: () => cy.get('.dcg-add-expression-container .dcg-icon-plus'),
49
+ expressionInputField: () => cy.get('.dcg-action-newmath'),
50
+ editIconPencil: () => cy.get('.icon-pencil'),
39
51
  }
40
52
 
41
53
  const steps = {
@@ -45,6 +57,7 @@ const steps = {
45
57
  ...additionalSettingsPanel.steps,
46
58
  ...questionInstructionsComponent.steps,
47
59
  ...commonComponents.steps,
60
+ ...toolSettingsComponent.steps,
48
61
  verifyHideExpressionListCheckboxUnchecked: () => {
49
62
  desmosGeometryPage.hideExpressionListCheckbox()
50
63
  .should('not.be.checked');
@@ -262,10 +275,162 @@ const steps = {
262
275
  },
263
276
  clearInputToInsertResourceLinkInputField: () => {
264
277
  desmosGeometryPage.insertResourceLinkInputField()
265
- .clear();
278
+ .click()
279
+ desmosGeometryPage.insertResourceLinkInputField()
280
+ .type('{selectall}{backspace}')
266
281
  cy.get('body')
267
282
  .click();
268
283
  },
284
+ verifyLockedStateOfLockUnlockAspectRatioButton: () => {
285
+ desmosGeometryPage.lockUnlockAspectRatioButton()
286
+ .should('have.attr', 'aria-label', 'Locked aspect ratio');
287
+ },
288
+ verifyUnlockedStateOfLockUnlockAspectRatioButton: () => {
289
+ desmosGeometryPage.lockUnlockAspectRatioButton()
290
+ .should('have.attr', 'aria-label', 'Unlocked aspect ratio');
291
+ },
292
+ /**
293
+ * @description add input to width input field
294
+ * @param {number} width Width to be set for geoGebra resource
295
+ */
296
+ addInputToWidthInputField: (width) => {
297
+ desmosGeometryPage.widthInputField()
298
+ .clear()
299
+ .type(width)
300
+ .blur();
301
+ utilities.verifyInputFieldValue(desmosGeometryPage.widthInputField(), width);
302
+ },
303
+ /**
304
+ * @description add input to height input field
305
+ * @param {number} height Height to be set for geoGebra resource
306
+ */
307
+ addInputToHeightInputField: (height) => {
308
+ desmosGeometryPage.heightInputField()
309
+ .clear()
310
+ .type(height)
311
+ .blur();
312
+ utilities.verifyInputFieldValue(desmosGeometryPage.heightInputField(), height);
313
+ },
314
+ /**
315
+ * Verify width of geoGebra resource canvas in edit tab
316
+ * @param {number} width Width of geoGebra resource canvas in edit tab
317
+ */
318
+ verifyCanvasWidthEditTab: (width) => {
319
+ utilities.verifyCSS(desmosGeometryPage.desmosResourceCanvasEditTab(), {
320
+ 'width': `${width}px`
321
+ });
322
+ },
323
+ /**
324
+ * Verify height of geoGebra resource canvas in edit tab
325
+ * @param {number} height Height of geoGebra resource canvas in edit tab
326
+ */
327
+ verifyCanvasHeightEditTab: (height) => {
328
+ utilities.verifyCSS(desmosGeometryPage.desmosResourceCanvasEditTab(), {
329
+ 'height': `${height}px`
330
+ });
331
+ },
332
+ clickOnResetButton: () => {
333
+ desmosGeometryPage.resetButton()
334
+ .click();
335
+ },
336
+ clickOnLockUnlockAspectRatioButton: () => {
337
+ desmosGeometryPage.lockUnlockAspectRatioButton()
338
+ .click();
339
+ },
340
+ /**
341
+ * Verify width of geoGebra resource canvas in preview tab
342
+ * @param {number} width Width of geoGebra resource canvas in preview tab
343
+ */
344
+ verifyCanvasWidthPreviewTab: (width) => {
345
+ utilities.verifyCSS(desmosGeometryPage.desmosResourceCanvasPreviewTab(), {
346
+ 'width': `${width}px`
347
+ });
348
+ },
349
+ /**
350
+ * Verify height of geoGebra resource canvas in preview tab
351
+ * @param {number} height Height of geoGebra resource canvas in preview tab
352
+ */
353
+ verifyCanvasHeightPreviewTab: (height) => {
354
+ utilities.verifyCSS(desmosGeometryPage.desmosResourceCanvasPreviewTab(), {
355
+ 'height': `${height}px`
356
+ });
357
+ },
358
+ /**
359
+ * @param {number} width holds value of width attribute
360
+ * @description function updates width in input field
361
+ */
362
+ updateWidth: (width) => {
363
+ desmosGeometryPage.widthInputField()
364
+ .clear()
365
+ .type(width);
366
+ },
367
+ /**
368
+ * @param {number} width holds value of width attribute
369
+ * @description function verifies width in input field
370
+ */
371
+ verifyWidth: (width) => {
372
+ desmosGeometryPage.widthInputField()
373
+ .should('have.value', width);
374
+ },
375
+ /**
376
+ * @param {number} height holds value of height attribute
377
+ * @description function updates height in input field
378
+ */
379
+ updateHeight: (height) => {
380
+ desmosGeometryPage.heightInputField()
381
+ .clear()
382
+ .type(height);
383
+ },
384
+ /**
385
+ * @param {number} height holds value of height attribute
386
+ * @description function verifies height in input field
387
+ */
388
+ verifyHeight: (height) => {
389
+ desmosGeometryPage.heightInputField()
390
+ .should('have.value', height);
391
+ },
392
+ /**
393
+ * @description Types a mathematical expression in the Desmos expression input field
394
+ * @param {string} expression The mathematical expression to type
395
+ */
396
+ typeExpression: (expression) => {
397
+ desmosGeometryPage.expressionInputField()
398
+ .click();
399
+ desmosGeometryPage.expressionInputField()
400
+ .type(expression);
401
+ },
402
+ /**
403
+ * @description Verifies that the specified expression is not present in the Desmos expression field
404
+ * @param {string} expression The expression that should not be present
405
+ */
406
+ verifyExpressionNotPresent: (expression) => {
407
+ desmosGeometryPage.expressionInputField()
408
+ .should('not.contain', expression);
409
+ },
410
+ editQuestionItemView: () => {
411
+ desmosGeometryPage.editIconPencil()
412
+ .click();
413
+ },
414
+ verifyFontSizeDropdown: (fontSize) => {
415
+ desmosGeometryPage.fontSizeDropdown()
416
+ .should('have.text', fontSize);
417
+ },
418
+ verifyTeacherGuidelinesInputField: (text) => {
419
+ desmosGeometryPage.additionalSettingsTeacherGuidelinesInputField()
420
+ .should('have.text', text);
421
+ },
422
+ verifySampleAnswerInputField: (text) => {
423
+ desmosGeometryPage.additionalSettingsSampleAnswerInputField()
424
+ .should('have.text', text);
425
+ },
426
+ verifyAcknowledgementsInputField: (text) => {
427
+ desmosGeometryPage.additionalSettingsAcknowledgementsInputField()
428
+ .should('have.text', text);
429
+ },
430
+ verifyFlagThisItemNonAccessibleCheckboxIsChecked: () => {
431
+ desmosGeometryPage.flagNonAccessibleCheckbox()
432
+ .should('be.checked');
433
+ },
269
434
  }
270
435
 
271
436
  const tests = {
@@ -285,7 +450,7 @@ const tests = {
285
450
  utilities.verifyElementVisibilityState(desmosToolComponent.previewTabDesmosToolKeypadButton(), 'exist');
286
451
  });
287
452
  },
288
-
453
+
289
454
  verifyErrorMessageCSSAndA11y: () => {
290
455
  it('CSS of error message', { tags: 'css' }, () => {
291
456
  utilities.verifyCSS(desmosGeometryPage.errorMessage(), {
@@ -298,6 +463,21 @@ const tests = {
298
463
  it('Accessibility of error message', { tags: 'a11y' }, () => {
299
464
  cy.checkAccessibility(commonComponents.nextGenCreateItemWrapper());
300
465
  });
466
+ },
467
+
468
+ verifyQuestionInstructionsInputFieldPreviewTab: () => {
469
+ it('When user has not entered any text in the Question instructions input field in the \'Edit\' tab then nothing should be displayed in the \'Preview\' tab', () => {
470
+ createQuestionBasePage.steps.switchToPreviewTab();
471
+ //Failing due to https://redmine.zeuslearning.com/issues/553382
472
+ utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsText(), '')
473
+ });
474
+
475
+ it('When the user specifies question instructions, then the added question instructions should be displayed in the \'Preview\' tab', () => {
476
+ createQuestionBasePage.steps.switchToEditTab();
477
+ questionInstructionsComponent.steps.addTextInQuestionInstructionsInputField('Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
478
+ createQuestionBasePage.steps.switchToPreviewTab();
479
+ utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsTextPreviewTab(), 'Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
480
+ });
301
481
  }
302
482
  }
303
483