itemengine-cypress-automation 1.0.293-e2eUpdates5thFeb-7e9457e.0 → 1.0.294-applitools-09785a6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +26 -26
- package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +4 -4
- package/cypress/e2e/ILC/AudioResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +12 -2
- package/cypress/e2e/ILC/AudioResponseNew/previewContentsForAllViews.smoke.js +11 -2
- package/cypress/e2e/ILC/BrainingCampManipulative/previewTabContent.smoke.js +1 -1
- package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/allOrNothingScoringForAllViews.smoke.js +17 -8
- package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +3 -3
- package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/previewContentsForAllViews.smoke.js +14 -5
- package/cypress/e2e/ILC/ChartsBar/allOrNothingScoringForAllViews.smoke.js +17 -8
- package/cypress/e2e/ILC/ChartsBar/gradingViewAndCorrectAnswerView.smoke.js +12 -2
- package/cypress/e2e/ILC/ChartsBar/previewContentsForAllViews.smoke.js +15 -6
- package/cypress/e2e/ILC/ChartsLine/allOrNothingScoringForAllViews.smoke.js +8 -8
- package/cypress/e2e/ILC/ChartsLine/gradingViewAndCorrectAnswerView.smoke.js +12 -2
- package/cypress/e2e/ILC/ChartsLine/previewContentsForAllViews.smoke.js +14 -5
- package/cypress/e2e/ILC/Compass/compassPreviewContent.smoke.js +1 -1
- package/cypress/e2e/ILC/ContentBlocks/previewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +15 -6
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/previewContentsForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +12 -2
- package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +19 -21
- package/cypress/e2e/ILC/EssayResponse/equationEditor.smoke.js +8 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +15 -6
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +13 -3
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +13 -4
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/previewContentsForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +14 -5
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +13 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/FillInTheGapsTextNew/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/Graphing/gradingViewAndCorrectAnswerView.smoke.js +12 -2
- package/cypress/e2e/ILC/Graphing/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +15 -5
- package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +9 -1
- package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +15 -5
- package/cypress/e2e/ILC/ImageHighlight/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +4 -4
- package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/previewContentsForAllViews.smoke.js +11 -2
- package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/ListOrderingNew/horizontalOrientationAllOrNothingForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/HorizontalOrientation/horizontalOrientationAllOrNothingForAllViews.smoke.js +6 -5
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/HorizontalOrientation/previewContentsForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +14 -4
- package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/previewContentsForAllViews.smoke.js +3 -3
- package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +14 -5
- package/cypress/e2e/ILC/Matching/previewTabContentsForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/MatchingDropdown/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +19 -10
- package/cypress/e2e/ILC/MultipleSelection/previewContentsForAllViews.smoke.js +11 -2
- package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +14 -5
- package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +14 -4
- package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/NumberLine/gradingViewAndCorrectAnswerView.smoke.js +12 -2
- package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +3 -2
- package/cypress/e2e/ILC/NumberLine/verticalNumberLine/previewTabContentsForAllViews.smoke.js +4 -4
- package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/NumberLineLabel/gradingViewAndCorrectAnswerView.smoke.js +10 -0
- package/cypress/e2e/ILC/NumberLineLabel/previewContentsForAllViews.smoke.js +10 -1
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +5 -5
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +2 -2
- package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/previewContentsForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/ReadingRuler/readingrulerPreviewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/Ruler/rulerPreviewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/ShortTextResponseNew/previewContentsForAllViews.smoke.js +5 -6
- package/cypress/e2e/ILC/SimpleCalculator/previewContents.smoke.js +1 -1
- package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/SingleSelection/previewContents.smoke.js +10 -1
- package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +14 -5
- package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +10 -1
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +23 -14
- package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +5 -6
- package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +17 -17
- package/cypress/e2e/ILC/TextEntryMathWithImage/previewTabContentsForAllViews.smoke.js +13 -5
- package/cypress/e2e/ILC/TextSelection/ScoringGeneric/basicScoringForAllTextSelectionTypes.smoke.js +4 -4
- package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +16 -6
- package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +8 -8
- package/cypress/e2e/ILC/ToolAudioPlayerNew/previewContents.smoke.js +3 -3
- package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +3 -3
- package/cypress/e2e/ILC/UploadResponse/gradingViewAndCorrectAnswerViewContents.smoke.js +11 -1
- package/cypress/e2e/ILC/UploadResponse/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/ILC/UploadResponse/thumbNail.smoke.js +16 -6
- package/cypress/e2e/ILC/VideoResponseNew/compactRecorderStyle.smoke.js +3 -3
- package/cypress/e2e/ILC/VideoResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +14 -4
- package/cypress/e2e/ILC/VideoResponseNew/previewContentsForAllViews.smoke.js +12 -3
- package/cypress/e2e/ILC/chartsDotsPlot/allOrNothingForAllViews.smoke.js +9 -9
- package/cypress/e2e/ILC/chartsDotsPlot/gradingViewAndCorrectAnswerView.smoke.js +2 -2
- package/cypress/e2e/ILC/chartsDotsPlot/previewContentsForAllViews.smoke.js +13 -4
- package/cypress/e2e/applitools.config.js +14 -0
- package/cypress/pages/components/equationEditorSectionCommonComponent.js +3 -1
- package/cypress/support/commands.js +11 -0
- package/cypress/support/e2e.js +1 -0
- package/package.json +4 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import { uploadResponsePage, itemPreviewPage} from "../../../pages";
|
1
|
+
import { uploadResponsePage, itemPreviewPage } from "../../../pages";
|
2
2
|
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
3
3
|
import utilities from "../../../support/helpers/utilities";
|
4
4
|
const css = Cypress.env('css');
|
@@ -13,6 +13,14 @@ describe('Create item page - Upload response : Preview contents', () => {
|
|
13
13
|
cy.loginAs('admin');
|
14
14
|
});
|
15
15
|
|
16
|
+
beforeEach(() => {
|
17
|
+
cy.startApplitools();
|
18
|
+
});
|
19
|
+
|
20
|
+
afterEach(() => {
|
21
|
+
cy.eyesClose();
|
22
|
+
});
|
23
|
+
|
16
24
|
views.forEach((view) => {
|
17
25
|
describe(`Preview tab contents - ${view}`, { tags: 'smoke' }, () => {
|
18
26
|
abortEarlySetup();
|
@@ -56,12 +64,12 @@ describe('Create item page - Upload response : Preview contents', () => {
|
|
56
64
|
utilities.verifyElementVisibilityState(uploadResponsePage.questionInstructionsText(), 'visible');
|
57
65
|
});
|
58
66
|
|
59
|
-
it(
|
67
|
+
it(`${view} - When user uploads file, then uploaded file name should be displayed, file count should get updated and thumb nail of the image should be visible`, () => {
|
60
68
|
uploadResponsePage.steps.uploadFile('uploads/highlightImage.jpg');
|
61
69
|
uploadResponsePage.steps.verifyThumbNailExistOrNotExist('highlightImage.jpg', 'visible');
|
62
70
|
});
|
63
71
|
|
64
|
-
it(
|
72
|
+
it(`${view} - CSS of Thumb nail and File name in preview tab`, { tags: 'css' }, () => {
|
65
73
|
utilities.verifyCSS(uploadResponsePage.imageThumbNail(), {
|
66
74
|
'box-sizing': 'border-box',
|
67
75
|
'min-height': 'auto',
|
@@ -79,9 +87,11 @@ describe('Create item page - Upload response : Preview contents', () => {
|
|
79
87
|
cy.checkAccessibility(uploadResponsePage.questionWrapperPreviewTab());
|
80
88
|
});
|
81
89
|
|
82
|
-
it(
|
90
|
+
it(`${view} - When user clicks on the thumbnail then popup should open, and on clicking the close button the popup should close and the uploaded files should be displayed`, () => {
|
91
|
+
utilities.verifyElementCount(uploadResponsePage.imageThumbNail(), 2);
|
83
92
|
uploadResponsePage.steps.clickOnImageThumbNail();
|
84
93
|
uploadResponsePage.steps.verifyImagePopUpDetail();
|
94
|
+
cy.eyesCheckWindow(`${view} - Thumbnail popup`);
|
85
95
|
uploadResponsePage.steps.closeImagePopup();
|
86
96
|
uploadResponsePage.steps.verifyThumbNailExistOrNotExist('highlightImage.jpg', 'visible');
|
87
97
|
utilities.verifyElementCount(uploadResponsePage.fileName(), 1);
|
@@ -95,7 +105,7 @@ describe('Create item page - Upload response : Preview contents', () => {
|
|
95
105
|
utilities.verifyElementCount(uploadResponsePage.fileName(), 1);
|
96
106
|
});
|
97
107
|
|
98
|
-
it(
|
108
|
+
it(`${view} - When user uploads different file types then only image files should be displayed with thumbnail`, () => {
|
99
109
|
for (let number = 0; number < 13; number++) {
|
100
110
|
uploadResponsePage.steps.deleteFile();
|
101
111
|
uploadResponsePage.steps.clickAcceptButtonInPopup();
|
@@ -104,7 +114,7 @@ describe('Create item page - Upload response : Preview contents', () => {
|
|
104
114
|
}
|
105
115
|
});
|
106
116
|
|
107
|
-
it(
|
117
|
+
it(`${view} - When user uploads a file in .heif or .heic format then and info icon with tool tip should be present and image thumb nail should not be present`, () => {
|
108
118
|
for (let number = 13; number < 15; number++) {
|
109
119
|
uploadResponsePage.steps.deleteFile();
|
110
120
|
uploadResponsePage.steps.clickAcceptButtonInPopup();
|
@@ -19,7 +19,7 @@ describe('Preview of Video response for compact recorder style', () => {
|
|
19
19
|
videoResponsePage.steps.switchToPreviewTab();
|
20
20
|
});
|
21
21
|
|
22
|
-
it(
|
22
|
+
it(`Video response : If user selects \'Compact\' option from \'video recorder style\' toggle buttons, then \'Record\' button and \'Click the button to start recording...\' help text should be displayed in the preview tab`, () => {
|
23
23
|
utilities.verifyElementVisibilityState(videoResponsePage.recordButtonCompactPreview(), 'visible');
|
24
24
|
utilities.verifyInnerText(videoResponsePage.recordButtonCompactPreview(), 'Record');
|
25
25
|
utilities.verifyInnerText(videoResponsePage.recordingHelpTextCompactPreview(), 'Click the button to start recording...');
|
@@ -139,7 +139,7 @@ describe('Preview of Video response for compact recorder style', () => {
|
|
139
139
|
cy.checkAccessibility(videoResponsePage.previewTabQuestionWrapper());
|
140
140
|
});
|
141
141
|
|
142
|
-
it(
|
142
|
+
it(`Video response: When the recorder is in paused state and the user clicks on the \'Resume recording\' button the recording should get resumed from where it was paused. Resume recording button should update to Pause button and the help text should update to "Recording...". Resume icon button should get replaced with Pause icon button in the flyout, user should be able to view the duration of their recorded video in minutes, displayed as \'(min:secs / min:sec)\'. Stop button should be displayed in preview tab.`, () => {
|
143
143
|
videoResponsePage.steps.resumeRecordingCompactPreview();
|
144
144
|
utilities.verifyElementVisibilityState(videoResponsePage.resumeRecordingButtonCompactPreview(), 'notExist');
|
145
145
|
utilities.verifyElementVisibilityState(videoResponsePage.pauseRecordingButtonCompactPreview(), 'visible');
|
@@ -196,7 +196,7 @@ describe('Preview of Video response for compact recorder style', () => {
|
|
196
196
|
utilities.verifyElementVisibilityState(videoResponsePage.playPlaybackButtonCompactPreview(), 'visible');
|
197
197
|
});
|
198
198
|
|
199
|
-
it(
|
199
|
+
it(`Video response : When recording is inprogress, recording should stop at maximum recording duration and \'Stop\' button should get replaced with Retake button. Playback button should be displayed in enabled state.`, () => {
|
200
200
|
cy.log('Pre-step: Switch to edit tab and set maximum recording duration to 10 secs')
|
201
201
|
videoResponsePage.steps.switchToEditTab();
|
202
202
|
videoResponsePage.steps.setMaximumRecordingDuration(40);
|
@@ -14,6 +14,14 @@ describe('Create item page - Video response: Grading view, Correct answer view c
|
|
14
14
|
cy.loginAs('admin');
|
15
15
|
});
|
16
16
|
|
17
|
+
beforeEach(() => {
|
18
|
+
cy.startApplitools();
|
19
|
+
});
|
20
|
+
|
21
|
+
afterEach(() => {
|
22
|
+
cy.eyesClose();
|
23
|
+
});
|
24
|
+
|
17
25
|
if (views.includes('Grading view')) {
|
18
26
|
describe('Grading view contents', { tags: 'smoke' }, () => {
|
19
27
|
let actualVideoSeekedInPercent = 50
|
@@ -43,9 +51,10 @@ describe('Create item page - Video response: Grading view, Correct answer view c
|
|
43
51
|
utilities.verifyElementVisibilityState(videoResponsePage.questionInstructionsText(), 'visible');
|
44
52
|
});
|
45
53
|
|
46
|
-
it('The response submitted by the student should be visible in the playback player of the grading view.', () => {
|
54
|
+
it('Video response : The response submitted by the student should be visible in the playback player of the grading view.', () => {
|
47
55
|
utilities.verifyElementVisibilityState(videoResponsePage.standardPreviewPlaybackWrapper(), 'visible');
|
48
56
|
videoResponsePage.steps.verifyVideoPlaybackTimer('0:00', '0:12');
|
57
|
+
cy.eyesCheckWindow(`Video response - Grading view contents`);
|
49
58
|
});
|
50
59
|
|
51
60
|
it('When the user clicks on \'Play\' button, then the video should start playing. Timer should display the amount of video that has been played and the total video length in (mm:ss)/(mm:ss) format.', () => {
|
@@ -54,7 +63,7 @@ describe('Create item page - Video response: Grading view, Correct answer view c
|
|
54
63
|
videoResponsePage.steps.verifyVideoPlaybackTimer('0:03', '0:12');
|
55
64
|
});
|
56
65
|
|
57
|
-
it('When the video player is in playback state and the user clicks on \'Pause\' button, then playback should get paused. Progress bar and timer should not update further and the \'Pause\' button should get replaced with \'Play\' button', () => {
|
66
|
+
it('Video response : When the video player is in playback state and the user clicks on \'Pause\' button, then playback should get paused. Progress bar and timer should not update further and the \'Pause\' button should get replaced with \'Play\' button', () => {
|
58
67
|
videoResponsePage.steps.verifyVideoPlaybackTimer('0:05', '0:12');
|
59
68
|
videoResponsePage.steps.pauseAndVerifyProgressBarSliderPosition();
|
60
69
|
videoResponsePage.steps.verifyVideoPlaybackTimer('0:05', '0:12');
|
@@ -122,7 +131,7 @@ describe('Create item page - Video response: Grading view, Correct answer view c
|
|
122
131
|
});
|
123
132
|
}
|
124
133
|
|
125
|
-
it('A download button should be displayed in the playback player', () => {
|
134
|
+
it('Video response : A download button should be displayed in the playback player', () => {
|
126
135
|
utilities.verifyElementVisibilityState(videoResponsePage.downloadVideoButton(), 'visible');
|
127
136
|
});
|
128
137
|
|
@@ -171,8 +180,9 @@ describe('Create item page - Video response: Grading view, Correct answer view c
|
|
171
180
|
|
172
181
|
correctAnswerViewPage.tests.verifyManualScoredQuestionHelpTextCorrectAnswerPage();
|
173
182
|
|
174
|
-
it('The points alloted to the question should be displayed', () => {
|
183
|
+
it('Video response: The points alloted to the question should be displayed', () => {
|
175
184
|
correctAnswerViewPage.steps.verifyAvailablePoints(10);
|
185
|
+
cy.eyesCheckWindow('Video response: Correct answer view contents');
|
176
186
|
});
|
177
187
|
});
|
178
188
|
}
|
@@ -13,6 +13,14 @@ describe('Create item page - Video response: Preview contents', () => {
|
|
13
13
|
cy.loginAs('admin');
|
14
14
|
});
|
15
15
|
|
16
|
+
beforeEach(() => {
|
17
|
+
cy.startApplitools();
|
18
|
+
});
|
19
|
+
|
20
|
+
afterEach(() => {
|
21
|
+
cy.eyesClose();
|
22
|
+
});
|
23
|
+
|
16
24
|
views.forEach((view) => {
|
17
25
|
describe(`Preview tab contents - ${view}`, { tags: 'smoke' }, () => {
|
18
26
|
abortEarlySetup();
|
@@ -59,7 +67,7 @@ describe('Create item page - Video response: Preview contents', () => {
|
|
59
67
|
utilities.verifyElementVisibilityState(videoResponsePage.startRecordingText(), 'visible');
|
60
68
|
});
|
61
69
|
|
62
|
-
it(
|
70
|
+
it(`${view} view - Video response: When the user has not started recording, a status message: \'Allow camera and microphone access.\' along with a microphone icon should be displayed on the recording interface`, () => {
|
63
71
|
videoResponsePage.steps.verifyRecordingStatus('Allow camera and microphone access.');
|
64
72
|
});
|
65
73
|
|
@@ -146,13 +154,14 @@ describe('Create item page - Video response: Preview contents', () => {
|
|
146
154
|
utilities.verifyElementVisibilityState(videoResponsePage.stopButton(), 'visible');
|
147
155
|
});
|
148
156
|
|
149
|
-
it(
|
157
|
+
it(`${view} view - Video response: When a recording is in progress and the user first pauses the recording and then stops recording, then the recording should stop, recorded video response should be saved. User should be able to view the duration of their recorded video in minutes, displayed as \'(min:secs)\'.`, () => {
|
150
158
|
videoResponsePage.steps.resetQuestionPreview();
|
151
159
|
videoResponsePage.steps.startRecording();
|
152
160
|
videoResponsePage.steps.waitForRecordingToStart();
|
153
161
|
videoResponsePage.steps.addWaitToRecord(9000);
|
154
162
|
videoResponsePage.steps.pauseRecording();
|
155
163
|
videoResponsePage.steps.stopAndVerifySavingAndRecordingLength();
|
164
|
+
cy.eyesCheckWindow(`${view} view - Video response: Duration of their recorded video in minutes`);
|
156
165
|
});
|
157
166
|
} else {
|
158
167
|
it('When a recording is in progress and the user clicks on the \'Pause recording\' button, recording should pause and the status message should update to \'Recording paused\'. User should be able to view the duration of their recorded video in minutes, displayed as \'(min:secs/min:sec)\'. \'Pause recording\' button should get replaced with \'Resume recording\' button. \'Stop recording\' button should be displayed beside resume recording button', () => {
|
@@ -182,7 +191,7 @@ describe('Create item page - Video response: Preview contents', () => {
|
|
182
191
|
utilities.verifyInnerText(videoResponsePage.savedResponseText(), 'Your response has been recorded.');
|
183
192
|
});
|
184
193
|
|
185
|
-
it(
|
194
|
+
it(`${view} view - Video response: When the video player is in playback state and the user clicks on \'Pause\' button, then playback should get paused. Progress bar and timer should not update further and the \'Pause\' button should get replaced with \'Play\' button`, () => {
|
186
195
|
videoResponsePage.steps.pauseAndVerifyProgressBarSliderPosition();
|
187
196
|
utilities.verifyElementVisibilityState(videoResponsePage.playbackPlayButton(), 'visible');
|
188
197
|
utilities.verifyElementVisibilityState(videoResponsePage.playbackPauseButton(), 'notExist');
|
@@ -44,7 +44,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
44
44
|
};
|
45
45
|
|
46
46
|
views.forEach((view) => {
|
47
|
-
describe(`
|
47
|
+
describe(`Charts - Dot: All or nothing scoring - ${view}`, { tags: 'smoke' }, () => {
|
48
48
|
abortEarlySetup();
|
49
49
|
before(() => {
|
50
50
|
switch (view) {
|
@@ -116,7 +116,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
116
116
|
};
|
117
117
|
|
118
118
|
//Note: Remove comment after https://redmine.zeuslearning.com/issues/570904 is resolved
|
119
|
-
it.skip(
|
119
|
+
it.skip(`${view} - Charts Dot - When the user selects \'Grading\' view without attempting the question, then by default correct dot column should have correct icons, incorrect dot column should have incorrect icons, the correct answer should be displayed in the correct answer section number line axis and correct/incorrect status message should not be displayed`, () => {
|
120
120
|
if (view === 'Grading view') {
|
121
121
|
studentViewPage.steps.submitResponse();
|
122
122
|
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
|
@@ -141,7 +141,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
141
141
|
chartsDotPlotPage.steps.verifyCorrectIncorrectStatusMessageNotExists();
|
142
142
|
});
|
143
143
|
|
144
|
-
it(
|
144
|
+
it(`${view} - Charts Dot - When the user attempts the question incorrectly then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted dot column should be displayed incorrect and the correct answer should be displayed in the correct answer section number line axis`, () => {
|
145
145
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(2, { point: 4, min: 1, interval: 1 });
|
146
146
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(2, { point: 6, min: 1, interval: 1, defaultDots: 0 });
|
147
147
|
if (view === 'Grading view') {
|
@@ -170,7 +170,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
170
170
|
chartsDotPlotPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
|
171
171
|
});
|
172
172
|
|
173
|
-
it(
|
173
|
+
it(`${view} - Charts Dot - When the user attempts the question by adding more dots than required in the dot columns having dots by default, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted dot column should be displayed incorrect and the correct answer should be displayed in the correct answer section number line axis`, () => {
|
174
174
|
if (view === 'Grading view') {
|
175
175
|
studentViewPage.steps.clearResponses();
|
176
176
|
};
|
@@ -201,7 +201,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
201
201
|
chartsDotPlotPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
|
202
202
|
});
|
203
203
|
|
204
|
-
it(
|
204
|
+
it(`${view} - Charts Dot - When the user attempts the question by setting fewer dots than required in the dot columns having dots by default, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted dot column should be displayed incorrect and the correct answer should be displayed in the correct answer section number line axis`, () => {
|
205
205
|
if (view === 'Grading view') {
|
206
206
|
studentViewPage.steps.clearResponses();
|
207
207
|
};
|
@@ -233,7 +233,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
233
233
|
chartsDotPlotPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
|
234
234
|
});
|
235
235
|
|
236
|
-
it(
|
236
|
+
it(`${view} - Charts Dot - When the user attempts the question by removing all the dots to dot column that is not supposed to be empty, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted dot column should be displayed incorrect and the correct answer should be displayed in the correct answer section number line axis`, () => {
|
237
237
|
if (view === 'Grading view') {
|
238
238
|
studentViewPage.steps.clearResponses();
|
239
239
|
};
|
@@ -265,7 +265,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
265
265
|
chartsDotPlotPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
|
266
266
|
});
|
267
267
|
|
268
|
-
it(
|
268
|
+
it(`${view} - Charts Dot - When the user attempts the question by adding dots to the dot columns that is supposed to be empty, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted dot column should be displayed incorrect and the correct answer should be displayed in the correct answer section number line axis`, () => {
|
269
269
|
if (view === 'Grading view') {
|
270
270
|
studentViewPage.steps.clearResponses();
|
271
271
|
};
|
@@ -297,7 +297,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
297
297
|
chartsDotPlotPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
|
298
298
|
});
|
299
299
|
|
300
|
-
it(
|
300
|
+
it(`${view} - Charts Dot - When the user attempts the question by changing number of dots in the dot columns which have the correct number of dots by default and setting a dot column correctly, then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the incorrectly attempted dot column should be displayed incorrect, correctly attempted dot column should be displayed correct, and the correct answer should be displayed in the correct answer section number line axis`, () => {
|
301
301
|
if (view === 'Grading view') {
|
302
302
|
studentViewPage.steps.clearResponses();
|
303
303
|
};
|
@@ -330,7 +330,7 @@ describe('Create Item page - Charts - Dot: All or nothing ', () => {
|
|
330
330
|
chartsDotPlotPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
|
331
331
|
});
|
332
332
|
|
333
|
-
it(
|
333
|
+
it(`${view} - Charts Dot - When the user attempts the question correctly, the user should be awarded with full points and on switching to grading view, \'Your answer is correct\' should be displayed and correct answer section should not be displayed`, () => {
|
334
334
|
if (view === 'Grading view') {
|
335
335
|
studentViewPage.steps.clearResponses();
|
336
336
|
};
|
@@ -88,7 +88,7 @@ describe('Create item page - Dot plot charts : Grading view, Correct answer view
|
|
88
88
|
chartsDotPlotPage.steps.verifyDotCountCorrectAnswerSection(2, { point: 1, min: 1, interval: 0.25 });
|
89
89
|
});
|
90
90
|
|
91
|
-
it('Correct answer section along with dot plot attempted by the user should be displayed', () => {
|
91
|
+
it('Charts Dot - Correct answer section along with dot plot attempted by the user should be displayed', () => {
|
92
92
|
chartsDotPlotPage.steps.verifyCorrectDotColumnPreviewTab({ point: 3, min: 1, interval: 0.25 });
|
93
93
|
chartsDotPlotPage.steps.verifyCorrectDotPreviewTab({ point: 3, min: 1, interval: 0.25 });
|
94
94
|
chartsDotPlotPage.steps.verifyIncorrectDotColumnPreviewTab({ point: 2, min: 1, interval: 0.25 });
|
@@ -181,7 +181,7 @@ describe('Create item page - Dot plot charts : Grading view, Correct answer view
|
|
181
181
|
chartsDotPlotPage.steps.verifyCorrectDotPreviewTab({ point: 3, min: 1, interval: 0.25 });
|
182
182
|
});
|
183
183
|
|
184
|
-
it('The points alloted to the question should be displayed', () => {
|
184
|
+
it('Charts Dot - The points alloted to the question should be displayed', () => {
|
185
185
|
correctAnswerViewPage.steps.verifyAvailablePoints(10);
|
186
186
|
});
|
187
187
|
|
@@ -13,6 +13,14 @@ describe('Create item page: Charts - Dot - Preview contents in all views', () =>
|
|
13
13
|
cy.loginAs('admin');
|
14
14
|
});
|
15
15
|
|
16
|
+
beforeEach(() => {
|
17
|
+
cy.startApplitools();
|
18
|
+
});
|
19
|
+
|
20
|
+
afterEach(() => {
|
21
|
+
cy.eyesClose();
|
22
|
+
});
|
23
|
+
|
16
24
|
views.forEach((view) => {
|
17
25
|
describe(`Preview tab contents - ${view}`, { tags: 'smoke' }, () => {
|
18
26
|
abortEarlySetup();
|
@@ -71,13 +79,13 @@ describe('Create item page: Charts - Dot - Preview contents in all views', () =>
|
|
71
79
|
utilities.verifyElementVisibilityState(chartsDotPlotPage.previewTabXAxisLabelButton(), 'visible');
|
72
80
|
});
|
73
81
|
|
74
|
-
it(
|
82
|
+
it(`${view} - Charts Dot - The number line axis should be displayed with labels from 1 to 6 with 20 divisions`, () => {
|
75
83
|
utilities.verifyElementVisibilityState(chartsDotPlotPage.numberLineAxisPreviewTab(), 'exist');
|
76
84
|
chartsDotPlotPage.steps.verifyDivisionsOnNumberLineAxisPreviewTab({ min: 1, max: 6, interval: 0.25 });
|
77
85
|
chartsDotPlotPage.steps.verifyLabelsOnNumberLineAxisPreviewTab(1, 6, 4);
|
78
86
|
});
|
79
87
|
|
80
|
-
it(
|
88
|
+
it(`${view} - Charts Dot - User should be able to edit the X axis labels in preview tab`, () => {
|
81
89
|
chartsDotPlotPage.steps.editXAxisLabelInPreviewTab('Numbers of days');
|
82
90
|
utilities.verifyInnerText(chartsDotPlotPage.previewTabXAxisLabelButton(), 'Numbers of days');
|
83
91
|
});
|
@@ -164,7 +172,7 @@ describe('Create item page: Charts - Dot - Preview contents in all views', () =>
|
|
164
172
|
chartsDotPlotPage.steps.unselectDotColumnInPreviewTab({ point: 4, min: 1, interval: 0.25 });
|
165
173
|
});
|
166
174
|
|
167
|
-
it(
|
175
|
+
it(`${view} - Charts Dot - When user removes dots from dot column having 10 dots then \'Add dot\' button should be in enabled state`, () => {
|
168
176
|
//using minus button
|
169
177
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(9, { point: 5, min: 1, interval: 0.25 });
|
170
178
|
chartsDotPlotPage.steps.selectDotColumnInPreviewTab({ point: 5, min: 1, interval: 0.25 });
|
@@ -174,6 +182,7 @@ describe('Create item page: Charts - Dot - Preview contents in all views', () =>
|
|
174
182
|
chartsDotPlotPage.steps.decreaseDotInDotColumnUsingKeyboardPreviewTab(1, { point: 4, min: 1, interval: 0.25 });
|
175
183
|
utilities.verifyElementNotDisabled(chartsDotPlotPage.addButtonPreviewTab());
|
176
184
|
chartsDotPlotPage.steps.unselectDotColumnInPreviewTab({ point: 4, min: 1, interval: 0.25 });
|
185
|
+
cy.eyesCheckWindow(`${view} - Charts Dot - Charts Dot: After Adding/Removing dots`);
|
177
186
|
});
|
178
187
|
|
179
188
|
it('CSS of preview tab contents', { tags: 'css' }, () => {
|
@@ -370,7 +379,7 @@ describe('Create item page: Charts - Dot - Preview contents in all views', () =>
|
|
370
379
|
utilities.verifyElementNotDisabled(chartsDotPlotPage.controlOptionsPreviewTab(controlOptions[0]));
|
371
380
|
});
|
372
381
|
|
373
|
-
it(
|
382
|
+
it(`${view} - Charts Dot - When the user clicks on Reset button and confirms reset, then all the chart actions should be reverted and chart should be reverted to default state and control options should be in disabled state`, () => {
|
374
383
|
chartsDotPlotPage.steps.selectControlOptionPreviewTab(controlOptions[2]);
|
375
384
|
chartsDotPlotPage.steps.confirmReset();
|
376
385
|
chartsDotPlotPage.steps.verifyDotColumnIsLockedInPreviewTab({ point: 1, min: 1, interval: 0.25 });
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module.exports = {
|
2
|
+
apiKey: 'iv996xa7KXMrp8xQ8JwZ9TybQwOUVjzBDzDzoEyyr8z4110',
|
3
|
+
serverUrl: 'https://eyes.applitools.com',
|
4
|
+
browser: [
|
5
|
+
{ width: 1366, height: 609, name: 'chrome' },
|
6
|
+
{ width: 1280, height: 832, name: 'edgechromium' },
|
7
|
+
{ width: 1536, height: 960, name: 'safari' },
|
8
|
+
{ width: 1024, height: 1366, name: 'safari' }
|
9
|
+
],
|
10
|
+
//Configuration options: https://applitools.com/tutorials/sdks/cypress/configuration
|
11
|
+
ignoreDisplacements: true, // Set to false to detect mismatches in the displacements of the elements
|
12
|
+
failCypressOnDiff: false, // Set to true to fail the test when differences are detected
|
13
|
+
isDisabled: false // Set to true to disable Applitools
|
14
|
+
};
|
@@ -363,6 +363,7 @@ const tests = {
|
|
363
363
|
equationEditorSectionCommonComponent.steps.focusInResponseAnswerInputFieldPreviewTab(0);
|
364
364
|
}
|
365
365
|
utilities.verifyElementVisibilityState(equationEditorFlyout.dialogBox(), 'visible');
|
366
|
+
cy.eyesCheckWindow('Equation Editor flyout in preview tab');
|
366
367
|
});
|
367
368
|
|
368
369
|
it('\'Done\'button should be displayed at the bottom of the flyout', () => {
|
@@ -430,11 +431,12 @@ const tests = {
|
|
430
431
|
cy.checkAccessibility(equationEditorFlyout.dialogBox());
|
431
432
|
});
|
432
433
|
|
433
|
-
it(
|
434
|
+
it(`${questionType} Cancel button should be displayed in the flyout and when user clicks the 'Cancel' button then the flyout should close`, () => {
|
434
435
|
utilities.verifyElementVisibilityState(equationEditorFlyout.buttonCancel(), 'visible');
|
435
436
|
utilities.verifyInnerText(equationEditorFlyout.buttonCancel(), 'Cancel');
|
436
437
|
equationEditorFlyout.steps.clickOnEquationEditorCancelButton();
|
437
438
|
utilities.verifyElementVisibilityState(equationEditorFlyout.dialogBox(), 'notExist');
|
439
|
+
cy.eyesCheckWindow(`${questionType} Equation Editor flyout should not be displayed`);
|
438
440
|
});
|
439
441
|
},
|
440
442
|
|
@@ -5,6 +5,7 @@ import 'cypress-file-upload';
|
|
5
5
|
import { iePage } from './migrationHelpers/verifyIeQuestionData';
|
6
6
|
import { lrnPage } from './migrationHelpers/extractLrnQuestionData';
|
7
7
|
require('cy-verify-downloads').addCustomCommand();
|
8
|
+
import { apiKey, browser, serverUrl } from '../e2e/applitools.config';
|
8
9
|
//import addContext from "mochawesome/addContext";
|
9
10
|
|
10
11
|
const randomUser = (j, username, i) => ({
|
@@ -154,6 +155,16 @@ Cypress.Commands.add('learnosityLoaderWait', () => {
|
|
154
155
|
.should('be.visible');
|
155
156
|
});
|
156
157
|
|
158
|
+
Cypress.Commands.add('startApplitools', () => {
|
159
|
+
cy.eyesOpen({
|
160
|
+
apiKey,
|
161
|
+
serverUrl,
|
162
|
+
browser,
|
163
|
+
appName: 'Applitools Demo - ILC',
|
164
|
+
testName: Cypress.currentTest.title,
|
165
|
+
});
|
166
|
+
});
|
167
|
+
|
157
168
|
Cypress.Commands.add('lazyLoadPreviewQuestions', (count, retries = 5) => {
|
158
169
|
iePage.questionAndResourceWrapper()
|
159
170
|
.then((elements) => {
|
package/cypress/support/e2e.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "itemengine-cypress-automation",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.294-applitools-09785a6.0",
|
4
4
|
"description": "",
|
5
5
|
"main": "index.js",
|
6
6
|
"scripts": {
|
@@ -35,5 +35,8 @@
|
|
35
35
|
"node-fetch": "^3.3.2",
|
36
36
|
"react-uuid": "^2.0.0",
|
37
37
|
"typescript": "^5.6.3"
|
38
|
+
},
|
39
|
+
"devDependencies": {
|
40
|
+
"@applitools/eyes-cypress": "^3.49.1"
|
38
41
|
}
|
39
42
|
}
|