itemengine-cypress-automation 1.0.86 → 1.0.88
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.
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseCustomizeAdditionalOptions.js +30 -30
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/EssayResponse/createCustomCategory.smoke.js +568 -0
- package/cypress/e2e/ILC/EssayResponse/editAndPreviewTabScoringSection.js +86 -0
- package/cypress/e2e/ILC/EssayResponse/editTabBasicSections.js +389 -0
- package/cypress/e2e/ILC/EssayResponse/gradingViewAndCorrectAnswerViewContents.smoke.js +112 -0
- package/cypress/e2e/ILC/EssayResponse/headerSection.js +68 -0
- package/cypress/e2e/ILC/EssayResponse/previewAddTable.js +290 -0
- package/cypress/e2e/ILC/EssayResponse/previewContentsForAllViews.smoke.js +79 -0
- package/cypress/e2e/ILC/EssayResponse/previewEditTable.js +379 -0
- package/cypress/e2e/ILC/EssayResponseBasic/essayResponseBasicCustomizeFormattingOptions.js +207 -0
- package/cypress/e2e/ILC/EssayResponseBasic/gradingViewAndCorrectAnswerViewContents.smoke.js +115 -0
- package/cypress/e2e/ILC/EssayResponseBasic/previewContentsForAllViews.smoke.js +79 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/FillInTheGapsOverImageDragAndDropScoring/partialDifferentWeightsBasic.js +159 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +507 -29
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +6 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/responseAnswersAndAcceptedStudentInput.js +272 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specialCharactersSection.js +300 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specifyCorrectAnswerSection.js +3 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +204 -0
- package/cypress/e2e/ILC/Protractor/protractorEditTabBasicsSection.js +4 -4
- package/cypress/e2e/ILC/Protractor/protractorEditTabFunctionality.js +1 -1
- package/cypress/e2e/ILC/Ruler/rulerEditTabBasicsSection.js +4 -4
- package/cypress/e2e/ILC/Ruler/rulerEditTabFunctionality.js +1 -1
- package/cypress/e2e/ILC/SingleSelection/editTabScoringSection.js +1 -3
- package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +205 -0
- package/cypress/e2e/ILC/TextEntryMath/editTabScoringSection.js +259 -0
- package/cypress/e2e/ILC/TextEntryMath/minimumScoringPenaltyPointsAndRoundingDropdown.js +202 -0
- package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +613 -0
- package/cypress/e2e/ILC/TextEntryMath/specifyCorrectAnswerSection.js +71 -0
- package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +318 -318
- package/cypress/fixtures/theme/ilc.json +3 -0
- package/cypress/pages/components/backgroundImageUploadComponent.js +1 -2
- package/cypress/pages/components/colorPopupComponent.js +26 -3
- package/cypress/pages/components/createCustomCategoryFlyout.js +351 -46
- package/cypress/pages/components/customizeSpecialCharacterComponent.js +165 -0
- package/cypress/pages/components/equationEditorFlyout.js +124 -0
- package/cypress/pages/components/essayResponseCommonComponents.js +3 -0
- package/cypress/pages/components/figOverImageCanvasComponent.js +316 -7
- package/cypress/pages/components/index.js +3 -1
- package/cypress/pages/components/opacityComponent.js +31 -4
- package/cypress/pages/components/specialAndCustomSpecialCharactersComponent.js +1 -0
- package/cypress/pages/components/specialCharactersFlyoutComponent.js +1 -0
- package/cypress/pages/drawingResponsePage.js +33 -138
- package/cypress/pages/essayResponsePage.js +612 -26
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +48 -7
- package/cypress/pages/fillInTheGapsOverImageTextPage.js +267 -13
- package/package.json +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
import constants from "../fixtures/constants";
|
2
2
|
import utilities from "../support/helpers/utilities";
|
3
|
-
import { createQuestionBasePage, questionInstructionsComponent, uploadImageSectionComponent, scoringSectionBaseEditTab, optionsWrapperComponent, equationEditorFlyout, ckEditorToolbar, commonComponents, autoScoredScoringPreviewTab, autoScoredStudentViewSettings, maximumCapacityPerDropzoneComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, figOverImageCanvasComponent, backgroundImageUploadComponent, correctIncorrectAnswerLabelComponent,
|
3
|
+
import { createQuestionBasePage, questionInstructionsComponent, uploadImageSectionComponent, scoringSectionBaseEditTab, optionsWrapperComponent, equationEditorFlyout, ckEditorToolbar, commonComponents, autoScoredScoringPreviewTab, autoScoredStudentViewSettings, maximumCapacityPerDropzoneComponent, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, figOverImageCanvasComponent, backgroundImageUploadComponent, correctIncorrectAnswerLabelComponent, draggableOptionsSectionComponent, draggableOptionContainer, studentViewSettingsLabelComponent, randomizeOptionsComponent, enableOuterBorderComponent, allowMultipleInstancesOfSameDraggableOptionComponent, additionalSettingsPanel, opacityComponent, imageActionsComponent, colorPopupComponent } from "./components";
|
4
4
|
import { dialogBoxBase } from "./dialogBoxBase";
|
5
5
|
const css = Cypress.env('css');
|
6
6
|
|
@@ -28,6 +28,7 @@ const selectors = {
|
|
28
28
|
...opacityComponent,
|
29
29
|
...uploadImageSectionComponent,
|
30
30
|
...imageActionsComponent,
|
31
|
+
...colorPopupComponent,
|
31
32
|
dropzonePreviewTab: () => cy.get('.drag-and-drop-canvas [class*="__DraggableWrapper"]'),
|
32
33
|
dropzoneContainerPreviewTab: () => cy.get('[class*="Canvasstyle__DropzoneWrapper"]'),
|
33
34
|
optionContainerOptionsPreviewTab: () => cy.get('.item-list .draggable-options-item:visible'),
|
@@ -49,6 +50,10 @@ const selectors = {
|
|
49
50
|
dropzoneLabelSpecifyCorrectAnswerSection: () => cy.get('.dropzone-and-label-wrapper .title-casing'),
|
50
51
|
questionBorderPreviewTab: () => cy.get('.label-image-with-dnd-canvas-wrapper [class*="DragDropContextLayoutWrapper"]'),
|
51
52
|
maxLimitInEachDropzoneHelpText: () => cy.get('[class*="Canvasstyle__LimitWrapper"]'),
|
53
|
+
penaltyPointsForEachIncorrectDropzoneInputField: () => cy.get('input[aria-label="Penalty points for each incorrect dropzone"]'),
|
54
|
+
specifyPointsForEachIncorrectDropzoneRadioButton: () => cy.get('input[aria-label*="Specify points for each incorrect"]'),
|
55
|
+
textAreaImageCanvas: () => cy.get('.drag-and-drop-canvas textarea'),
|
56
|
+
textAreaPreviewTab: () => cy.get('.drag-and-drop-layout-wrapper textarea'),
|
52
57
|
penaltyPointsForEachIncorrectDropzoneInputField: () => cy.get('input[aria-label="Penalty points for each incorrect dropzone"]')
|
53
58
|
}
|
54
59
|
|
@@ -79,7 +84,7 @@ const steps = {
|
|
79
84
|
...additionalSettingsPanel.steps,
|
80
85
|
...opacityComponent.steps,
|
81
86
|
...imageActionsComponent.steps,
|
82
|
-
|
87
|
+
...colorPopupComponent.steps,
|
83
88
|
/**
|
84
89
|
* @description Verifies the text content of a specific preview tab dropzone element.
|
85
90
|
* @param {number} count - The index of the preview tab dropzone element to verify (zero-based).
|
@@ -385,6 +390,11 @@ const steps = {
|
|
385
390
|
.blur();
|
386
391
|
},
|
387
392
|
|
393
|
+
selectPenaltyPointsForEachIncorrectDropzone: () => {
|
394
|
+
fillInTheGapsOverImageDragAndDropPage.specifyPointsForEachIncorrectDropzoneRadioButton()
|
395
|
+
.click();
|
396
|
+
},
|
397
|
+
|
388
398
|
verifyInactiveStateOfAllDropzoneInSpecifyCorrectAnswerSection: () => {
|
389
399
|
fillInTheGapsOverImageDragAndDropPage.dropzoneWrapperSpecifyCorrectAnswerSection()
|
390
400
|
.should('not.have.class', 'dragging-over');
|
@@ -491,12 +501,33 @@ const steps = {
|
|
491
501
|
},
|
492
502
|
|
493
503
|
/**
|
494
|
-
*
|
495
|
-
* @
|
496
|
-
* @param {number} responses[].groupIndex - The index of the group
|
497
|
-
* @param {string} responses[].responseText - The text of the option
|
498
|
-
* @param {string} responses[].dropzoneIndex - The index of the dropzone
|
504
|
+
* @param {string} text text to be entered in the text area
|
505
|
+
* @description this function adds input to the text area
|
499
506
|
*/
|
507
|
+
enterTextInTextArea: (text) => {
|
508
|
+
fillInTheGapsOverImageDragAndDropPage.textAreaImageCanvas()
|
509
|
+
.type(text)
|
510
|
+
.blur();
|
511
|
+
fillInTheGapsOverImageDragAndDropPage.textAreaImageCanvas()
|
512
|
+
.should('have.text', text);
|
513
|
+
},
|
514
|
+
|
515
|
+
/**
|
516
|
+
* @param {string} text text to be verified in the preview tab text area
|
517
|
+
* @description this function verifies input in the text area
|
518
|
+
*/
|
519
|
+
verifyTextInTextAreaPreviewTab: (text) => {
|
520
|
+
fillInTheGapsOverImageDragAndDropPage.textAreaPreviewTab()
|
521
|
+
.should('have.text', text);
|
522
|
+
},
|
523
|
+
|
524
|
+
/**
|
525
|
+
* Sets options in dropzone in the Preview Tab based on the provided optionsObject.
|
526
|
+
* @param {Object[]} responses - An array of objects containing the responseIndex, responseText and dropzone index
|
527
|
+
* @param {number} responses[].groupIndex - The index of the group
|
528
|
+
* @param {string} responses[].responseText - The text of the option
|
529
|
+
* @param {string} responses[].dropzoneIndex - The index of the dropzone
|
530
|
+
*/
|
500
531
|
clickAndDropOptionFromNthGroupInDropzonePreviewTab: (responses) => {
|
501
532
|
responses.forEach(({ responseText, groupIndex, dropzoneIndex }) => {
|
502
533
|
draggableOptionContainer.groupedOptionsContainerPreviewTab()
|
@@ -511,6 +542,14 @@ const steps = {
|
|
511
542
|
.eq(dropzoneIndex)
|
512
543
|
.click({ force: true });
|
513
544
|
});
|
545
|
+
},
|
546
|
+
|
547
|
+
/**
|
548
|
+
* @param {number} count count of dropzones in specify correct answer section
|
549
|
+
* @description verifies count of dropzones in specify correct answer section
|
550
|
+
*/
|
551
|
+
verifyDropzoneCountInSpecifyCorrectAnswerSection: (count) => {
|
552
|
+
utilities.verifyElementCount(fillInTheGapsOverImageDragAndDropPage.dropzoneWrapperSpecifyCorrectAnswerSection(), count);
|
514
553
|
}
|
515
554
|
}
|
516
555
|
|
@@ -531,6 +570,8 @@ const tests = {
|
|
531
570
|
...createQuestionBasePage.tests,
|
532
571
|
...commonComponents.tests,
|
533
572
|
...additionalSettingsPanel.tests,
|
573
|
+
...colorPopupComponent.tests,
|
574
|
+
...opacityComponent.tests,
|
534
575
|
verifyContentsOfSpecifyCorrectAnswerSection: () => {
|
535
576
|
it('When user selects a scoring type then in the \'Correct\' accordion, all the contents should be displayed', () => {
|
536
577
|
utilities.verifyElementCount(fillInTheGapsOverImageDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), 3);
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import utilities from "../support/helpers/utilities";
|
2
|
-
import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, commonComponents, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, backgroundImageUploadComponent, optionsWrapperComponent, figOverImageCanvasComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, acceptedStudentInputComponent } from "./components";
|
2
|
+
import { questionInstructionsComponent, scoringSectionBaseEditTab, createQuestionBasePage, commonComponents, autoScoredScoringPreviewTab, autoScoredSpecifyCorrectAnswerSection, autoScoredScoringSectionMultiResponseType, backgroundImageUploadComponent, optionsWrapperComponent, figOverImageCanvasComponent, correctIncorrectAnswerLabelComponent, autoScoredStudentViewSettings, acceptedStudentInputComponent, customizeSpecialCharacterComponent } from "./components";
|
3
|
+
import { dialogBoxBase } from "./dialogBoxBase";
|
3
4
|
const css = Cypress.env('css');
|
4
5
|
|
5
6
|
const selectors = {
|
@@ -7,30 +8,58 @@ const selectors = {
|
|
7
8
|
...figOverImageCanvasComponent,
|
8
9
|
...commonComponents,
|
9
10
|
...correctIncorrectAnswerLabelComponent,
|
11
|
+
...customizeSpecialCharacterComponent,
|
10
12
|
...autoScoredScoringSectionMultiResponseType,
|
11
13
|
...autoScoredSpecifyCorrectAnswerSection,
|
14
|
+
...autoScoredStudentViewSettings,
|
15
|
+
...autoScoredScoringPreviewTab,
|
12
16
|
|
13
17
|
//TODO: Update below selectors after https://redmine.zeuslearning.com/issues/557945 is resolved
|
14
18
|
//response accordion
|
15
19
|
responseAccordion: () => cy.get('.response-text-accordion'),
|
16
20
|
responseAccordionLabel: () => cy.get('[class*="ResponseComponentstyles__Label"]'),
|
17
|
-
|
21
|
+
responseAccordionAnswersLabel: () => cy.get('.correct-response-answer-wrapper-cls .points-label'),
|
22
|
+
responseAccordionAnswerInputFieldWrapper: () => cy.get('.label-image-text-answer-label'),
|
23
|
+
responseAccordionAnswerNumeration: () => cy.get('.additional-option-placeholder-input .start-adornment'),
|
24
|
+
responseAccordionAnswerDeleteButton: () => cy.get('.delete-button'),
|
18
25
|
responseAccordionPointsWrapper: () => cy.get('[class*="ResponseComponentstyles__PointsDiv"]'),
|
19
26
|
responseAccordionPointsLabel: () => cy.get('[class*="ResponseComponentstyles__PointsLabel"]'),
|
20
27
|
responseAccordionPointsScore: () => cy.get('[class*="ResponseComponentstyles__Points-"]'),
|
21
28
|
responseAccordionPointsInputFieldWrapper: () => cy.get('[class*="ResponseComponentstyles__PointsWrapper"]'),
|
22
29
|
responseAccordionAddAlternateButton: () => cy.get('.add-alternate-btn'),
|
23
|
-
|
30
|
+
responseAccordionAddAlternateButtonLabel: () => cy.get('.add-alternate-btn p'),
|
31
|
+
responseAreaNumeration: () => cy.get('.response-input-adornment'),
|
32
|
+
|
24
33
|
answerInputFieldSpecifyCorrectAnswerSection: () => cy.get('.label-image-text-inline-text-field input'),
|
25
34
|
answerInputFieldPreviewTab: () => cy.get('[class*="question-preview-wrapper"] .response-input-field input'),
|
26
35
|
correctAnswerSectionWrapper: () => cy.get('.cloze-with-text-correct-answer-wrapper'),
|
27
|
-
correctAnswersLabel: () => cy.get('.
|
28
|
-
responseStatusWrapper: () => cy.get('.cloze-with-text-answer-status-response-preview-wrapper'),
|
36
|
+
correctAnswersLabel: () => cy.get('.correct-answers-label'),
|
37
|
+
responseStatusWrapper: () => cy.get('.cloze-with-text-answer-status-response-preview-wrapper:visible'),
|
29
38
|
tickIconWrapper: () => cy.get('.tick-icon-wrapper [data-name*="Rectangle"]'),
|
30
|
-
responseAreaNumeration: () => cy.get('.response-input-adornment'),
|
31
39
|
correctAnswerResponseNumeration: () => cy.get('.answer-numeration-number-box'),
|
32
40
|
correctAnswerResponseWrapper: () => cy.get('[class*="ClozeWithTextResponsestyles__AnswerCell"]'),
|
33
|
-
correctAnswerResponse: () => cy.get('[class*="AnswerWrapperForLabel"]')
|
41
|
+
correctAnswerResponse: () => cy.get('[class*="AnswerWrapperForLabel"]'),
|
42
|
+
specialCharactersButtonPreviewTab: () => cy.get('.cloze-with-text-special-character-button'),
|
43
|
+
|
44
|
+
//Special characters section
|
45
|
+
specialCharactersLabel: () => cy.get('[class*="LabelImageWithTextstyles__CustomizedSpecialCharacterWrapper"]'),
|
46
|
+
enableSpecialCharactersCheckbox: () => cy.get('[data-ngie-testid="enable-special-characters-checkbox"] input'),
|
47
|
+
enableSpecialCharactersLabel: () => cy.get('[data-ngie-testid="enable-special-characters-checkbox"] [class*="MuiFormControlLabel-label"]'),
|
48
|
+
|
49
|
+
//TODO: Shift all preview tab special characters popup related selectors/steps to a common component file once https://redmine.zeuslearning.com/issues/559296 is resolved
|
50
|
+
//preview tab special characters
|
51
|
+
specialCharactersPopupTitlePreviewTab: () => cy.get('[class*="Popupstyles__TitleWrapper"]'),
|
52
|
+
specialCharactersPopupCategoryAccordionLabelPreviewTab: () => cy.get('[class*="ResponseInputComponentstyles__AccordionLabel"]'),
|
53
|
+
specialCharactersPopupCategoryAccordionWrapperPreviewTab: () => cy.get('.special-character-accordion'),
|
54
|
+
specialCharactersPopupSymbolPreviewTab: () => cy.get('.ngie-accordion button'),
|
55
|
+
specialCharactersPopupCategoryAccordionChevronButtonPreviewTab: () => cy.get('[class*="MuiAccordionSummary-expandIconWrapper"]'),
|
56
|
+
specialCharactersPopupCategoryAccordionCloseButtonPreviewTab: () => cy.get('[data-at="close-button"]'),
|
57
|
+
specialCharactersCustomSymbolsPreviewTab: () => cy.get('[class*="ResponseInputComponentstyles__PopupContentWrapper"] button'),
|
58
|
+
|
59
|
+
spellCheckLabel: () => cy.get('[data-ngie-testid="spell-check-checkbox"] .MuiFormControlLabel-label'),
|
60
|
+
spellCheckCheckbox: () => cy.get('[data-ngie-testid="spell-check-checkbox"] input[type="checkbox"]'),
|
61
|
+
//TODO: Need to remove it from here when https://redmine.zeuslearning.com/issues/558979 is resolved
|
62
|
+
checkAnswerButton: () => cy.get('.check-answer-and-status-wrapper button').last(),
|
34
63
|
}
|
35
64
|
|
36
65
|
const steps = {
|
@@ -47,6 +76,9 @@ const steps = {
|
|
47
76
|
...correctIncorrectAnswerLabelComponent.steps,
|
48
77
|
...autoScoredStudentViewSettings.steps,
|
49
78
|
...acceptedStudentInputComponent.steps,
|
79
|
+
...customizeSpecialCharacterComponent.steps,
|
80
|
+
...autoScoredStudentViewSettings.steps,
|
81
|
+
|
50
82
|
/**
|
51
83
|
* Enter text in the answer input fields of the specify correct answer section.
|
52
84
|
* @param {Object[]} responses - An array of objects containing the responseIndex and responseText.
|
@@ -75,6 +107,7 @@ const steps = {
|
|
75
107
|
enterTextInAnswerInputFieldsPreviewTab: (responses) => {
|
76
108
|
responses.forEach(({ responseIndex, responseText }) => {
|
77
109
|
utilities.getNthElement(fillInTheGapsOverImageTextPage.answerInputFieldPreviewTab(), responseIndex)
|
110
|
+
.clear()
|
78
111
|
.type(responseText)
|
79
112
|
.blur();
|
80
113
|
});
|
@@ -216,11 +249,66 @@ const steps = {
|
|
216
249
|
* @param {number} answerFieldIndex answer input field index
|
217
250
|
*/
|
218
251
|
focusInAndFocusOutOfResponseAnswerInputFieldSpecifyCorrectAnswer: (answerFieldIndex) => {
|
219
|
-
utilities.getNthElement(fillInTheGapsOverImageTextPage.
|
252
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.answerInputFieldSpecifyCorrectAnswerSection(), answerFieldIndex)
|
220
253
|
.click()
|
221
254
|
.blur();
|
222
255
|
},
|
223
256
|
|
257
|
+
/**
|
258
|
+
* Focus in response input field in preview tab
|
259
|
+
* @param {number} responseInputFieldIndex response input field index
|
260
|
+
*/
|
261
|
+
focusInResponseInputFieldPreviewTab: (responseInputFieldIndex) => {
|
262
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.answerInputFieldPreviewTab(), responseInputFieldIndex)
|
263
|
+
.click();
|
264
|
+
},
|
265
|
+
|
266
|
+
verifyEnableSpecialCharactersCheckboxUnchecked: () => {
|
267
|
+
fillInTheGapsOverImageTextPage.enableSpecialCharactersCheckbox()
|
268
|
+
.should('not.be.checked');
|
269
|
+
},
|
270
|
+
|
271
|
+
checkEnableSpecialCharactersCheckbox: () => {
|
272
|
+
fillInTheGapsOverImageTextPage.enableSpecialCharactersCheckbox()
|
273
|
+
.click()
|
274
|
+
.should('be.checked');
|
275
|
+
},
|
276
|
+
|
277
|
+
uncheckEnableSpecialCharactersCheckbox: () => {
|
278
|
+
fillInTheGapsOverImageTextPage.enableSpecialCharactersCheckbox()
|
279
|
+
.click()
|
280
|
+
.should('not.be.checked');
|
281
|
+
},
|
282
|
+
|
283
|
+
openSpecialCharactersPopupPreviewTab: () => {
|
284
|
+
fillInTheGapsOverImageTextPage.specialCharactersButtonPreviewTab()
|
285
|
+
.click();
|
286
|
+
},
|
287
|
+
|
288
|
+
/**
|
289
|
+
* @description Verify symbols displayed in for a category in special characters popup
|
290
|
+
* @param {number} categoryIndex Index of the category
|
291
|
+
* @param {string[]} categorySymbolsArray Array of the symbols of the category
|
292
|
+
*/
|
293
|
+
verifySpecialCharactersPopupCategorySymbolsInPreviewTab: (categoryIndex, categorySymbolsArray) => {
|
294
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.specialCharactersPopupCategoryAccordionLabelPreviewTab(), categoryIndex)
|
295
|
+
.click();
|
296
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.specialCharactersPopupCategoryAccordionWrapperPreviewTab(), categoryIndex)
|
297
|
+
.within(() => {
|
298
|
+
categorySymbolsArray[index].forEach((symbolARIALabel, index) => {
|
299
|
+
fillInTheGapsOverImageTextPage.specialCharactersPopupSymbolPreviewTab()
|
300
|
+
.eq(index)
|
301
|
+
.find('svg')
|
302
|
+
.should('have.attr', 'aria-label', `${symbolARIALabel}`);
|
303
|
+
});
|
304
|
+
});
|
305
|
+
},
|
306
|
+
|
307
|
+
closeSpecialCharactersPopupPreviewTab: () => {
|
308
|
+
fillInTheGapsOverImageTextPage.specialCharactersPopupCategoryAccordionCloseButtonPreviewTab()
|
309
|
+
.click();
|
310
|
+
},
|
311
|
+
|
224
312
|
/**
|
225
313
|
* Verify the points score displayed on response accordions
|
226
314
|
* @param {number} responseAccordionIndex index of response accordion
|
@@ -243,10 +331,38 @@ const steps = {
|
|
243
331
|
},
|
244
332
|
|
245
333
|
/**
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
334
|
+
* Verify custom special characters displayed in special characters popup in preview tab
|
335
|
+
* @param {string[]} customSpecialCharacters Array of custom special characters
|
336
|
+
*/
|
337
|
+
verifyCustomSpecialCharactersInSpecialCharactersPopupPreviewTab: (customSpecialCharacters) => {
|
338
|
+
dialogBoxBase.dialogBox()
|
339
|
+
.within(() => {
|
340
|
+
customSpecialCharacters.forEach((customSpecialCharacter, index) => {
|
341
|
+
utilities.verifyInnerText(fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab().eq(index), `${customSpecialCharacter}`);
|
342
|
+
utilities.verifyElementVisibilityState(fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab().eq(index), 'visible');
|
343
|
+
});
|
344
|
+
utilities.verifyElementCount(fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab(), `${customSpecialCharacters.length}`);
|
345
|
+
});
|
346
|
+
},
|
347
|
+
|
348
|
+
/**
|
349
|
+
* click on custom special character symbol in special characters popup in preview tab
|
350
|
+
* @param {string} customSpecialCharacterSymbol custom special character symbol
|
351
|
+
*/
|
352
|
+
clickOnCustomSpecialCharacterSymbolInSpecialCharactersPopupPreviewTab: (customSpecialCharacterSymbol) => {
|
353
|
+
dialogBoxBase.dialogBox()
|
354
|
+
.within(() => {
|
355
|
+
fillInTheGapsOverImageTextPage.specialCharactersCustomSymbolsPreviewTab()
|
356
|
+
.contains(customSpecialCharacterSymbol)
|
357
|
+
.click();
|
358
|
+
});
|
359
|
+
},
|
360
|
+
|
361
|
+
/**
|
362
|
+
* Verify the points input field and label displayed in response accordions
|
363
|
+
* @param {number} responseAccordionIndex index of response accordion
|
364
|
+
* @param {number} pointsInputFieldValue Points input field value
|
365
|
+
*/
|
250
366
|
verifyPointsLabelAndInputFieldInResponseAccordion: (responseAccordionIndex, pointsInputFieldValue) => {
|
251
367
|
utilities.getNthElement(fillInTheGapsOverImageTextPage.responseAccordionPointsInputFieldWrapper(), responseAccordionIndex)
|
252
368
|
.within(() => {
|
@@ -267,7 +383,144 @@ const steps = {
|
|
267
383
|
.within(() => {
|
268
384
|
scoringSectionBaseEditTab.steps.allotPoints(pointsInputFieldValue);
|
269
385
|
});
|
270
|
-
}
|
386
|
+
},
|
387
|
+
|
388
|
+
/**
|
389
|
+
*@description Verify text in the answer input fields of the specify correct answer section.
|
390
|
+
* @param {Object[]} responses - An array of objects containing the responseIndex and responseText.
|
391
|
+
* @param {number} responses[].responseIndex - The index of the answer input field for each response.
|
392
|
+
* @param {string} responses[].responseText - The text to be verified for the respective answer input field.
|
393
|
+
*/
|
394
|
+
verifyTextInResponseAccordionAnswerInputField: (responses) => {
|
395
|
+
responses.forEach(({ responseIndex, responseText }) => {
|
396
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.answerInputFieldSpecifyCorrectAnswerSection(), responseIndex)
|
397
|
+
.should('have.value', responseText);
|
398
|
+
});
|
399
|
+
},
|
400
|
+
|
401
|
+
/**
|
402
|
+
*@description Verify numeration text for the answer input fields of the specify correct answer section.
|
403
|
+
* @param responseAccordionIndex denotes response accordion index
|
404
|
+
*/
|
405
|
+
verifyResponseAccordionAnswerInputFieldNumeration: (responseAccordionIndex) => {
|
406
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.responseAccordion(), responseAccordionIndex)
|
407
|
+
.within(() => {
|
408
|
+
fillInTheGapsOverImageTextPage.responseAccordionAnswerInputFieldWrapper()
|
409
|
+
.each(($el, index) => {
|
410
|
+
cy.wrap($el)
|
411
|
+
.within(() => {
|
412
|
+
fillInTheGapsOverImageTextPage.responseAccordionAnswerNumeration()
|
413
|
+
.should('have.text', `${index + 1}`);
|
414
|
+
});
|
415
|
+
});
|
416
|
+
});
|
417
|
+
},
|
418
|
+
|
419
|
+
/**
|
420
|
+
*@description Verify delete button for the answer input fields of the specify correct answer section.
|
421
|
+
* @param responseAccordionIndex denotes response accordion index
|
422
|
+
*/
|
423
|
+
verifyResponseAccordionAnswerInputFieldDeleteButton: (responseAccordionIndex) => {
|
424
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.responseAccordion(), responseAccordionIndex)
|
425
|
+
.within(() => {
|
426
|
+
fillInTheGapsOverImageTextPage.responseAccordionAnswerInputFieldWrapper()
|
427
|
+
.each(($el) => {
|
428
|
+
cy.wrap($el)
|
429
|
+
.within(() => {
|
430
|
+
fillInTheGapsOverImageTextPage.responseAccordionAnswerDeleteButton()
|
431
|
+
.should('be.visible');
|
432
|
+
});
|
433
|
+
});
|
434
|
+
});
|
435
|
+
},
|
436
|
+
|
437
|
+
/**
|
438
|
+
*@description Clicks delete button for the answer input fields of the specify correct answer section.
|
439
|
+
* @param responseAccordionIndex denotes response accordion index
|
440
|
+
*/
|
441
|
+
deleteResponseAccordionAnswerInputField: (responseAccordionIndex, responseAccordionAnswerInputFieldIndex) => {
|
442
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.responseAccordion(), responseAccordionIndex)
|
443
|
+
.within(() => {
|
444
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.responseAccordionAnswerInputFieldWrapper(), responseAccordionAnswerInputFieldIndex)
|
445
|
+
.within(() => {
|
446
|
+
fillInTheGapsOverImageTextPage.responseAccordionAnswerDeleteButton()
|
447
|
+
.click();
|
448
|
+
});
|
449
|
+
});
|
450
|
+
},
|
451
|
+
|
452
|
+
verifySpellCheckCheckboxUnchecked: () => {
|
453
|
+
fillInTheGapsOverImageTextPage.spellCheckCheckbox()
|
454
|
+
.should('not.be.checked');
|
455
|
+
},
|
456
|
+
|
457
|
+
verifySpellCheckCheckboxChecked: () => {
|
458
|
+
fillInTheGapsOverImageTextPage.spellCheckCheckbox()
|
459
|
+
.should('be.checked');
|
460
|
+
},
|
461
|
+
|
462
|
+
/**
|
463
|
+
* Verify that the spell check for a response field in the Preview Tab is disabled.
|
464
|
+
* @param {number} responseFieldIndex - The index of the response field to verify.
|
465
|
+
*/
|
466
|
+
verifySpellCheckOfResponseFieldPreviewTabDisabled: (responseFieldIndex) => {
|
467
|
+
fillInTheGapsOverImageTextPage.answerInputFieldPreviewTab()
|
468
|
+
.eq(responseFieldIndex)
|
469
|
+
.should('have.attr', 'spellcheck', 'false');
|
470
|
+
},
|
471
|
+
|
472
|
+
/**
|
473
|
+
* Verify that the spell check for a response field in the Preview Tab is enabled.
|
474
|
+
* @param {number} responseFieldIndex - The index of the response field to verify.
|
475
|
+
*/
|
476
|
+
verifySpellCheckOfResponseFieldPreviewTabEnabled: (responseFieldIndex) => {
|
477
|
+
fillInTheGapsOverImageTextPage.answerInputFieldPreviewTab()
|
478
|
+
.eq(responseFieldIndex)
|
479
|
+
.should('have.attr', 'spellcheck', 'true');
|
480
|
+
},
|
481
|
+
|
482
|
+
checkSpellCheckCheckbox: () => {
|
483
|
+
fillInTheGapsOverImageTextPage.spellCheckCheckbox()
|
484
|
+
.click()
|
485
|
+
steps.verifySpellCheckCheckboxChecked();
|
486
|
+
},
|
487
|
+
|
488
|
+
uncheckSpellCheckCheckbox: () => {
|
489
|
+
fillInTheGapsOverImageTextPage.spellCheckCheckbox()
|
490
|
+
.click();
|
491
|
+
steps.verifySpellCheckCheckboxUnchecked();
|
492
|
+
},
|
493
|
+
|
494
|
+
//TODO: Need to remove it from here when https://redmine.zeuslearning.com/issues/558979 is resolved
|
495
|
+
checkAnswer: () => {
|
496
|
+
fillInTheGapsOverImageTextPage.checkAnswerButton()
|
497
|
+
.click();
|
498
|
+
},
|
499
|
+
|
500
|
+
/**
|
501
|
+
* Verify answer input field placeholder text
|
502
|
+
* @param {number} answerFieldIndex index of answer input field
|
503
|
+
*/
|
504
|
+
verifyAnswerInputFieldPlaceholder: (answerFieldIndex) => {
|
505
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.responseAccordionAnswerInputFieldWrapper(), answerFieldIndex)
|
506
|
+
.within(() => {
|
507
|
+
fillInTheGapsOverImageTextPage.answerInputFieldSpecifyCorrectAnswerSection()
|
508
|
+
.should('have.attr', 'placeholder', 'Enter answer');
|
509
|
+
});
|
510
|
+
},
|
511
|
+
|
512
|
+
/**
|
513
|
+
* Clear answer input field
|
514
|
+
* @param {number} answerFieldIndex index of answer input field
|
515
|
+
*/
|
516
|
+
clearAnswerInputField: (answerFieldIndex) => {
|
517
|
+
utilities.getNthElement(fillInTheGapsOverImageTextPage.responseAccordionAnswerInputFieldWrapper(), answerFieldIndex)
|
518
|
+
.within(() => {
|
519
|
+
fillInTheGapsOverImageTextPage.answerInputFieldSpecifyCorrectAnswerSection()
|
520
|
+
.clear()
|
521
|
+
.blur();
|
522
|
+
});
|
523
|
+
},
|
271
524
|
}
|
272
525
|
|
273
526
|
const tests = {
|
@@ -275,6 +528,7 @@ const tests = {
|
|
275
528
|
...autoScoredSpecifyCorrectAnswerSection.tests,
|
276
529
|
...scoringSectionBaseEditTab.tests,
|
277
530
|
...autoScoredScoringSectionMultiResponseType.tests,
|
531
|
+
...autoScoredStudentViewSettings.tests,
|
278
532
|
|
279
533
|
/**
|
280
534
|
* Verifies the contents and functionality of the 'Specify correct answer' accordion for multiple selection questions.
|