itemengine-cypress-automation 1.0.113 → 1.0.114

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.js +489 -0
  2. package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.js +482 -0
  3. package/cypress/e2e/ILC/AudioResponseNew/customizePlaybackControls.js +488 -0
  4. package/cypress/e2e/ILC/AudioResponseNew/editAndPreviewTabScoringSection.js +92 -0
  5. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +229 -0
  6. package/cypress/e2e/ILC/AudioResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +1 -1
  7. package/cypress/e2e/ILC/AudioResponseNew/headerSection.js +67 -0
  8. package/cypress/e2e/ILC/AudioResponseNew/previewContentsForAllViews.smoke.js +1 -1
  9. package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.js +11 -11
  10. package/cypress/e2e/ILC/AudioResponseNew/studentViewSettings.js +529 -0
  11. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions1.smoke.js +108 -190
  12. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions2.js +83 -155
  13. package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions3.js +104 -315
  14. package/cypress/e2e/ILC/EssayResponseBasic/essayResponseBasicCustomizeFormattingOptions.js +121 -135
  15. package/cypress/e2e/ILC/EssayResponseMath/createItem.js +17 -0
  16. package/cypress/e2e/ILC/EssayResponseMath/mathCharacters.js +203 -0
  17. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/manuallyAndNonScored.js +121 -0
  18. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +236 -0
  19. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsBasic.js +255 -0
  20. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +237 -0
  21. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +236 -0
  22. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
  23. package/cypress/e2e/ILC/ShortTextResponseNew/additionalSettings.js +43 -0
  24. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +187 -0
  25. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingWithAlternativeAnswer.js +245 -0
  26. package/cypress/e2e/ILC/ShortTextResponseNew/checkAnswerFunctionalityForAllViews.smoke.js +99 -0
  27. package/cypress/e2e/ILC/ShortTextResponseNew/editTabScoringSection.js +97 -0
  28. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +74 -0
  29. package/cypress/e2e/ILC/ShortTextResponseNew/manuallyAndNonScoredScoring.js +83 -0
  30. package/cypress/e2e/ILC/ShortTextResponseNew/previewContentsForAllViews.smoke.js +109 -0
  31. package/cypress/e2e/ILC/ShortTextResponseNew/specifyCorrectAnswerSection.js +66 -0
  32. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +326 -0
  33. package/cypress/e2e/ILC/TextEntryMath/checkAnswerFunctionalityForAllViews.smoke.js +163 -0
  34. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.js +8 -8
  35. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodValueIsEquivalent.js +3 -3
  36. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +154 -0
  37. package/cypress/pages/audioResponsePage.js +523 -66
  38. package/cypress/pages/components/autoScoredScoringPreviewTab.js +2 -0
  39. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +6 -5
  40. package/cypress/pages/components/equationEditorFlyout.js +11 -0
  41. package/cypress/pages/components/essayResponseCommonComponents.js +290 -19
  42. package/cypress/pages/components/maximumRecorderLengthComponent.js +32 -15
  43. package/cypress/pages/components/playbackControlsBaseComponent.js +9 -1
  44. package/cypress/pages/components/questionInputFieldComponent.js +0 -7
  45. package/cypress/pages/essayResponseBasicPage.js +1 -26
  46. package/cypress/pages/essayResponsePage.js +21 -284
  47. package/cypress/pages/shortTextResponsePage.js +142 -103
  48. package/cypress/pages/textEntryMathPage.js +58 -7
  49. package/package.json +1 -1
@@ -1,21 +1,15 @@
1
- import { questionInstructionsComponent, scoringSectionBase, createQuestionBasePage, additionalSettingsPanel, commonComponents, autoScoredPreviewBase, autoScoredSetCorrectAnswerSection, autoScoredScoringSection, autoScoredAdditionalSettings, specialCharactersFlyoutComponent, specialAndCustomSpecialCharactersComponent, previewScoringAndShowCorrectAnswerComponent } from "./components/";
2
- import { studentResponseAndLayoutComponent } from "./components/studentResponseAreaAndLayoutComponent";
1
+ import { createQuestionBasePage, autoScoredStudentViewSettings, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, questionInstructionsComponent, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, commonComponents, additionalSettingsPanel } from "./components/";
2
+ import { dialogBoxBase } from "./dialogBoxBase";
3
+ import utilities from "../support/helpers/utilities";
3
4
  const css = Cypress.env('css');
