itemengine-cypress-automation 1.0.131-updateILCrepo6March-02c78d1.0 → 1.0.132
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/AudioResponseNew/barRecorderStyle.smoke.js +3 -6
- package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +2 -4
- package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.smoke.js +3 -7
- package/cypress/e2e/ILC/EssayResponse/essayResponseCustomizeFormattingOptions1.smoke.js +2 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/additionalSettings.js +154 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneAlternateAnswerPopup.js +170 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/dropzoneSettings.js +335 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/editTabBasicSection.js +142 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/headerSection.js +76 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/minimumScoringPenaltyPointsAndRoundingDropdown.js +194 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +8 -8
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettings.js +341 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettingsForGroupedLayout.js +241 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettingsForGroupedLayout.js +3 -3
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +350 -0
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToCorrectPoints.js +356 -0
- package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +402 -0
- package/cypress/e2e/ILC/Graphing/previewContentsForAllViews.smoke.js +4 -4
- package/cypress/e2e/ILC/SimpleCalculator/editTabFunctionality.js +242 -0
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +11 -16
- package/cypress/e2e/ILC/TextEntryMath/checkAnswerFunctionalityForAllViews.smoke.js +4 -6
- package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +3 -4
- package/cypress/fixtures/theme/ilc.json +2 -0
- package/cypress/pages/audioResponsePage.js +1 -1
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +1 -1
- package/cypress/pages/components/correctIncorrectAnswerLabelComponent.js +1 -1
- package/cypress/pages/components/fillInTheGapsDragAndDropCommonComponents.js +35 -5
- package/cypress/pages/components/imageCanvasComponent.js +1 -1
- package/cypress/pages/components/index.js +2 -1
- package/cypress/pages/components/questionInputFieldComponent.js +31 -0
- package/cypress/pages/components/responseAreaSettingsPopupComponent.js +74 -0
- package/cypress/pages/drawingResponsePage.js +1 -1
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +318 -62
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +2 -26
- package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +24 -1
- package/cypress/pages/simpleCalculatorPage.js +140 -10
- package/cypress/pages/textEntryMathPage.js +3 -2
- package/package.json +2 -2
@@ -0,0 +1,74 @@
|
|
1
|
+
const selectors = {
|
2
|
+
responseAreaSettingsWidthLabel: () => cy.get('[class*="InputNumberFieldstyle__NumberFieldWrapper"] .input-label-fields').eq(0),
|
3
|
+
responseAreaSettingsWidthInputField: () => cy.get('[class*="InputNumberFieldstyle__NumberFieldWrapper"] input').eq(0),
|
4
|
+
responseAreaSettingsHeightLabel: () => cy.get('[class*="InputNumberFieldstyle__NumberFieldWrapper"] .input-label-fields').eq(1),
|
5
|
+
responseAreaSettingsHeightInputField: () => cy.get('[class*="InputNumberFieldstyle__NumberFieldWrapper"] input').eq(1),
|
6
|
+
responseAreaSettingsCancelButton: () => cy.get('[class*="ResponseSettingsPopupstyles__PopupActionButtons"] button').eq(0),
|
7
|
+
responseAreaSettingsOkButton: () => cy.get('[class*="ResponseSettingsPopupstyles__PopupActionButtons"] button').eq(1),
|
8
|
+
}
|
9
|
+
|
10
|
+
const steps = {
|
11
|
+
/**
|
12
|
+
* Verify response area settings width input field value
|
13
|
+
* @param {number} width Value of width input field in response area settings popup
|
14
|
+
*/
|
15
|
+
verifyResponseAreaSettingsWidthInputFieldValue: (width) => {
|
16
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsWidthInputField()
|
17
|
+
.should('have.value', width);
|
18
|
+
},
|
19
|
+
|
20
|
+
verifyMinimumValueOfWidthAndHeightInputFields: () => {
|
21
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsWidthInputField()
|
22
|
+
.parent()
|
23
|
+
.should('have.attr', 'minallowed', '80');
|
24
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsHeightInputField()
|
25
|
+
.parent()
|
26
|
+
.should('have.attr', 'minallowed', '32');
|
27
|
+
},
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Verify response area settings height input field value
|
31
|
+
* @param {number} height Value of height input field in response area settings popup
|
32
|
+
*/
|
33
|
+
verifyResponseAreaSettingsHeightInputFieldValue: (height) => {
|
34
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsHeightInputField()
|
35
|
+
.should('have.value', height)
|
36
|
+
},
|
37
|
+
|
38
|
+
clickOnResponseAreaSettingsCancelButton: () => {
|
39
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsCancelButton()
|
40
|
+
.click();
|
41
|
+
},
|
42
|
+
|
43
|
+
clickOnResponseAreaSettingsOkButton: () => {
|
44
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsOkButton()
|
45
|
+
.click();
|
46
|
+
},
|
47
|
+
|
48
|
+
/**
|
49
|
+
* @description Add input to width input field
|
50
|
+
* @param {number} width Input to be given to width input field
|
51
|
+
*/
|
52
|
+
addInputToWidthInputField: (width) => {
|
53
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsWidthInputField()
|
54
|
+
.clear()
|
55
|
+
.type(width)
|
56
|
+
.blur();
|
57
|
+
},
|
58
|
+
|
59
|
+
/**
|
60
|
+
* @description Add input to height input field
|
61
|
+
* @param {number} height Input to be given to height input field
|
62
|
+
*/
|
63
|
+
addInputToHeightInputField: (height) => {
|
64
|
+
responseAreaSettingsPopupComponent.responseAreaSettingsHeightInputField()
|
65
|
+
.clear()
|
66
|
+
.type(height)
|
67
|
+
.blur();
|
68
|
+
},
|
69
|
+
}
|
70
|
+
|
71
|
+
export const responseAreaSettingsPopupComponent = {
|
72
|
+
...selectors,
|
73
|
+
steps
|
74
|
+
}
|
@@ -356,7 +356,7 @@ const steps = {
|
|
356
356
|
verifySelectedColorLabelAndSelectedColorBlock: () => {
|
357
357
|
utilities.verifyInnerText(drawingResponsePage.colorPalleteSelectedColorLabel(), 'Selected color');
|
358
358
|
utilities.verifyElementVisibilityState(drawingResponsePage.colorPalleteSelectedColorLabel(), 'visible');
|
359
|
-
utilities.verifyElementVisibilityState(drawingResponsePage.colorPalleteSelectedColorBlock(), '
|
359
|
+
utilities.verifyElementVisibilityState(drawingResponsePage.colorPalleteSelectedColorBlock(), 'exist');
|
360
360
|
},
|
361
361
|
|
362
362
|
/**
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import constants from "../fixtures/constants";
|
2
2
|
import utilities from "../support/helpers/utilities";
|
3
3
|
const css = Cypress.env('css');
|
4
|
-
import { createQuestionBasePage, optionsWrapperComponent, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, questionInputFieldComponent, fillInTheGapsDragAndDropCommonComponents, correctIncorrectAnswerLabelComponent, questionInstructionsComponent, autoScoredStudentViewSettings, ckEditorToolbar, equationEditorFlyout, draggableOptionContainer, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, commonComponents, draggableOptionsSectionComponent } from "./components"
|
4
|
+
import { createQuestionBasePage, optionsWrapperComponent, autoScoredScoringPreviewTab, scoringSectionBaseEditTab, questionInputFieldComponent, fillInTheGapsDragAndDropCommonComponents, correctIncorrectAnswerLabelComponent, questionInstructionsComponent, autoScoredStudentViewSettings, ckEditorToolbar, equationEditorFlyout, draggableOptionContainer, autoScoredScoringSectionMultiResponseType, autoScoredSpecifyCorrectAnswerSection, commonComponents, draggableOptionsSectionComponent, studentViewSettingsLabelComponent, randomizeOptionsComponent, enableOuterBorderComponent, allowMultipleInstancesOfSameDraggableOptionComponent, additionalSettingsPanel, responseAreaSettingsPopupComponent } from "./components"
|
5
5
|
|
6
6
|
//TODO update option container selectors when https://redmine.zeuslearning.com/issues/563159 is resolved
|
7
7
|
const selectors = {
|
@@ -16,23 +16,39 @@ const selectors = {
|
|
16
16
|
...commonComponents,
|
17
17
|
...autoScoredScoringPreviewTab,
|
18
18
|
...correctIncorrectAnswerLabelComponent,
|
19
|
-
|
19
|
+
...randomizeOptionsComponent,
|
20
|
+
...enableOuterBorderComponent,
|
21
|
+
...responseAreaSettingsPopupComponent,
|
22
|
+
...additionalSettingsPanel,
|
23
|
+
//Dropzone settings popup
|
24
|
+
dropzoneSettingsWordWrapLabel: () => cy.get('[data-ngie-testid="word-wrap-checkbox"] [class*="label"]'),
|
25
|
+
dropzoneSettingsWordWrapCheckbox: () => cy.get('[data-ngie-testid="word-wrap-checkbox"] input'),
|
26
|
+
dropzoneSettingsSetForAllDropzoneLabel: () => cy.get('[data-ngie-testid="set-for-all-dropzones-checkbox"] [class*="label"]'),
|
27
|
+
dropzoneSettingsSetForAllDropzoneCheckbox: () => cy.get('[data-ngie-testid="set-for-all-dropzones-checkbox"] input'),
|
20
28
|
//Specify correct answer section
|
21
29
|
dropzoneSpecifyCorrectAnswerSection: () => cy.get('[class="droppable-area"] [role="button"]'),
|
22
30
|
optionContainerOptionsSpecifyCorrectAnswerSection: () => cy.get('.draggable-selected-item'),
|
23
31
|
optionsContainerSpecifyCorrectAnswerSection: () => cy.get('.draggable-wrapper'), addAlternateButtonSpecifyCorrectAnswer: () => cy.get('.alternate-option-btn-wrapper button'),
|
32
|
+
selectedAlternateAnswerCountSpecifyCorrectAnswer: () => cy.get('.selected-option-wrapper'),
|
24
33
|
alternateAnswerPopup: () => cy.get('.alternate-option-popup-wrapper'),
|
25
|
-
|
26
|
-
|
27
|
-
|
34
|
+
alternateAnswerPopupTitle: () => cy.get('.alternate-option-title-wrapper div').eq(0),
|
35
|
+
alternateAnswerPopupHelpText: () => cy.get('.alternate-option-title-wrapper div').eq(1),
|
36
|
+
alternateAnswerPopupOptions: () => cy.get('.option-container'),
|
37
|
+
alternateAnswerPopupCancelButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(0),
|
38
|
+
alternateAnswerPopupSaveButton: () => cy.get('[class*="AlternateOptionstyle__ButtonWrapper"] button').eq(1),
|
28
39
|
//Preview tab
|
40
|
+
questionBorderPreviewTab: () => cy.get('[class*="ClozeWithDragAndDropstyles__WrapperDiv"]'),
|
29
41
|
optionPreviewTab: () => cy.get('.draggable-selected-item'),
|
30
42
|
questionContainerPreviewTab: () => cy.get('.question-item-container'),
|
31
43
|
dropzonePreviewTab: () => cy.get('[class*="DroppableHotspotstyle__DroppableHotspotWrapper"]'),
|
32
44
|
dropzoneContainerPreviewTab: () => cy.get('.answer-status-response-preview-wrapper'),
|
33
45
|
optionContainerOptionsPreviewTab: () => cy.get('.no-split-pane-wrapper .draggable-selected-item'),
|
34
46
|
dropzoneWrapperPreviewTab: () => cy.get('.label-image-with-dnd-canvas-wrapper .cell'),
|
35
|
-
dropzoneNumeration: () => cy.get('[class*="DroppableHotspotstyle__NumerationDiv"]')
|
47
|
+
dropzoneNumeration: () => cy.get('[class*="DroppableHotspotstyle__NumerationDiv"]'),
|
48
|
+
//Additional settings
|
49
|
+
accessibilityLabel: () => cy.get('[class*="Accessibilitystyles__AccessibilityLabelWrapper"]'),
|
50
|
+
flagNonAccessibleCheckbox: () => cy.get('[data-ngie-testid="response-option-checkbox"] input'),
|
51
|
+
flagNonAccessibleLabel: () => cy.get('[data-ngie-testid="response-option-checkbox"] .MuiFormControlLabel-label')
|
36
52
|
}
|
37
53
|
|
38
54
|
const steps = {
|
@@ -52,7 +68,11 @@ const steps = {
|
|
52
68
|
...draggableOptionsSectionComponent.steps,
|
53
69
|
...draggableOptionContainer.steps,
|
54
70
|
...commonComponents.steps,
|
55
|
-
|
71
|
+
...randomizeOptionsComponent.steps,
|
72
|
+
...enableOuterBorderComponent.steps,
|
73
|
+
...allowMultipleInstancesOfSameDraggableOptionComponent.steps,
|
74
|
+
...additionalSettingsPanel.steps,
|
75
|
+
...responseAreaSettingsPopupComponent.steps,
|
56
76
|
/**
|
57
77
|
* Sets options in dropzone in the Preview Tab based on the provided optionsObject.
|
58
78
|
* @param {Object} optionsObject - An object where keys are option texts and values are dropzone indices.
|
@@ -239,23 +259,6 @@ const steps = {
|
|
239
259
|
.click();
|
240
260
|
},
|
241
261
|
|
242
|
-
setGroupedOptions: () => {
|
243
|
-
let flowers = [['Flower', 'Petals', 'Seed', 'Pollen'],
|
244
|
-
['Leaflet', 'Leaves', 'Leaf', 'Green'],
|
245
|
-
['Stem', 'Branch', 'Trunk', 'Tree'],
|
246
|
-
['Rose', 'Lily', 'Orchid', 'Petals']
|
247
|
-
];
|
248
|
-
let groupTitles = ['Group A', 'Group B', 'Group C', 'Group D'];
|
249
|
-
draggableOptionsSectionComponent.steps.expandDraggableOptionsLayoutDropdown()
|
250
|
-
draggableOptionsSectionComponent.steps.selectOptionFromDraggableOptionsLayoutDropdown('Grouped')
|
251
|
-
draggableOptionsSectionComponent.steps.addGroupTitle(groupTitles[0]);
|
252
|
-
optionsWrapperComponent.steps.addMultipleOptionFields(2);
|
253
|
-
optionsWrapperComponent.steps.addInputToOptionsInputField(flowers[0]);
|
254
|
-
draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[1], flowers[1]);
|
255
|
-
draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[2], flowers[2]);
|
256
|
-
draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[3], flowers[3]);
|
257
|
-
},
|
258
|
-
|
259
262
|
/**
|
260
263
|
* Sets options in dropzone in the Preview Tab based on the provided optionsObject.
|
261
264
|
* @param {Object[]} responses - An array of objects containing the responseIndex, responseText and dropzone index
|
@@ -287,6 +290,83 @@ const steps = {
|
|
287
290
|
.click();
|
288
291
|
},
|
289
292
|
|
293
|
+
/**
|
294
|
+
* @description Verify alternate button for a dropzone in specify correct answer section
|
295
|
+
* @param {number} dropzoneIndex Index of dropzone
|
296
|
+
*/
|
297
|
+
verifyDefaultAddAlternateAnswerButtonIsDisplayed: (dropzoneIndex) => {
|
298
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), dropzoneIndex)
|
299
|
+
.parents('.authoring-response-wrapper')
|
300
|
+
.within(() => {
|
301
|
+
utilities.verifyElementVisibilityState(fillInTheGapsDragAndDropPage.addAlternateButtonSpecifyCorrectAnswer(), 'visible');
|
302
|
+
utilities.verifyElementDisabled(fillInTheGapsDragAndDropPage.addAlternateButtonSpecifyCorrectAnswer());
|
303
|
+
});
|
304
|
+
},
|
305
|
+
|
306
|
+
/**
|
307
|
+
* @description Verify dropzone's alternate answer popup options
|
308
|
+
* @param {string[]} optionsArray Array of options in dropzone's alternate answer popup
|
309
|
+
*/
|
310
|
+
verifyDropzoneAlternateAnswerPopupOptions: (optionsArray) => {
|
311
|
+
optionsArray.forEach((option, index) => {
|
312
|
+
utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsDragAndDropPage.alternateAnswerPopupOptions(), index), option);
|
313
|
+
});
|
314
|
+
},
|
315
|
+
|
316
|
+
/**
|
317
|
+
* @description select alternate answers for a dropzone in its alternate answer popup
|
318
|
+
* @param {string[]} alternateAnswerArray Array of options to be selected as alternate answer
|
319
|
+
*/
|
320
|
+
selectAlternateAnswerInAlternateAnswerPopup: (alternateAnswerArray) => {
|
321
|
+
alternateAnswerArray.forEach((alternateAnswer) => {
|
322
|
+
fillInTheGapsDragAndDropPage.alternateAnswerPopupOptions()
|
323
|
+
.contains(alternateAnswer)
|
324
|
+
.click();
|
325
|
+
fillInTheGapsDragAndDropPage.alternateAnswerPopupOptions()
|
326
|
+
.contains(alternateAnswer)
|
327
|
+
.parent()
|
328
|
+
.should('have.class', 'selected');
|
329
|
+
});
|
330
|
+
},
|
331
|
+
|
332
|
+
/**
|
333
|
+
* @description deselect alternate answers for a dropzone in its alternate answer popup
|
334
|
+
* @param {string[]} alternateAnswerArray Array of options to be deselected
|
335
|
+
*/
|
336
|
+
deselectAlternateAnswerInAlternateAnswerPopup: (alternateAnswerArray) => {
|
337
|
+
alternateAnswerArray.forEach((alternateAnswer) => {
|
338
|
+
fillInTheGapsDragAndDropPage.alternateAnswerPopupOptions()
|
339
|
+
.contains(alternateAnswer)
|
340
|
+
.click();
|
341
|
+
fillInTheGapsDragAndDropPage.alternateAnswerPopupOptions()
|
342
|
+
.contains(alternateAnswer)
|
343
|
+
.parent()
|
344
|
+
.should('not.have.class', 'selected');
|
345
|
+
});
|
346
|
+
},
|
347
|
+
|
348
|
+
saveSelectedAlternateAnswers: () => {
|
349
|
+
fillInTheGapsDragAndDropPage.alternateAnswerPopupSaveButton()
|
350
|
+
.click();
|
351
|
+
},
|
352
|
+
|
353
|
+
CancelDropzoneAlternateAnswersPopup: () => {
|
354
|
+
fillInTheGapsDragAndDropPage.alternateAnswerPopupCancelButton()
|
355
|
+
.click();
|
356
|
+
},
|
357
|
+
|
358
|
+
/**
|
359
|
+
* @description Set alternate answers for a dropzone
|
360
|
+
* @param {number} dropzoneIndex Index of dropzone
|
361
|
+
* @param {string[]} alternateAnswerArray Array of options to be selected as alternate answer
|
362
|
+
*/
|
363
|
+
setResponseLevelAlternateAnswer: (dropzoneIndex, alternateAnswerArray) => {
|
364
|
+
fillInTheGapsDragAndDropPage.steps.clickOnAddAlternateButton(dropzoneIndex);
|
365
|
+
fillInTheGapsDragAndDropPage.steps.selectAlternateAnswerInAlternateAnswerPopup(alternateAnswerArray);
|
366
|
+
fillInTheGapsDragAndDropPage.steps.saveSelectedAlternateAnswers();
|
367
|
+
utilities.verifyElementVisibilityState(fillInTheGapsDragAndDropPage.alternateAnswerPopup(), 'notExist');
|
368
|
+
},
|
369
|
+
|
290
370
|
/**
|
291
371
|
* @description Verifies the text content of a specific preview tab dropzone element.
|
292
372
|
* @param {number} count - The index of the preview tab dropzone element to verify (zero-based).
|
@@ -310,7 +390,8 @@ const steps = {
|
|
310
390
|
.eq(dropzoneIndex)
|
311
391
|
.within(() => {
|
312
392
|
responseArray.forEach((response, count) => {
|
313
|
-
|
393
|
+
cy.get('.item-content-container')
|
394
|
+
// draggableOptionContainer.draggableOption()
|
314
395
|
.eq(count)
|
315
396
|
.verifyInnerText(response);
|
316
397
|
});
|
@@ -318,8 +399,8 @@ const steps = {
|
|
318
399
|
},
|
319
400
|
|
320
401
|
/**
|
321
|
-
* @param {number} responseAreaIndex Index of the
|
322
|
-
* @description Verify drag handle is not visible in filled category cell in
|
402
|
+
* @param {number} responseAreaIndex Index of the dropzone in specify correct answer section
|
403
|
+
* @description Verify drag handle is not visible in filled category cell in specify correct answer section
|
323
404
|
*/
|
324
405
|
verifyDragHandleNotVisibleInFilledDropzoneOfSpecifyCorrectAnswerSection: (responseAreaIndex) => {
|
325
406
|
fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection()
|
@@ -368,13 +449,13 @@ const steps = {
|
|
368
449
|
.eq(dropzoneIndex)
|
369
450
|
.within(() => {
|
370
451
|
responseArray.forEach((response, count) => {
|
371
|
-
utilities.verifyInnerText(utilities.getNthElement(
|
452
|
+
utilities.verifyInnerText(utilities.getNthElement(cy.get('.item-content-container'), count), response);
|
372
453
|
});
|
373
454
|
});
|
374
455
|
},
|
375
456
|
|
376
457
|
/**
|
377
|
-
* @param {number} responseAreaIndex Index of the
|
458
|
+
* @param {number} responseAreaIndex Index of the dropzone in preview tab
|
378
459
|
* @description Verify drag handle is not visible in filled category cell in preview tab
|
379
460
|
*/
|
380
461
|
verifyDragHandleNotVisibleInFilledDropzoneOfPreviewTab: (responseAreaIndex) => {
|
@@ -425,6 +506,205 @@ const steps = {
|
|
425
506
|
});
|
426
507
|
});
|
427
508
|
},
|
509
|
+
|
510
|
+
verifyQuestionBorderNotExist: () => {
|
511
|
+
fillInTheGapsDragAndDropPage.questionBorderPreviewTab()
|
512
|
+
.should('have.css', 'border')
|
513
|
+
.and('match', /0px none/);
|
514
|
+
},
|
515
|
+
|
516
|
+
clickAndDropOptionInOptionsContainerInPreviewTab: (optionText) => {
|
517
|
+
fillInTheGapsDragAndDropPage.dropzonePreviewTab()
|
518
|
+
.contains(optionText)
|
519
|
+
.click();
|
520
|
+
fillInTheGapsDragAndDropPage.optionsContainerPreviewTab()
|
521
|
+
.click({ force: true });
|
522
|
+
},
|
523
|
+
|
524
|
+
verifyWordWrapCheckboxUnchecked: () => {
|
525
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsWordWrapCheckbox()
|
526
|
+
.should('not.be.checked');
|
527
|
+
},
|
528
|
+
|
529
|
+
verifyWordWrapCheckboxChecked: () => {
|
530
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsWordWrapCheckbox()
|
531
|
+
.should('be.checked');
|
532
|
+
},
|
533
|
+
|
534
|
+
verifySetForAllDropzoneCheckboxChecked: () => {
|
535
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsSetForAllDropzoneCheckbox()
|
536
|
+
.should('be.checked');
|
537
|
+
},
|
538
|
+
|
539
|
+
verifySetForAllDropzoneCheckboxUnchecked: () => {
|
540
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsSetForAllDropzoneCheckbox()
|
541
|
+
.should('not.be.checked');
|
542
|
+
},
|
543
|
+
|
544
|
+
checkWordWrappedCheckbox: () => {
|
545
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsWordWrapCheckbox()
|
546
|
+
.click()
|
547
|
+
.should('be.checked');
|
548
|
+
},
|
549
|
+
|
550
|
+
uncheckWordWrappedCheckbox: () => {
|
551
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsWordWrapCheckbox()
|
552
|
+
.click()
|
553
|
+
.should('not.be.checked');
|
554
|
+
},
|
555
|
+
|
556
|
+
uncheckSetForAllDropzoneCheckbox: () => {
|
557
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsSetForAllDropzoneCheckbox()
|
558
|
+
.click()
|
559
|
+
.should('not.be.checked');
|
560
|
+
},
|
561
|
+
|
562
|
+
checkSetForAllDropzoneCheckbox: () => {
|
563
|
+
fillInTheGapsDragAndDropPage.dropzoneSettingsSetForAllDropzoneCheckbox()
|
564
|
+
.click()
|
565
|
+
.should('be.checked');
|
566
|
+
},
|
567
|
+
|
568
|
+
/**
|
569
|
+
* @description Verify width of dropzone in specify correct answer section
|
570
|
+
* @param {number} dropzoneIndex index of dropzone
|
571
|
+
* @param {string} width Width of dropzone in px
|
572
|
+
*/
|
573
|
+
verifyDropzoneWidthSpecifyCorrectAnswerSection: (dropzoneIndex, width) => {
|
574
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), dropzoneIndex)
|
575
|
+
.should('have.css', 'width', width);
|
576
|
+
},
|
577
|
+
|
578
|
+
/**
|
579
|
+
* @description Verify height of dropzone in specify correct answer section
|
580
|
+
* @param {number} dropzoneIndex index of dropzone
|
581
|
+
* @param {string} height Height of dropzone in px
|
582
|
+
*/
|
583
|
+
verifyDropzoneHeightSpecifyCorrectAnswerSection: (dropzoneIndex, height) => {
|
584
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), dropzoneIndex)
|
585
|
+
.should('have.css', 'height', height);
|
586
|
+
},
|
587
|
+
|
588
|
+
/**
|
589
|
+
* @description Verify width of dropzone in preview tab
|
590
|
+
* @param {number} dropzoneIndex index of dropzone
|
591
|
+
* @param {string} width Width of dropzone in px
|
592
|
+
*/
|
593
|
+
verifyDropzoneWidthPreviewTab: (dropzoneIndex, width) => {
|
594
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex)
|
595
|
+
.should('have.css', 'width', width);
|
596
|
+
},
|
597
|
+
|
598
|
+
/**
|
599
|
+
* @description Verify height of dropzone in preview tab
|
600
|
+
* @param {number} dropzoneIndex index of dropzone
|
601
|
+
* @param {string} height Height of dropzone in px
|
602
|
+
*/
|
603
|
+
verifyDropzoneHeightPreviewTab: (dropzoneIndex, height) => {
|
604
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex)
|
605
|
+
.should('have.css', 'height', height);
|
606
|
+
},
|
607
|
+
|
608
|
+
/**
|
609
|
+
* @description Verify dropped option is not word-wrapped in dropzone specify correct answer section
|
610
|
+
* @param {number} dropzoneIndex Index of dropzone in specify correct answer section
|
611
|
+
*/
|
612
|
+
verifyOptionTextNotWordWrappedInDropzoneSpecifyCorrectAnswerSection: (dropzoneIndex) => {
|
613
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), dropzoneIndex)
|
614
|
+
.find('.item-content-container')
|
615
|
+
.should('not.have.class', 'word-wrap');
|
616
|
+
},
|
617
|
+
|
618
|
+
/**
|
619
|
+
* @description Verify dropped option is word-wrapped in dropzone specify correct answer section
|
620
|
+
* @param {number} dropzoneIndex Index of dropzone in specify correct answer section
|
621
|
+
*/
|
622
|
+
verifyOptionTextIsWordWrappedInDropzoneSpecifyCorrectAnswerSection: (dropzoneIndex) => {
|
623
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), dropzoneIndex)
|
624
|
+
.find('.item-content-container')
|
625
|
+
.should('have.class', 'word-wrap');
|
626
|
+
},
|
627
|
+
|
628
|
+
verifyDropzoneHeightWhenLongTextIsDroppedInSpecifyCorrectAnswerSection: () => {
|
629
|
+
let originalDropzoneHeight
|
630
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), 1)
|
631
|
+
.then(($originalDropzoneHeight) => {
|
632
|
+
originalDropzoneHeight = $originalDropzoneHeight.height(); //Storing original dropzone width
|
633
|
+
});
|
634
|
+
fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzoneSpecifyCorrectAnswerSection({ 'Leaves grow on the branches of a plant which in turn grow on the stem': 1 });
|
635
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), 1)
|
636
|
+
.then(($modifiedDropzoneHeight) => {
|
637
|
+
let modifiedDropzoneHeight = $modifiedDropzoneHeight.height(); //Storing modified dropzone width
|
638
|
+
expect(modifiedDropzoneHeight).to.be.gt(originalDropzoneHeight);
|
639
|
+
});
|
640
|
+
},
|
641
|
+
|
642
|
+
/**
|
643
|
+
* @description Verify dropped option is not word-wrapped in dropzone preview tab
|
644
|
+
* @param {number} dropzoneIndex Index of dropzone in preview tab
|
645
|
+
*/
|
646
|
+
verifyOptionTextNotWordWrappedInDropzonePreviewTab: (dropzoneIndex) => {
|
647
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex)
|
648
|
+
.find('.item-content-container')
|
649
|
+
.should('not.have.class', 'word-wrap');
|
650
|
+
},
|
651
|
+
|
652
|
+
/**
|
653
|
+
* @description Verify dropped option is word-wrapped in dropzone preview tab
|
654
|
+
* @param {number} dropzoneIndex Index of dropzone in preview tab
|
655
|
+
*/
|
656
|
+
verifyOptionTextIsWordWrappedInDropzonePreviewTab: (dropzoneIndex) => {
|
657
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), dropzoneIndex)
|
658
|
+
.find('.item-content-container')
|
659
|
+
.should('have.class', 'word-wrap');
|
660
|
+
},
|
661
|
+
|
662
|
+
verifyDropzoneHeightWhenLongTextIsDroppedInPreviewTab: () => {
|
663
|
+
let originalDropzoneHeight
|
664
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), 1)
|
665
|
+
.then(($originalDropzoneHeight) => {
|
666
|
+
originalDropzoneHeight = $originalDropzoneHeight.height(); //Storing original dropzone width
|
667
|
+
});
|
668
|
+
fillInTheGapsDragAndDropPage.steps.clickAndDropOptionInDropzonePreviewTab({ 'Leaves grow on the branches of a plant which in turn grow on the stem': 1 });
|
669
|
+
utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab(), 1)
|
670
|
+
.then(($modifiedDropzoneHeight) => {
|
671
|
+
let modifiedDropzoneHeight = $modifiedDropzoneHeight.height(); //Storing modified dropzone width
|
672
|
+
expect(modifiedDropzoneHeight).to.be.gt(originalDropzoneHeight);
|
673
|
+
});
|
674
|
+
},
|
675
|
+
|
676
|
+
verifyFlagThisItemNonAccessibleCheckboxIsUnchecked: () => {
|
677
|
+
fillInTheGapsDragAndDropPage.flagNonAccessibleCheckbox()
|
678
|
+
.should('not.be.checked');
|
679
|
+
},
|
680
|
+
|
681
|
+
checkFlagThisItemNonAccessibleCheckbox: () => {
|
682
|
+
fillInTheGapsDragAndDropPage.flagNonAccessibleCheckbox()
|
683
|
+
.click()
|
684
|
+
.should('be.checked');
|
685
|
+
},
|
686
|
+
|
687
|
+
/**
|
688
|
+
* @description Verify tooltip text in dropzone option specify correct answer section
|
689
|
+
* @param {number} dropzoneIndex Index of dropzone in specify correct answer section
|
690
|
+
* @param {string} tooltip Tooltip text
|
691
|
+
*/
|
692
|
+
verifyDropzoneOptionTooltipSpecifyCorrectAnswerSection: (dropzoneIndex, tooltip) => {
|
693
|
+
utilities.hoverOverElement(utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzoneSpecifyCorrectAnswerSection, dropzoneIndex));
|
694
|
+
utilities.verifyTextContent(fillInTheGapsDragAndDropPage.dropzoneOptionTooltip(), tooltip);
|
695
|
+
utilities.hoverAwayFromElement();
|
696
|
+
},
|
697
|
+
|
698
|
+
/**
|
699
|
+
* @description Verify tooltip text in dropzone option preview tab
|
700
|
+
* @param {number} dropzoneIndex Index of dropzone in preview tab
|
701
|
+
* @param {string} tooltip Tooltip text
|
702
|
+
*/
|
703
|
+
verifyDropzoneOptionTooltipPreviewTab: (dropzoneIndex, tooltip) => {
|
704
|
+
utilities.hoverOverElement(utilities.getNthElement(fillInTheGapsDragAndDropPage.dropzonePreviewTab, dropzoneIndex));
|
705
|
+
utilities.verifyTextContent(fillInTheGapsDragAndDropPage.dropzoneOptionTooltip(), tooltip);
|
706
|
+
utilities.hoverAwayFromElement();
|
707
|
+
}
|
428
708
|
}
|
429
709
|
|
430
710
|
const tests = {
|
@@ -436,6 +716,15 @@ const tests = {
|
|
436
716
|
...draggableOptionContainer.tests,
|
437
717
|
...commonComponents.tests,
|
438
718
|
...autoScoredScoringPreviewTab.tests,
|
719
|
+
...createQuestionBasePage.tests,
|
720
|
+
...studentViewSettingsLabelComponent.tests,
|
721
|
+
...randomizeOptionsComponent.tests,
|
722
|
+
...enableOuterBorderComponent.tests,
|
723
|
+
...allowMultipleInstancesOfSameDraggableOptionComponent.tests,
|
724
|
+
...autoScoredStudentViewSettings.tests,
|
725
|
+
...questionInstructionsComponent.tests,
|
726
|
+
...questionInputFieldComponent.tests,
|
727
|
+
...additionalSettingsPanel.tests,
|
439
728
|
|
440
729
|
verifyContentsOfSpecifyCorrectAnswerSection: () => {
|
441
730
|
it('When user selects a scoring type then in the \'Correct\' accordion, all the contents should be displayed', () => {
|
@@ -516,39 +805,6 @@ const tests = {
|
|
516
805
|
it('Accessibility of \'Correct\' accordion contents', { tags: 'a11y' }, () => {
|
517
806
|
cy.checkAccessibility(fillInTheGapsDragAndDropPage.dropzoneLabelSpecifyCorrectAnswerSection().parents('.preview-content-wrapper'))
|
518
807
|
});
|
519
|
-
},
|
520
|
-
|
521
|
-
/**
|
522
|
-
* @description select alternate answers for a dropzone in its alternate answer popup
|
523
|
-
* @param {string[]} alternateAnswerArray Array of options to be selected as alternate answer
|
524
|
-
*/
|
525
|
-
selectAlternateAnswerInAlternateAnswerPopup: (alternateAnswerArray) => {
|
526
|
-
alternateAnswerArray.forEach((alternateAnswer) => {
|
527
|
-
fillInTheGapsDragAndDropPage.alternateAnswerPopupOptionContainer()
|
528
|
-
.contains(alternateAnswer)
|
529
|
-
.click();
|
530
|
-
fillInTheGapsDragAndDropPage.alternateAnswerPopupOptionContainer()
|
531
|
-
.contains(alternateAnswer)
|
532
|
-
.parent()
|
533
|
-
.should('have.class', 'selected');
|
534
|
-
});
|
535
|
-
},
|
536
|
-
|
537
|
-
saveSelectedAlternateAnswers: () => {
|
538
|
-
fillInTheGapsDragAndDropPage.alternateAnswerPopupSaveButton()
|
539
|
-
.click();
|
540
|
-
},
|
541
|
-
|
542
|
-
/**
|
543
|
-
* @description Set alternate answers for a dropzone
|
544
|
-
* @param {number} dropzoneIndex Index of dropzone
|
545
|
-
* @param {string[]} alternateAnswerArray Array of options to be selected as alternate answer
|
546
|
-
*/
|
547
|
-
setResponseLevelAlternateAnswer: (dropzoneIndex, alternateAnswerArray) => {
|
548
|
-
fillInTheGapsDragAndDropPage.steps.clickOnAddAlternateButton(dropzoneIndex);
|
549
|
-
fillInTheGapsDragAndDropPage.steps.selectAlternateAnswerInAlternateAnswerPopup(alternateAnswerArray);
|
550
|
-
fillInTheGapsDragAndDropPage.steps.saveSelectedAlternateAnswers();
|
551
|
-
utilities.verifyElementVisibilityState(fillInTheGapsDragAndDropPage.alternateAnswerPopup(), 'notExist');
|
552
808
|
}
|
553
809
|
}
|
554
810
|
|
@@ -48,6 +48,7 @@ const selectors = {
|
|
48
48
|
textAreaPreviewTab: () => cy.get('.drag-and-drop-layout-wrapper textarea'),
|
49
49
|
dropzonePointerInPreviewTab: () => cy.get('.preview-content-wrapper [class*="PointerWrapper"]'),
|
50
50
|
canvasInPreviewTab: () => cy.get('[class*="PreviewTabstyles__ContentWrapper"] [class*="Canvasstyle__DragAndDropCanvas"]'),
|
51
|
+
tickIconWrapper: () => cy.get('.tick-icon-wrapper g[id*="Rectangle"]')
|
51
52
|
}
|
52
53
|
|
53
54
|
const steps = {
|
@@ -320,31 +321,6 @@ const steps = {
|
|
320
321
|
.click({ force: true });
|
321
322
|
},
|
322
323
|
|
323
|
-
setGroupedOptions: () => {
|
324
|
-
let flowers = [['Flower', 'Petals', 'Seed', 'Pollen'],
|
325
|
-
['Leaflet', 'Leaves', 'Leaf', 'Green'],
|
326
|
-
['Stem', 'Branch', 'Trunk', 'Tree'],
|
327
|
-
['Rose', 'Lily', 'Orchid', 'Petals']
|
328
|
-
];
|
329
|
-
let groupTitles = ['Group A', 'Group B', 'Group C', 'Group D'];
|
330
|
-
draggableOptionsSectionComponent.steps.expandDraggableOptionsLayoutDropdown()
|
331
|
-
draggableOptionsSectionComponent.steps.selectOptionFromDraggableOptionsLayoutDropdown('Grouped')
|
332
|
-
draggableOptionsSectionComponent.steps.addGroupTitle(groupTitles[0]);
|
333
|
-
optionsWrapperComponent.steps.addMultipleOptionFields(2);
|
334
|
-
optionsWrapperComponent.steps.addInputToOptionsInputField(flowers[0]);
|
335
|
-
draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[1], flowers[1]);
|
336
|
-
draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[2], flowers[2]);
|
337
|
-
draggableOptionsSectionComponent.steps.addGroupWithTitleAndOptionsInDraggableOptionsSection(groupTitles[3], flowers[3]);
|
338
|
-
},
|
339
|
-
|
340
|
-
/**
|
341
|
-
* @description verify the displayed penalty points for each incorrect dropzone
|
342
|
-
* @param {number} penaltyPoints displayed penalty points
|
343
|
-
*/
|
344
|
-
verifyPenaltyPointsForEachIncorrectDropzone: (penaltyPoints) => {
|
345
|
-
utilities.verifyInnerText(autoScoredScoringSectionMultiResponseType.penaltyPointsDetailsSectionAllottedPointsLabel(), `Penalty points for each incorrect dropzone: ${penaltyPoints}`);
|
346
|
-
},
|
347
|
-
|
348
324
|
verifyInactiveStateOfAllDropzoneInSpecifyCorrectAnswerSection: () => {
|
349
325
|
fillInTheGapsOverImageDragAndDropPage.dropzoneWrapperSpecifyCorrectAnswerSection()
|
350
326
|
.should('not.have.class', 'dragging-over');
|
@@ -585,7 +561,7 @@ const tests = {
|
|
585
561
|
it('When user selects a scoring type then in the \'Correct\' accordion, all the contents should be displayed', () => {
|
586
562
|
utilities.verifyElementCount(fillInTheGapsOverImageDragAndDropPage.dropzoneSpecifyCorrectAnswerSection(), 3);
|
587
563
|
for (let index = 0; index < 3; index++) {
|
588
|
-
utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsOverImageDragAndDropPage.dropzoneLabelSpecifyCorrectAnswerSection(), index), `Dropzone ${index+1}`);
|
564
|
+
utilities.verifyInnerText(utilities.getNthElement(fillInTheGapsOverImageDragAndDropPage.dropzoneLabelSpecifyCorrectAnswerSection(), index), `Dropzone ${index + 1}`);
|
589
565
|
}
|
590
566
|
});
|
591
567
|
},
|
@@ -17,6 +17,7 @@ const selectors = {
|
|
17
17
|
dropdownWrapperPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class="Canvasstyle__DropzoneWrapper"]'),
|
18
18
|
correctAnswerResponseWrapper: () => cy.get('[class*="LabelImageWithDropdownPreviewstyles__AnswerCell"]'),
|
19
19
|
correctAnswerResponse: () => cy.get('[class*="LabelImageWithDropdownPreviewstyles__AnswerWrapper"]'),
|
20
|
+
correctAnswerSectionWrapper: () => cy.get('.dnd-correct-answer-wrapper'),
|
20
21
|
}
|
21
22
|
|
22
23
|
const steps = {
|
@@ -154,7 +155,29 @@ const steps = {
|
|
154
155
|
verifyCanvasHeightInPreviewTab: (height) => {
|
155
156
|
fillInTheGapsOverImageDropdownPage.canvasImageInPreviewTab()
|
156
157
|
.should('have.css', 'height', `${height}px`);
|
157
|
-
}
|
158
|
+
},
|
159
|
+
|
160
|
+
/**
|
161
|
+
* Verify correct answer responses in the correct answer section and count.
|
162
|
+
* @param {string[]} correctAnswerArray - An array containing the expected correct answer responses.
|
163
|
+
* @example verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount(['Flower', 'Petals', 'Stem']);
|
164
|
+
*/
|
165
|
+
verifyCorrectAnswerResponsesInCorrectAnswerSectionAndCount: (correctAnswerArray) => {
|
166
|
+
utilities.verifyElementCount(fillInTheGapsOverImageDropdownPage.correctAnswerResponseWrapper(), correctAnswerArray.length);
|
167
|
+
correctAnswerArray.forEach((correctAnswer, index) => {
|
168
|
+
fillInTheGapsOverImageDropdownPage.correctAnswerResponseWrapper()
|
169
|
+
.eq(index)
|
170
|
+
.within(() => {
|
171
|
+
utilities.verifyInnerText(fillInTheGapsDropdownCommonComponent.correctAnswerResponseNumeration(), `${index + 1}`);
|
172
|
+
fillInTheGapsOverImageDropdownPage.correctAnswerResponse()
|
173
|
+
.should('have.text', correctAnswer);
|
174
|
+
});
|
175
|
+
});
|
176
|
+
},
|
177
|
+
|
178
|
+
verifyCorrectAnswerSectionNotExists: () => {
|
179
|
+
utilities.verifyElementVisibilityState(fillInTheGapsDropdownPage.correctAnswerSectionWrapper(), 'notExist');
|
180
|
+
},
|
158
181
|
}
|
159
182
|
|
160
183
|
const tests = {
|