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.
Files changed (103) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/barRecorderStyle.smoke.js +26 -26
  2. package/cypress/e2e/ILC/AudioResponseNew/compactRecorderStyle.smoke.js +4 -4
  3. package/cypress/e2e/ILC/AudioResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +12 -2
  4. package/cypress/e2e/ILC/AudioResponseNew/previewContentsForAllViews.smoke.js +11 -2
  5. package/cypress/e2e/ILC/BrainingCampManipulative/previewTabContent.smoke.js +1 -1
  6. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/allOrNothingScoringForAllViews.smoke.js +17 -8
  7. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +3 -3
  8. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/previewContentsForAllViews.smoke.js +14 -5
  9. package/cypress/e2e/ILC/ChartsBar/allOrNothingScoringForAllViews.smoke.js +17 -8
  10. package/cypress/e2e/ILC/ChartsBar/gradingViewAndCorrectAnswerView.smoke.js +12 -2
  11. package/cypress/e2e/ILC/ChartsBar/previewContentsForAllViews.smoke.js +15 -6
  12. package/cypress/e2e/ILC/ChartsLine/allOrNothingScoringForAllViews.smoke.js +8 -8
  13. package/cypress/e2e/ILC/ChartsLine/gradingViewAndCorrectAnswerView.smoke.js +12 -2
  14. package/cypress/e2e/ILC/ChartsLine/previewContentsForAllViews.smoke.js +14 -5
  15. package/cypress/e2e/ILC/Compass/compassPreviewContent.smoke.js +1 -1
  16. package/cypress/e2e/ILC/ContentBlocks/previewContents.smoke.js +1 -1
  17. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/allOrNothingBasicForAllViews.smoke.js +15 -6
  18. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/previewContentsForAllViews.smoke.js +12 -3
  19. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +12 -2
  20. package/cypress/e2e/ILC/DrawingResponse/drawingResponsePreviewTabContents.smoke.js +19 -21
  21. package/cypress/e2e/ILC/EssayResponse/equationEditor.smoke.js +8 -0
  22. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/allOrNothingForAllViews.smoke.js +15 -6
  23. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +13 -3
  24. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +13 -4
  25. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/previewContentsForAllViews.smoke.js +12 -3
  26. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/allOrNothingForAllViews.smoke.js +14 -5
  27. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +13 -4
  28. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +13 -4
  29. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViews.smoke.js +12 -3
  30. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +13 -4
  31. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/previewContentsForAllViews.smoke.js +13 -4
  32. package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +13 -4
  33. package/cypress/e2e/ILC/FillInTheGapsTextNew/previewContentsForAllViews.smoke.js +13 -4
  34. package/cypress/e2e/ILC/Graphing/allOrNothingForAllViews.smoke.js +5 -5
  35. package/cypress/e2e/ILC/Graphing/gradingViewAndCorrectAnswerView.smoke.js +12 -2
  36. package/cypress/e2e/ILC/Graphing/previewContentsForAllViews.smoke.js +13 -4
  37. package/cypress/e2e/ILC/GridFill/allOrNothingBasicForAllViews.smoke.js +15 -5
  38. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +9 -1
  39. package/cypress/e2e/ILC/ImageHighlight/allOrNothingForAllViews.smoke.js +15 -5
  40. package/cypress/e2e/ILC/ImageHighlight/previewContentsForAllViews.smoke.js +13 -4
  41. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +4 -4
  42. package/cypress/e2e/ILC/ListOrderingDropdown/previewContentsForAllViews.smoke.js +12 -3
  43. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/previewContentsForAllViews.smoke.js +11 -2
  44. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +13 -4
  45. package/cypress/e2e/ILC/ListOrderingNew/horizontalOrientationAllOrNothingForAllViews.smoke.js +5 -5
  46. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/HorizontalOrientation/horizontalOrientationAllOrNothingForAllViews.smoke.js +6 -5
  47. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/HorizontalOrientation/previewContentsForAllViews.smoke.js +12 -3
  48. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/allOrNothingForAllViews.smoke.js +14 -4
  49. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/previewContentsForAllViews.smoke.js +3 -3
  50. package/cypress/e2e/ILC/Matching/allOrNothingScoringForAllViews.smoke.js +14 -5
  51. package/cypress/e2e/ILC/Matching/previewTabContentsForAllViews.smoke.js +12 -3
  52. package/cypress/e2e/ILC/MatchingDropdown/allOrNothingScoringForAllViews.smoke.js +5 -5
  53. package/cypress/e2e/ILC/MatchingDropdown/previewContentsForAllViews.smoke.js +13 -4
  54. package/cypress/e2e/ILC/MultipleSelection/allOrNothingBasicForAllViews.smoke.js +19 -10
  55. package/cypress/e2e/ILC/MultipleSelection/previewContentsForAllViews.smoke.js +11 -2
  56. package/cypress/e2e/ILC/MultipleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +14 -5
  57. package/cypress/e2e/ILC/MultipleSelectionGridNew/previewContentsForAllViews.smoke.js +14 -4
  58. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +5 -5
  59. package/cypress/e2e/ILC/NumberLine/gradingViewAndCorrectAnswerView.smoke.js +12 -2
  60. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +13 -4
  61. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +5 -5
  62. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +3 -2
  63. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/previewTabContentsForAllViews.smoke.js +4 -4
  64. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +5 -5
  65. package/cypress/e2e/ILC/NumberLineLabel/gradingViewAndCorrectAnswerView.smoke.js +10 -0
  66. package/cypress/e2e/ILC/NumberLineLabel/previewContentsForAllViews.smoke.js +10 -1
  67. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +5 -5
  68. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/gradingViewAndCorrectAnswerView.smoke.js +2 -2
  69. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/previewContentsForAllViews.smoke.js +1 -1
  70. package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
  71. package/cypress/e2e/ILC/ReadingRuler/readingrulerPreviewContents.smoke.js +1 -1
  72. package/cypress/e2e/ILC/Ruler/rulerPreviewContents.smoke.js +1 -1
  73. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +12 -3
  74. package/cypress/e2e/ILC/ShortTextResponseNew/previewContentsForAllViews.smoke.js +5 -6
  75. package/cypress/e2e/ILC/SimpleCalculator/previewContents.smoke.js +1 -1
  76. package/cypress/e2e/ILC/SingleSelection/allOrNothingBasicForAllViews.smoke.js +12 -3
  77. package/cypress/e2e/ILC/SingleSelection/previewContents.smoke.js +10 -1
  78. package/cypress/e2e/ILC/SingleSelectionGridNew/allOrNothingBasicForAllViews.smoke.js +14 -5
  79. package/cypress/e2e/ILC/SingleSelectionGridNew/previewContentsForAllViews.smoke.js +10 -1
  80. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +23 -14
  81. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +5 -6
  82. package/cypress/e2e/ILC/TextEntryMath/previewContentsForAllViews.smoke.js +13 -4
  83. package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +17 -17
  84. package/cypress/e2e/ILC/TextEntryMathWithImage/previewTabContentsForAllViews.smoke.js +13 -5
  85. package/cypress/e2e/ILC/TextSelection/ScoringGeneric/basicScoringForAllTextSelectionTypes.smoke.js +4 -4
  86. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +16 -6
  87. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +8 -8
  88. package/cypress/e2e/ILC/ToolAudioPlayerNew/previewContents.smoke.js +3 -3
  89. package/cypress/e2e/ILC/ToolSettings/toolSettingsPreviewContents.smoke.js +3 -3
  90. package/cypress/e2e/ILC/UploadResponse/gradingViewAndCorrectAnswerViewContents.smoke.js +11 -1
  91. package/cypress/e2e/ILC/UploadResponse/previewContentsForAllViews.smoke.js +13 -4
  92. package/cypress/e2e/ILC/UploadResponse/thumbNail.smoke.js +16 -6
  93. package/cypress/e2e/ILC/VideoResponseNew/compactRecorderStyle.smoke.js +3 -3
  94. package/cypress/e2e/ILC/VideoResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +14 -4
  95. package/cypress/e2e/ILC/VideoResponseNew/previewContentsForAllViews.smoke.js +12 -3
  96. package/cypress/e2e/ILC/chartsDotsPlot/allOrNothingForAllViews.smoke.js +9 -9
  97. package/cypress/e2e/ILC/chartsDotsPlot/gradingViewAndCorrectAnswerView.smoke.js +2 -2
  98. package/cypress/e2e/ILC/chartsDotsPlot/previewContentsForAllViews.smoke.js +13 -4
  99. package/cypress/e2e/applitools.config.js +14 -0
  100. package/cypress/pages/components/equationEditorSectionCommonComponent.js +3 -1
  101. package/cypress/support/commands.js +11 -0
  102. package/cypress/support/e2e.js +1 -0
  103. 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('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', () => {
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('CSS of Thumb nail and File name in preview tab', { tags: 'css' }, () => {
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('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', () => {
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('When user uploads different file types then only image files should be displayed with thumbnail', () => {
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('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', () => {
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('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', () => {
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('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.', () => {
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('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.', () => {
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('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', () => {
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('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)\'.', () => {
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('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', () => {
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(` Charts - Dot: All or nothing scoring - ${view}`, { tags: 'smoke' }, () => {
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('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', () => {
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('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', () => {
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('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', () => {
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('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', () => {
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('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', () => {
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('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', () => {
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('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', () => {
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('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', () => {
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('The number line axis should be displayed with labels from 1 to 6 with 20 divisions', () => {
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('User should be able to edit the X axis labels in preview tab', () => {
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('When user removes dots from dot column having 10 dots then \'Add dot\' button should be in enabled state', () => {
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('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', () => {
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('Cancel button should be displayed in the flyout and when user clicks the \'Cancel\' button then the flyout should close', () => {
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) => {
@@ -4,6 +4,7 @@ import 'cypress-axe';
4
4
  import './helpers/cypressUtilities';
5
5
  import './helpers/accessibility';
6
6
  import './helpers/selectText';
7
+ import '@applitools/eyes-cypress/commands'
7
8
 
8
9
  let windowConsoleError;
9
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.293-e2eUpdates5thFeb-7e9457e.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
  }