4
5
 
5
6
  const selectors = {
6
- ...scoringSectionBase,
7
- ...createQuestionBasePage,
8
- ...additionalSettingsPanel,
9
7
  ...questionInstructionsComponent,
10
- ...commonComponents,
11
- ...autoScoredSetCorrectAnswerSection,
12
- ...autoScoredAdditionalSettings,
13
- ...autoScoredPreviewBase,
14
- ...specialCharactersFlyoutComponent,
15
- ...specialAndCustomSpecialCharactersComponent,
16
- ...previewScoringAndShowCorrectAnswerComponent,
17
- setCorrectAnswerResponseField: () => cy.get('.short-text-response-input-field input'),
18
- setCorrectAnswerResponseFieldWrapper: () => cy.get('.short-text-response-input-field input').parents('.MuiTextField-root'),
8
+ ...autoScoredSpecifyCorrectAnswerSection,
9
+
10
+ correctAnswerAccordionLabel: () => cy.get('[class*="AnswerAccordionstyles__Label"]'),
11
+ specifyCorrectAnswerResponseField: () => cy.get('.short-text-response-input-field input'),
12
+ specifyCorrectAnswerResponseFieldWrapper: () => cy.get('.short-text-response-input-field input').parents('.MuiTextField-root'),
19
13
  exactRadioOptionLabel: () => cy.get('.ngie-radio-label').eq(0),
20
14
  containsTextRadioOptionLabel: () => cy.get('.ngie-radio-label').eq(1),
21
15
  caseSensitiveCheckboxLabel: () => cy.get('[data-ngie-testid="case-sensitive-checkbox"] .MuiFormControlLabel-label'),
@@ -24,10 +18,10 @@ const selectors = {
24
18
  containsTextRadioButton: () => cy.get('input[aria-label="Contains text"]'),
25
19
  caseSensitiveCheckbox: () => cy.get('[data-ngie-testid="case-sensitive-checkbox"] input'),
26
20
  ignoreSpacesBeforeAndAfterCheckbox: () => cy.get('[data-ngie-testid="ignore-spaces-before-and-after-checkbox"] input'),
27
- previewTabResponseField: () => cy.get('[class*="edit-question-preview-wrapper"] .short-text-preview-response-input-field input'),
21
+ previewTabResponseField: () => cy.get('.input-field input:visible'),
28
22
  previewTabResponseFieldWrapper: () => cy.get('[class*="edit-question-preview-wrapper"] .short-text-preview-response-input-field input').parents('.MuiTextField-root'),
29
23
  //Preview tab
30
- previewTabCorrectAnswerContainer: () => cy.get('[class*="ShortTextResponsestyles__CorrectAnswerWrapper"]'),
24
+ previewTabCorrectAnswerWrapper: () => cy.get('[class*="ShortTextResponsestyles__CorrectAnswerWrapper"]'),
31
25
  previewTabCorrectAnswerLabel: () => cy.get('[class*="ShortTextResponsestyles__CorrectAnswerLabel"]'),
32
26
  previewTabCorrectAnswerResponse: () => cy.get('[class*="ShortTextResponsestyles__CorrectAnswerValueWrapper"]'),
33
27
  previewTabResponseFieldSpecialCharactersButton: () => cy.get('.cloze-with-text-response-preview-wrapper .custon-special-character-button'),
@@ -47,31 +41,56 @@ const selectors = {
47
41
 
48
42
  const steps = {
49
43
  ...createQuestionBasePage.steps,
44
+ ...autoScoredStudentViewSettings.steps,
45
+ ...autoScoredScoringPreviewTab.steps,
46
+ ...scoringSectionBaseEditTab.steps,
50
47
  ...questionInstructionsComponent.steps,
51
- ...scoringSectionBase.steps,
52
48
  ...additionalSettingsPanel.steps,
53
- ...autoScoredSetCorrectAnswerSection.steps,
54
- ...autoScoredAdditionalSettings.steps,
55
- ...autoScoredPreviewBase.steps,
56
- ...specialCharactersFlyoutComponent.steps,
57
- ...previewScoringAndShowCorrectAnswerComponent.steps,
58
- verifyCorrectOptionCheckmarkIcon: () => {
59
- autoScoredPreviewBase.correctIcon()
60
- .should('be.visible');
49
+ ...autoScoredSpecifyCorrectAnswerSection.steps,
50
+
51
+ verifyCorrectIcon: () => {
52
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'visible');
53
+ },
54
+
55
+ verifyIncorrectIcon: () => {
56
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'visible');
57
+ },
58
+
59
+ verifyCorrectIncorrectIconNotVisibleGradingView: () => {
60
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.correctIcon(), 'notExist');
61
+ utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'notExist');
62
+ },
63
+
64
+ verifyCorrectAttemptBorder: () => {
65
+ utilities.verifyCSS(shortTextResponsePage.previewTabResponseField().parent().find('fieldset'), {
66
+ 'border': `1px solid ${css.color.correctAnswer}`
67
+ });
68
+ },
69
+
70
+ verifyIncorrectAttemptBorder: () => {
71
+ utilities.verifyCSS(shortTextResponsePage.previewTabResponseField().parent().find('fieldset'), {
72
+ 'border': `1px solid ${css.color.incorrectAnswer}`
73
+ });
61
74
  },
62
75
 
63
- verifyIncorrectOptionCrossmarkIcon: () => {
64
- autoScoredPreviewBase.incorrectIcon()
65
- .should('be.visible');
76
+ verifyCorrectIncorrectBorderNotExist: () => {
77
+ shortTextResponsePage.previewTabResponseField()
78
+ .parent()
79
+ .find('fieldset')
80
+ .should('not.have.css', 'border', `1px solid ${css.color.incorrectAnswer}`)
81
+ .and('not.have.css', 'border', `1px solid ${css.color.correctAnswer}`);
66
82
  },
67
83
 
68
- verifyCorrectAnswerResponsesInCorrectAnswerContainerAndCount: (correctAnswer) => {
69
- shortTextResponsePage.previewTabCorrectAnswerContainer()
70
- .should('be.visible');
71
- shortTextResponsePage.previewTabCorrectAnswerResponse()
72
- .verifyInnerText(correctAnswer)
73
- shortTextResponsePage.previewTabCorrectAnswerResponse()
74
- .should('have.length', 1);
84
+ /**
85
+ * @param {String} correctAnswer correct answer in correct answer wrapper present in grading view
86
+ * @description function verifies correct answer wrapper in grading view
87
+ */
88
+ verifyCorrectAnswerResponseInCorrectAnswerWrapper: (correctAnswer) => {
89
+ utilities.verifyElementVisibilityState(shortTextResponsePage.previewTabCorrectAnswerWrapper(), 'visible');
90
+ utilities.verifyInnerText(shortTextResponsePage.previewTabCorrectAnswerLabel(), 'Correct answer:');
91
+ utilities.verifyElementVisibilityState(shortTextResponsePage.previewTabCorrectAnswerLabel(), 'visible');
92
+ utilities.verifyInnerText(shortTextResponsePage.previewTabCorrectAnswerResponse(), correctAnswer);
93
+ utilities.verifyElementVisibilityState(shortTextResponsePage.previewTabCorrectAnswerResponse(), 'visible');
75
94
  },
76
95
 
77
96
  createBasicShortTextResponseQuestion: (inputQuestion, points, inputAnswer) => {
@@ -79,31 +98,73 @@ const steps = {
79
98
  .type(inputQuestion);
80
99
  shortTextResponsePage.pointsInputField()
81
100
  .type(points);
82
- shortTextResponsePage.setCorrectAnswerResponseField()
101
+ shortTextResponsePage.specifyCorrectAnswerResponseField()
83
102
  .type(inputAnswer);
84
103
  shortTextResponsePage.saveQuestionButton()
85
104
  .click();
105
+ },
106
+
107
+ /**
108
+ * @param {string} text text to entered in set correct answer input field
109
+ */
110
+ enterTextInAnswerInputFieldSpecifyCorrectAnswerSection: (text) => {
111
+ shortTextResponsePage.specifyCorrectAnswerResponseField()
112
+ .type(text)
113
+ .should('have.value', text);
114
+ },
115
+
116
+ clearAndFocusOutOfSpecifyCorrectAnswerInputField: (text) => {
117
+ shortTextResponsePage.setCorrectAnswerResponseField()
118
+ .clear()
119
+ .blur();
120
+ },
121
+
122
+ /**
123
+ * @param {string} text text to entered in set correct answer input field
124
+ */
125
+ enterTextInAnswerInputFieldPreviewTab: (text) => {
126
+ shortTextResponsePage.previewTabResponseField()
127
+ .clear()
128
+ .type(text)
129
+ .should('have.value', text);
130
+ },
131
+
132
+ /**
133
+ * @param {string} text text to entered in set correct answer input field
134
+ */
135
+ verifyTextInAnswerInputFieldPreviewTab: (text) => {
136
+ shortTextResponsePage.previewTabResponseField()
137
+ .should('have.value', text);
138
+ },
139
+
140
+ verifyCorrectAnswerErrorMessage: () => {
141
+ utilities.verifyInnerText(commonComponents.errorMessage().last(), 'Error: Answer is required.');
142
+ },
143
+
144
+ verifyCorrectAnswerErrorMessageIsNotDisplayed: () => {
145
+ commonComponents.steps.verifyErrorMessageIsNotDisplayed();
146
+ },
147
+
148
+ verifyCorrectAnswerWrapperNotExist: () => {
149
+ utilities.verifyElementVisibilityState(shortTextResponsePage.previewTabCorrectAnswerWrapper(), 'notExist');
86
150
  }
87
151
  }
88
152
 
89
153
  const tests = {
90
- ...commonComponents.tests,
154
+ ...autoScoredScoringPreviewTab.tests,
155
+ ...scoringSectionBaseEditTab.tests,
156
+ ...autoScoredScoringSectionMultiResponseType.tests,
91
157
  ...createQuestionBasePage.tests,
92
- ...questionInstructionsComponent.tests,
158
+ ...dialogBoxBase.tests,
159
+ ...commonComponents.tests,
93
160
  ...additionalSettingsPanel.tests,
94
- ...scoringSectionBase.tests,
95
- ...autoScoredSetCorrectAnswerSection.tests,
96
- ...autoScoredScoringSection.tests,
97
- ...autoScoredAdditionalSettings.tests,
98
- ...specialCharactersFlyoutComponent.tests,
99
- ...specialAndCustomSpecialCharactersComponent.tests,
100
- ...previewScoringAndShowCorrectAnswerComponent.tests,
101
- ...studentResponseAndLayoutComponent.tests,
161
+ ...autoScoredSpecifyCorrectAnswerSection.tests,
162
+
102
163
  verifyAnswerInputScoreAndCorrectIncorrectAnswerLabel: (answerInput, score, isCorrect) => {
103
164
  shortTextResponsePage.previewTabResponseField()
104
165
  .clear()
105
166
  .type(answerInput);
106
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
167
+ autoScoredScoringPreviewTab.previewScoreText()
107
168
  .verifyInnerText(score);
108
169
  autoScoredPreviewBase.checkAnswerButton()
109
170
  .click();
@@ -116,71 +177,42 @@ const tests = {
116
177
  };
117
178
  },
118
179
 
119
- verifySetCorrectAnswerTabContentsAndFunctionality: (tabName) => {
120
- it(`CSS of ${tabName} contents`, { tags: 'css' }, () => {
121
- shortTextResponsePage.setCorrectAnswerResponseField()
122
- .verifyCSS(css.color.text, css.fontSize.default, css.fontWeight.regular);
180
+ /**
181
+ * Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
182
+ * @param {{'Correct' | 'Alternative'}} accordionName - The name of the accordion to be used in the validation.
183
+ * @example - verifySpecifyCorrectAnswerAccordionContentsAndFunctionality('Correct');
184
+ */
185
+ verifySpecifyCorrectAnswerAccordionContentsAndFunctionality: (accordionName) => {
186
+ it('User should be able to enter answer in Answer input field in specify correct answer section', () => {
187
+ shortTextResponsePage.steps.enterTextInAnswerInputFieldSpecifyCorrectAnswerSection('Petals');
123
188
  });
124
189
 
125
- it('By default, an empty points input field and a correct answer response field', () => {
126
- shortTextResponsePage.pointsInputField()
127
- .should('have.value', '');
128
- shortTextResponsePage.setCorrectAnswerResponseField()
129
- .should('be.visible');
190
+ it('When user focuses in and out of the response accordion \'Answer\' input field, \'Error: Answer is required.\' error message should be displayed', () => {
191
+ shortTextResponsePage.steps.clearAndFocusOutOfSpecifyCorrectAnswerInputField();
192
+ utilities.verifyElementVisibilityState(commonComponents.errorMessage(), 'visible');
193
+ utilities.verifyInnerText(commonComponents.errorMessage(), 'Error: Answer is required.');
130
194
  });
131
195
 
132
- it('User should be able to enter text in the empty response field', () => {
133
- shortTextResponsePage.setCorrectAnswerResponseField()
134
- .type('Lorem Ipsum')
135
- .should('have.value', 'Lorem Ipsum');
136
- });
196
+ autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredCorrectAnswerErrorMessageCSSAndA11y();
137
197
 
138
- it(`When the user focuses in and out of the empty correct answer response field, \'Error: Please set a correct answer.\' validation error message should be thrown along with an error icon on the \'${tabName}\'`, () => {
139
- cy.log('Pre-step : Clearing the correct answer response field')
140
- shortTextResponsePage.setCorrectAnswerResponseField()
141
- .clear();
142
- cy.get('body')
143
- .click();
144
- commonComponents.errorMessage()
145
- .should('have.text', 'Error: Please set a correct answer.');
146
- if (tabName == 'Correct tab') {
147
- autoScoredSetCorrectAnswerSection.correctTab()
148
- .within(() => {
149
- autoScoredSetCorrectAnswerSection.setCorrectAnswerErrorIcon()
150
- .should('be.visible');
151
- });
152
- } else {
153
- autoScoredSetCorrectAnswerSection.alternateAnswerTab(1)
154
- .within(() => {
155
- autoScoredSetCorrectAnswerSection.setCorrectAnswerErrorIcon()
156
- .should('be.visible');
157
- });
158
- };
198
+ it('When gives an input to \'Answer\' input field,then error message should disappear', () => {
199
+ shortTextResponsePage.steps.enterTextInAnswerInputFieldSpecifyCorrectAnswerSection('Nature');
200
+ commonComponents.steps.verifyErrorMessageIsNotDisplayed();
159
201
  });
160
202
 
161
- autoScoredSetCorrectAnswerSection.tests.verifyCSSAndA11yOfAutoScoredSetCorrectAnswerErrorMessage();
203
+ autoScoredSpecifyCorrectAnswerSection.tests.verifyAutoScoredPointsErrorMessageWhenPointsFieldIsEmpty(accordionName);
162
204
 
163
- it('CSS of response field error state', { tags: 'css' }, () => {
164
- shortTextResponsePage.setCorrectAnswerResponseField()
165
- .should('have.css', 'background-color', css.color.errorFieldBg)
166
- .parent('.short-text-response-input-field')
167
- .find('fieldset')
168
- .should('have.css', 'border', `1px solid ${css.color.errorFieldBorder}`)
205
+ it(`CSS of ${accordionName} accordion contents`, { tags: 'css' }, () => {
206
+ utilities.verifyCSS(utilities.getNthElement(shortTextResponsePage.correctAnswerAccordionLabel(), 0), {
207
+ 'color': css.color.accordionLabel,
208
+ 'font-size': css.fontSize.default,
209
+ 'font-weight': css.fontWeight.bold
210
+ });
169
211
  });
170
212
 
171
- it('Accessibility of response field error state', { tags: 'a11y' }, () => {
172
- cy.checkAccessibility(shortTextResponsePage.setCorrectAnswerResponseField().parents('[class*="ShortTextResponsestyles__ResponseFieldSpecialCharacterButtonWrapper"]'));
213
+ it(`Accessibility of ${accordionName} accordion contents`, { tags: 'a11y' }, () => {
214
+ cy.checkAccessibility(shortTextResponsePage.correctAnswerAccordionLabel().parents('[aria-label="Specify correct answer section"]'));
173
215
  });
174
-
175
- it('When the user has added text in correct answer response field, the error message should disappear', () => {
176
- shortTextResponsePage.setCorrectAnswerResponseField()
177
- .type('dolor sit amet')
178
- .should('have.value', 'dolor sit amet');
179
- commonComponents.errorMessage()
180
- .should('not.exist');
181
- });
182
-
183
- autoScoredSetCorrectAnswerSection.tests.verifyAutoScoredPointsErrorMessageWhenPointsFieldIsEmpty(tabName);
184
216
  },
185
217
 
186
218
  verifyMinimumScoreAwardedForIncorrectAnswer: (totalPoints) => {
@@ -196,12 +228,19 @@ const tests = {
196
228
  shortTextResponsePage.previewTabResponseField()
197
229
  .type('Incorrect answer')
198
230
  .blur();
199
- previewScoringAndShowCorrectAnswerComponent.previewScoreText()
231
+ autoScoredScoringPreviewTab.previewScoreText()
200
232
  .then(($points) => {
201
233
  expect($points.text()).to.equal(`1/${totalPoints}`);
202
234
  });
203
235
  });
204
- }
236
+ },
237
+
238
+ verifyContentsOfSpecifyCorrectAnswerSection: () => {
239
+ it('In the \'Correct\' accordion, one answer input field should be visible', () => {
240
+ utilities.verifyElementVisibilityState(shortTextResponsePage.specifyCorrectAnswerResponseField(), 'visible');
241
+ utilities.verifyElementCount(shortTextResponsePage.specifyCorrectAnswerResponseField(), 1);
242
+ });
243
+ },
205
244
  }
206
245
 
207
246
  export const shortTextResponsePage = {
@@ -80,7 +80,8 @@ const selectors = {
80
80
  textContainersAriaLabelInputFieldNumeration: () => cy.get('[class*="ClozeMathstyle__Numeration"]'),
81
81
 
82
82
  //Preview tab
83
- responseFieldPreviewTab: () => cy.get('.preview-question-text-wrapper [role="textbox"]'),
83
+ responseFieldPreviewTab: () => cy.get('.preview-question-text-wrapper .response-input-field'),
84
+ responseFieldWrapperPreviewTab: () => cy.get('.cloze-response-wrapper'),
84
85
  responseFieldNumerationPreviewTab: () => cy.get('.preview-question-text-wrapper .response-input-adornment'),
85
86
  questionContainerPreviewTab: () => cy.get('[class*="ClozeWithTextPreviewstyle__QuestionPreviewWrapper"]'),
86
87
  tickIcon: () => cy.get('.cloze-with-text-answer-status-response-preview-wrapper .tick-icon-wrapper'),
@@ -619,21 +620,39 @@ const steps = {
619
620
  });
620
621
  },
621
622
 
622
- //Preview tab
623
+ //Preview
624
+ /**
625
+ * This function verifies the input field text of response area
626
+ * @param {number} index index of response field
627
+ * @param {string} inputFieldText input field text in the preview tab
628
+ */
629
+ verifyResponseAreaTextContentPreviewTab: (index, inputFieldText) => {
630
+ utilities.verifyTextContent(utilities.getNthElement(textEntryMathPage.responseFieldPreviewTab(), index), inputFieldText);
631
+ },
632
+
623
633
  /**
624
634
  *@description Verifies the correctness of answer responses in the correct answer section, including the count.
625
- * @param {string[][]} correctAnswerArray An array of arrays, each containing the expected answer options for a specific correct answer section.
635
+ * @param {string[]} correctAnswerArray An array of arrays, each containing the expected answer options for a specific correct answer section.
626
636
  */
627
637
  verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount: (correctAnswerArray) => {
628
638
  utilities.verifyElementCount(textEntryMathPage.correctAnswersContainerResponse(), correctAnswerArray.length);
629
639
  correctAnswerArray.forEach((correctAnswer, index) => {
630
640
  utilities.verifyTextContent(utilities.getNthElement(textEntryMathPage.correctAnswersContainerResponseNumeration(), index), index + 1);
631
- correctAnswer.forEach((answerOption) => {
632
- utilities.verifyTextContent(utilities.getNthElement(textEntryMathPage.correctAnswersContainerResponse(), index), answerOption);
633
- });
641
+ utilities.verifyTextContent(utilities.getNthElement(textEntryMathPage.correctAnswersContainerResponse(), index), correctAnswer);
634
642
  });
635
643
  },
636
644
 
645
+ /**
646
+ *@description Verifies the correctness of answer responses in the correct answer section, including the count.
647
+ * @param {string} correctAnswerArray the expected answer options aria label for a specific correct answer section.
648
+ */
649
+ verifyCorrectAnswerResponsesAriaLabel: (index, correctAnswerAriaLabel) => {
650
+ textEntryMathPage.correctAnswersContainerResponse()
651
+ .eq(index)
652
+ .find('[role="math"]')
653
+ .should('have.attr', 'aria-label', correctAnswerAriaLabel);
654
+ },
655
+
637
656
  verifyResponseFieldNumerationPreviewTab: () => {
638
657
  textEntryMathPage.responseFieldNumerationPreviewTab()
639
658
  .each(($element, index) => {
@@ -662,18 +681,49 @@ const steps = {
662
681
  .click();
663
682
  },
664
683
 
684
+ /**
685
+ * This function verifies the correct/incorrect icon does not exist
686
+ * @param {number} index of the response field
687
+ */
688
+ verifyCorrectIncorrectIconNotExist: (index) => {
689
+ textEntryMathPage.responseFieldWrapperPreviewTab()
690
+ .eq(index)
691
+ .within(() => {
692
+ utilities.verifyElementVisibilityState(textEntryMathPage.tickIcon(), 'notExist');
693
+ });
694
+ },
695
+
696
+ /**
697
+ * This function verifies the correct icon for the response field
698
+ * @param {number} index of the response field
699
+ */
665
700
  verifyCorrectResponseIcon: (index) => {
666
701
  textEntryMathPage.tickIcon()
667
702
  .eq(index)
668
703
  .verifyPseudoClassBeforeProperty('color', css.color.correctAnswer);
669
704
  },
670
705
 
706
+ /**
707
+ * This function verifies the incorrect icon for the response field
708
+ * @param {number} index of the response field
709
+ */
671
710
  verifyIncorrectResponseIcon: (index) => {
672
711
  textEntryMathPage.tickIcon()
673
712
  .eq(index)
674
713
  .verifyPseudoClassBeforeProperty('color', css.color.incorrectAnswer);
675
714
  },
676
715
 
716
+ /**
717
+ * This function verifies the aria label entered in the response field
718
+ * @param {string} ariaLabel of the equation entered
719
+ */
720
+ verifyResponseFieldEquationAriaLabel: (responseIndex, ariaLabel) => {
721
+ textEntryMathPage.responseFieldPreviewTab()
722
+ .eq(responseIndex)
723
+ .find('[role="math"]')
724
+ .should('have.attr', 'aria-label', ariaLabel);
725
+ },
726
+
677
727
  verifyCorrectAnswerSectionNotExists: () => {
678
728
  utilities.verifyElementVisibilityState(textEntryMathPage.correctAnswersLabel(), 'notExist');
679
729
  utilities.verifyElementVisibilityState(textEntryMathPage.correctAnswersContainerResponse(), 'notExist');
@@ -696,7 +746,7 @@ const steps = {
696
746
  utilities.verifyElementVisibilityState(autoScoredScoringPreviewTab.incorrectIcon(), 'visible');
697
747
  }
698
748
  });
699
- },
749
+ }
700
750
  }
701
751
 
702
752
  const tests = {
@@ -706,6 +756,7 @@ const tests = {
706
756
  ...autoScoredSpecifyCorrectAnswerSection.tests,
707
757
  ...scoringSectionBaseEditTab.tests,
708
758
  ...autoScoredScoringSectionMultiResponseType.tests,
759
+ ...autoScoredScoringPreviewTab.tests,
709
760
 
710
761
  /**
711
762
  * Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.113",
3
+ "version": "1.0.114",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {