itemengine-cypress-automation 1.0.115 → 1.0.116

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/{barRecorderStyle.js → barRecorderStyle.smoke.js} +181 -179
  2. package/cypress/e2e/ILC/AudioResponseNew/{compactRecorderStyle.js → compactRecorderStyle.smoke.js} +178 -177
  3. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +2 -1
  4. package/cypress/e2e/ILC/AudioResponseNew/{standardRecorderStyle.js → standardRecorderStyle.smoke.js} +197 -195
  5. package/cypress/e2e/ILC/AudioResponseNew/studentViewSettings.js +3 -3
  6. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +5 -5
  7. package/cypress/e2e/ILC/DrawingResponse/drawingResponseAdditionalSettings.js +17 -17
  8. package/cypress/e2e/ILC/DrawingResponse/{drawingResponsePreviewTabContents.js → drawingResponsePreviewTabContents.smoke.js} +3 -3
  9. package/cypress/e2e/ILC/EssayResponse/gradingViewAndCorrectAnswerViewContents.smoke.js +1 -0
  10. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +0 -1
  11. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +0 -1
  12. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +0 -1
  13. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/allOrNothingPenaltyScoring.js +0 -1
  14. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/manuallyAndNonScored.js +1 -3
  15. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -1
  16. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsBasic.js +0 -3
  17. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +0 -1
  18. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +0 -1
  19. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsBasic.js +1 -4
  20. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +0 -1
  21. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +0 -1
  22. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +0 -1
  23. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/allOrNothingForAllView.smoke.js +0 -3
  24. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/checkAnswerFunctionalityForAllViews.smoke.js +0 -1
  25. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabScoringSection.js +276 -0
  26. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/previewContentsForAllViews.smoke.js +0 -1
  27. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/specifyCorrectAnswerSection.js +73 -0
  28. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +1 -1
  29. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +1 -1
  30. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +1 -1
  31. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/allOrNothingPenaltyScoring.js +1 -1
  32. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/conditionalCheckboxScoring.js +4 -4
  33. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/manuallyAndNonScored.js +2 -2
  34. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -1
  35. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsBasic.js +1 -1
  36. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +1 -1
  37. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +1 -1
  38. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsBasic.js +1 -1
  39. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  40. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +1 -1
  41. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +1 -1
  42. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/responseLevelAlternateAnswersBasicScoring.js +1 -1
  43. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +4 -4
  44. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/checkAnswerFunctionalityForAllViews.smoke.js +1 -1
  45. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +2 -1
  46. package/cypress/e2e/ILC/ShortTextResponseNew/allOrNothingBasicForAllViews.smoke.js +1 -1
  47. package/cypress/fixtures/drawingToolbarOptionsAdditionalOptionsAndSpecialAndMathCharacters.js +2 -2
  48. package/cypress/pages/audioResponsePage.js +13 -6
  49. package/cypress/pages/components/autoScoredScoringSectionMultiResponseType.js +0 -27
  50. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +2 -2
  51. package/cypress/pages/components/commonComponents.js +1 -1
  52. package/cypress/pages/components/figOverImageCanvasComponent.js +1 -1
  53. package/cypress/pages/components/playbackControlsBaseComponent.js +3 -1
  54. package/cypress/pages/components/scoringSectionBaseEditTab.js +0 -9
  55. package/cypress/pages/drawingResponsePage.js +2 -2
  56. package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +14 -16
  57. package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +112 -3
  58. package/cypress/pages/fillInTheGapsOverImageTextPage.js +1 -1
  59. package/cypress/pages/readingRulerPage.js +1 -1
  60. package/cypress/pages/shortTextResponsePage.js +8 -8
  61. package/package.json +2 -2
@@ -9,7 +9,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
9
9
  cy.loginAs('admin');
10
10
  });
11
11
 
12
- describe('Preview of Compact audio recorder style', () => {
12
+ describe('Preview of Compact audio recorder style', { tags: 'smoke' }, () => {
13
13
  abortEarlySetup();
14
14
  before(() => {
15
15
  audioResponsePage.steps.navigateToCreateQuestion('audio response');
@@ -21,8 +21,8 @@ describe('Preview of Audio response for compact audio recorder style', () => {
21
21
  it('If user selects \'Compact\' option from \'Audio recorder style\' toggle buttons, then \'Record\' button and \'Click the button to start recording...\' help text should be displayed in the preview tab', () => {
22
22
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecordButton(), 'visible');
23
23
  utilities.verifyInnerText(audioResponsePage.compactPreviewRecordButton(), 'Record');
24
- utilities.verifyInnerText(audioResponsePage.compactPreviewRecorderHelpText(), 'Click the button to start recording...');
25
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecorderHelpText(), 'visible');
24
+ utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingHelpText(), 'Click the button to start recording...');
25
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecordingHelpText(), 'visible');
26
26
  });
27
27
 
28
28
  it('CSS of Preview section', { tags: 'css' }, () => {
@@ -35,7 +35,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
35
35
  utilities.verifyCSS(audioResponsePage.compactPreviewRecordButton().find('svg'), {
36
36
  'fill': css.color.defaultBackground
37
37
  });
38
- utilities.verifyCSS(audioResponsePage.compactPreviewRecorderHelpText(), {
38
+ utilities.verifyCSS(audioResponsePage.compactPreviewRecordingHelpText(), {
39
39
  'color': css.color.text,
40
40
  'font-size': css.fontSize.normal,
41
41
  'font-weight': css.fontWeight.regular
@@ -49,14 +49,14 @@ describe('Preview of Audio response for compact audio recorder style', () => {
49
49
  it('When the user clicks on the \'Record\' button, a countdown should begin and help text "Preparing to record" should be displayed. The recording should start, Mic icon, \'Stop\' and \'Pause\' buttons should be displayed. Total recording time should be displayed. \'Recording...\' help text, volume meter, timer should be displayed. User should be able to view the duration of their recorded speech in minutes, displayed as \'(min:secs / min:sec)\'. The volume meter should also detect the sound levels during recording', () => {
50
50
  audioResponsePage.steps.startRecordingCompactPreview();
51
51
  utilities.verifyElementVisibilityState(audioResponsePage.startRecordingCountDown(), 'visible');
52
- utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingHelpText(), 'Preparing to record');
52
+ utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingStatusText(), 'Preparing to record');
53
53
  utilities.verifyElementVisibilityState(audioResponsePage.recordingMicIcon(), 'visible');
54
54
  utilities.verifyElementVisibilityState(audioResponsePage.micGlowAnimation(), 'visible');
55
55
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewStopRecordingButton(), 'visible');
56
56
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPauseRecordingButton(), 'visible');
57
57
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRecordButton(), 'notExist');
58
58
  audioResponsePage.steps.waitForRecordingToStartCompactPreview();
59
- utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingHelpText(), 'Recording...')
59
+ utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingStatusText(), 'Recording...')
60
60
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewVolumeMeter(), 'visible');
61
61
  cy.log('Waiting 2 seconds to check updated timer');
62
62
  audioResponsePage.steps.addWaitToRecordAudio(2000);
@@ -75,7 +75,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
75
75
  'font-size': css.fontSize.heading,
76
76
  'font-weight': css.fontWeight.bold
77
77
  });
78
- utilities.verifyCSS(audioResponsePage.compactPreviewRecordingHelpText(), {
78
+ utilities.verifyCSS(audioResponsePage.compactPreviewRecordingStatusText(), {
79
79
  'color': css.color.text,
80
80
  'font-size': css.fontSize.normal,
81
81
  'font-weight': css.fontWeight.regular
@@ -108,11 +108,11 @@ describe('Preview of Audio response for compact audio recorder style', () => {
108
108
  audioResponsePage.steps.resetQuestionPreview();
109
109
  audioResponsePage.steps.startRecordingCompactPreview();
110
110
  audioResponsePage.steps.waitForRecordingToStartCompactPreview();
111
- utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingHelpText(), 'Recording...')
111
+ utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingStatusText(), 'Recording...')
112
112
  audioResponsePage.steps.addWaitToRecordAudio(4000);
113
113
  audioResponsePage.steps.pauseRecordingCompactPreview();
114
114
  audioResponsePage.steps.verifyRecordingTimeCompactPreview('00:05', '15:00');
115
- utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingHelpText(), 'Recording paused');
115
+ utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingStatusText(), 'Recording paused');
116
116
  utilities.verifyInnerText(audioResponsePage.compactPreviewVolumeMeter(), '0dB');
117
117
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewResumeRecordingButton(), 'visible');
118
118
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewStopRecordingButton(), 'visible');
@@ -128,7 +128,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
128
128
  utilities.verifyCSS(audioResponsePage.compactPreviewResumeRecordingButton().find('svg'), {
129
129
  'fill': css.color.defaultBackground
130
130
  });
131
- utilities.verifyCSS(audioResponsePage.compactPreviewRecordingHelpText(), {
131
+ utilities.verifyCSS(audioResponsePage.compactPreviewRecordingStatusText(), {
132
132
  'color': css.color.text,
133
133
  'font-size': css.fontSize.normal,
134
134
  'font-weight': css.fontWeight.regular
@@ -143,7 +143,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
143
143
  audioResponsePage.steps.resumeRecordingCompactPreview();
144
144
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewResumeRecordingButton(), 'notExist');
145
145
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPauseRecordingButton(), 'visible');
146
- utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingHelpText(), 'Recording...')
146
+ utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingStatusText(), 'Recording...')
147
147
  audioResponsePage.steps.addWaitToRecordAudio(1000);
148
148
  audioResponsePage.steps.verifyRecordingLengthAfterResumingCompactPreview();
149
149
  });
@@ -173,7 +173,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
173
173
  audioResponsePage.steps.addWaitToRecordAudio(1000);
174
174
  cy.log('Waiting for 1 second pausing the recording and then clicking Stop')
175
175
  audioResponsePage.steps.stopRecordingCompactPreview();
176
- utilities.verifyCSS(audioResponsePage.compactPreviewRecordingHelpText(), {
176
+ utilities.verifyCSS(audioResponsePage.compactPreviewRecordingStatusText(), {
177
177
  'color': css.color.text,
178
178
  'font-size': css.fontSize.normal,
179
179
  'font-weight': css.fontWeight.regular
@@ -198,7 +198,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
198
198
  utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlaybackPlayButton(), 'visible');
199
199
  });
200
200
 
201
- it('When recording is inprogress, recording should stop at recording length and \'Stop\' button should get replaced with Retake button. Playback button should be displayed in enabled state. \Your response has been recorded\' help message should be displayed in preview. Overlay should not be displayed in player', () => {
201
+ it('When recording is inprogress, recording should stop at maximum recording length and \'Stop\' button should get replaced with Retake button. Playback button should be displayed in enabled state. \Your response has been recorded\' help message should be displayed in preview. Overlay should not be displayed in player', () => {
202
202
  cy.log('Pre-step: Switch to edit tab and set maximum recording length to 10 secs')
203
203
  audioResponsePage.steps.switchToEditTab();
204
204
  audioResponsePage.steps.setMaximumRecorderLength(10);
@@ -227,7 +227,7 @@ describe('Preview of Audio response for compact audio recorder style', () => {
227
227
  });
228
228
  });
229
229
 
230
- describe('Playback player : Default state', () => {
230
+ describe('Playback player : Default state', { tags: 'smoke' }, () => {
231
231
  abortEarlySetup();
232
232
  before(() => {
233
233
  audioResponsePage.steps.navigateToCreateQuestion('audio response');
@@ -290,193 +290,194 @@ describe('Preview of Audio response for compact audio recorder style', () => {
290
290
  });
291
291
  });
292
292
 
293
- //Note: Need to add cases of seeking using waveform
294
- describe('Playback player : Play, pause and seek', () => {
295
- let actualAudioSeekedInPercent = 50
296
- abortEarlySetup();
297
- before(() => {
298
- audioResponsePage.steps.navigateToCreateQuestion('audio response');
299
- cy.barsPreLoaderWait();
300
- audioResponsePage.steps.selectAudioRecorderStyle('Compact');
301
- audioResponsePage.steps.switchToPreviewTab();
302
- audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
303
- });
304
-
305
- it('When the user clicks on \'Play\' button, then the audio should start playing. Timer should display the amount of audio that has been played and the total audio length in (mm:ss)/(mm:ss) format.', () => {
306
- audioResponsePage.steps.startPlaybackCompactPreview();
307
- audioResponsePage.steps.waitForPlaybackToBeginCompactPreview();
308
- audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:03', '00:10');
309
- });
310
-
311
- it('CSS of \'Preview\' section if playback is initiated', { tags: 'css' }, () => {
312
- utilities.verifyCSS(audioResponsePage.compactPreviewPlaybackTime(), {
313
- 'color': css.color.liText,
314
- 'font-size': css.fontSize.heading,
315
- 'font-weight': css.fontWeight.bold
316
- });
317
- utilities.verifyCSS(audioResponsePage.compactPreviewPausePlaybackButton(), {
318
- 'background-color': css.color.secondaryBtnBg,
319
- 'color': css.color.secondaryBtn,
320
- 'font-size': css.fontSize.default,
321
- 'font-weight': css.fontWeight.semibold
322
- });
323
- utilities.verifyCSS(audioResponsePage.compactPreviewPausePlaybackButton().find('svg path'), {
324
- 'fill': css.color.secondaryBtn
293
+ if (!grepTags || !grepTags.includes('smoke')) {
294
+ //Note: Need to add cases of seeking using waveform
295
+ describe('Playback player : Play, pause and seek', () => {
296
+ let actualAudioSeekedInPercent = 50
297
+ abortEarlySetup();
298
+ before(() => {
299
+ audioResponsePage.steps.navigateToCreateQuestion('audio response');
300
+ cy.barsPreLoaderWait();
301
+ audioResponsePage.steps.selectAudioRecorderStyle('Compact');
302
+ audioResponsePage.steps.switchToPreviewTab();
303
+ audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
325
304
  });
326
- utilities.verifyCSS(audioResponsePage.compactPreviewRetakeButton(), {
327
- 'background-color': css.color.recordingIcon,
328
- 'color': css.color.whiteText,
329
- 'font-size': css.fontSize.default,
330
- 'font-weight': css.fontWeight.semibold
331
- });
332
- utilities.verifyCSS(audioResponsePage.compactPreviewRetakeButton().find('svg path'), {
333
- 'fill': css.color.defaultBackground
334
- });
335
- });
336
305
 
337
- it('Accessibility of \'Preview\' section if playback is initiated', { tags: 'a11y' }, () => {
338
- cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
339
- });
306
+ it('When the user clicks on \'Play\' button, then the audio should start playing. Timer should display the amount of audio that has been played and the total audio length in (mm:ss)/(mm:ss) format.', () => {
307
+ audioResponsePage.steps.startPlaybackCompactPreview();
308
+ audioResponsePage.steps.waitForPlaybackToBeginCompactPreview();
309
+ audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:03', '00:10');
310
+ });
340
311
 
341
- it('When the audio 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', () => {
342
- audioResponsePage.steps.resetQuestionPreview();
343
- audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
344
- audioResponsePage.steps.startPlaybackCompactPreview();
345
- audioResponsePage.steps.waitForPlaybackToBeginCompactPreview();
346
- audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:05', '00:10');
347
- audioResponsePage.steps.pauseAndVerifyProgressBarSliderPosition();
348
- audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:05', '00:10');
349
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlayPlaybackButton(), 'visible');
350
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPausePlaybackButton(), 'notExist');
351
- });
312
+ it('CSS of \'Preview\' section if playback is initiated', { tags: 'css' }, () => {
313
+ utilities.verifyCSS(audioResponsePage.compactPreviewPlaybackTime(), {
314
+ 'color': css.color.liText,
315
+ 'font-size': css.fontSize.heading,
316
+ 'font-weight': css.fontWeight.bold
317
+ });
318
+ utilities.verifyCSS(audioResponsePage.compactPreviewPausePlaybackButton(), {
319
+ 'background-color': css.color.secondaryBtnBg,
320
+ 'color': css.color.secondaryBtn,
321
+ 'font-size': css.fontSize.default,
322
+ 'font-weight': css.fontWeight.semibold
323
+ });
324
+ utilities.verifyCSS(audioResponsePage.compactPreviewPausePlaybackButton().find('svg path'), {
325
+ 'fill': css.color.secondaryBtn
326
+ });
327
+ utilities.verifyCSS(audioResponsePage.compactPreviewRetakeButton(), {
328
+ 'background-color': css.color.recordingIcon,
329
+ 'color': css.color.whiteText,
330
+ 'font-size': css.fontSize.default,
331
+ 'font-weight': css.fontWeight.semibold
332
+ });
333
+ utilities.verifyCSS(audioResponsePage.compactPreviewRetakeButton().find('svg path'), {
334
+ 'fill': css.color.defaultBackground
335
+ });
336
+ });
352
337
 
353
- it('CSS of \'Preview\' section if playback is paused', { tags: 'css' }, () => {
354
- utilities.verifyCSS(audioResponsePage.compactPreviewPlayPlaybackButton(), {
355
- 'background-color': css.color.secondaryBtnBg,
356
- 'color': css.color.secondaryBtn,
357
- 'font-size': css.fontSize.default,
358
- 'font-weight': css.fontWeight.semibold
338
+ it('Accessibility of \'Preview\' section if playback is initiated', { tags: 'a11y' }, () => {
339
+ cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
359
340
  });
360
- utilities.verifyCSS(audioResponsePage.compactPreviewPlayPlaybackButton().find('svg path'), {
361
- 'stroke': css.color.secondaryBtnActive
341
+
342
+ it('When the audio 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', () => {
343
+ audioResponsePage.steps.resetQuestionPreview();
344
+ audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
345
+ audioResponsePage.steps.startPlaybackCompactPreview();
346
+ audioResponsePage.steps.waitForPlaybackToBeginCompactPreview();
347
+ audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:05', '00:10');
348
+ audioResponsePage.steps.pauseAndVerifyProgressBarSliderPosition();
349
+ audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:05', '00:10');
350
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlayPlaybackButton(), 'visible');
351
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPausePlaybackButton(), 'notExist');
362
352
  });
363
- });
364
353
 
365
- it('Accessibility of \'Preview\' section if if playback is paused', { tags: 'a11y' }, () => {
366
- cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
367
- });
354
+ it('CSS of \'Preview\' section if playback is paused', { tags: 'css' }, () => {
355
+ utilities.verifyCSS(audioResponsePage.compactPreviewPlayPlaybackButton(), {
356
+ 'background-color': css.color.secondaryBtnBg,
357
+ 'color': css.color.secondaryBtn,
358
+ 'font-size': css.fontSize.default,
359
+ 'font-weight': css.fontWeight.semibold
360
+ });
361
+ utilities.verifyCSS(audioResponsePage.compactPreviewPlayPlaybackButton().find('svg path'), {
362
+ 'stroke': css.color.secondaryBtnActive
363
+ });
364
+ });
368
365
 
369
- it('When audio player is in paused state and user clicks on \'Play\' button, then playback should get resumed and \'Play\' button should get replaced with \'Pause\' button.', () => {
370
- audioResponsePage.steps.startPlaybackCompactPreview();
371
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPausePlaybackButton(), 'visible');
372
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlayPlaybackButton(), 'notExist');
373
- });
366
+ it('Accessibility of \'Preview\' section if if playback is paused', { tags: 'a11y' }, () => {
367
+ cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
368
+ });
374
369
 
375
- it('When the user seeks the progress bar slider while the audio is playing, then the audio should continue to play from the position where the slider is seeked', () => {
376
- audioResponsePage.steps.seekProgressBarSliderToCenter();
377
- audioResponsePage.steps.addWaitToPlayAudio(1000);
378
- audioResponsePage.steps.verifyProgressBarSliderPosition(actualAudioSeekedInPercent);
379
- });
370
+ it('When audio player is in paused state and user clicks on \'Play\' button, then playback should get resumed and \'Play\' button should get replaced with \'Pause\' button.', () => {
371
+ audioResponsePage.steps.startPlaybackCompactPreview();
372
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPausePlaybackButton(), 'visible');
373
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlayPlaybackButton(), 'notExist');
374
+ });
380
375
 
381
- it('When the user seeks the progress bar slider while the audio is paused, then the audio playback should be in paused state and on playing the audio, then the audio should play from the position where the slider is seeked', () => {
382
- audioResponsePage.steps.pausePlaybackCompactPreview();
383
- audioResponsePage.steps.seekProgressBarSliderToCenter();
384
- audioResponsePage.steps.startPlaybackCompactPreview();
385
- audioResponsePage.steps.addWaitToPlayAudio(5000);
386
- audioResponsePage.steps.verifyProgressBarSliderPosition(actualAudioSeekedInPercent);
387
- });
376
+ it('When the user seeks the progress bar slider while the audio is playing, then the audio should continue to play from the position where the slider is seeked', () => {
377
+ audioResponsePage.steps.seekProgressBarSliderToCenter();
378
+ audioResponsePage.steps.addWaitToPlayAudio(1000);
379
+ audioResponsePage.steps.verifyProgressBarSliderPosition(actualAudioSeekedInPercent);
380
+ });
388
381
 
389
- it('When the audio playback is completed, the \'Pause\' button should get replaced with \'Play\' button', () => {
390
- audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:10', '00:10');
391
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlayPlaybackButton(), 'visible');
392
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPausePlaybackButton(), 'notExist');
393
- audioResponsePage.steps.verifyProgressBarSliderPosition(99);
394
- });
382
+ it('When the user seeks the progress bar slider while the audio is paused, then the audio playback should be in paused state and on playing the audio, then the audio should play from the position where the slider is seeked', () => {
383
+ audioResponsePage.steps.pausePlaybackCompactPreview();
384
+ audioResponsePage.steps.seekProgressBarSliderToCenter();
385
+ audioResponsePage.steps.startPlaybackCompactPreview();
386
+ audioResponsePage.steps.addWaitToPlayAudio(5000);
387
+ audioResponsePage.steps.verifyProgressBarSliderPosition(actualAudioSeekedInPercent);
388
+ });
395
389
 
396
- it('CSS of progress bar in hover state', { tags: 'css' }, () => {
397
- audioResponsePage.steps.hoverOnProgressBarSlider();
398
- utilities.verifyCSS(audioResponsePage.progressBarSlider().parents('span[class*="MuiSlider-thumb"]'), {
399
- 'box-shadow': `${css.color.progressBarSliderHoverBackground} 0px 0px 0px 8px`
390
+ it('When the audio playback is completed, the \'Pause\' button should get replaced with \'Play\' button', () => {
391
+ audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:10', '00:10');
392
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlayPlaybackButton(), 'visible');
393
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPausePlaybackButton(), 'notExist');
394
+ audioResponsePage.steps.verifyProgressBarSliderPosition(99);
400
395
  });
401
- });
402
- });
403
396
 
404
- describe('Playback player : Volume control', () => {
405
- abortEarlySetup();
406
- before(() => {
407
- audioResponsePage.steps.navigateToCreateQuestion('audio response');
408
- cy.barsPreLoaderWait();
409
- audioResponsePage.steps.selectAudioRecorderStyle('Compact');
410
- audioResponsePage.steps.switchToPreviewTab();
411
- audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
397
+ it('CSS of progress bar in hover state', { tags: 'css' }, () => {
398
+ audioResponsePage.steps.hoverOnProgressBarSlider();
399
+ utilities.verifyCSS(audioResponsePage.progressBarSlider().parents('span[class*="MuiSlider-thumb"]'), {
400
+ 'box-shadow': `${css.color.progressBarSliderHoverBackground} 0px 0px 0px 8px`
401
+ });
402
+ });
412
403
  });
413
404
 
414
- audioResponsePage.tests.verifyVolumeControlFunctionality();
415
- });
405
+ describe('Playback player : Volume control', () => {
406
+ abortEarlySetup();
407
+ before(() => {
408
+ audioResponsePage.steps.navigateToCreateQuestion('audio response');
409
+ cy.barsPreLoaderWait();
410
+ audioResponsePage.steps.selectAudioRecorderStyle('Compact');
411
+ audioResponsePage.steps.switchToPreviewTab();
412
+ audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
413
+ });
416
414
 
417
- describe('Playback player : Playback speed', () => {
418
- const playbackSpeedOptions = ['1', '1.25', '1.5', '2'];
419
- abortEarlySetup();
420
- before(() => {
421
- audioResponsePage.steps.navigateToCreateQuestion('audio response');
422
- cy.barsPreLoaderWait();
423
- audioResponsePage.steps.selectAudioRecorderStyle('Compact');
424
- audioResponsePage.steps.switchToPreviewTab();
425
- audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
415
+ audioResponsePage.tests.verifyVolumeControlFunctionality();
426
416
  });
427
417
 
428
- audioResponsePage.tests.verifyPlaybackSpeedContents();
429
-
430
- for (let index = 0; index < playbackSpeedOptions.length; index++) {
431
- it(`When the user selects playback speed option ${playbackSpeedOptions[index]}x, the audio playback speed should be changed accordingly`, () => {
432
- audioResponsePage.steps.resetQuestionPreview();
433
- audioResponsePage.steps.recordAndSaveAudioCompactPreview(12000);
434
- utilities.hoverOverElement(audioResponsePage.playbackSpeedButton());
435
- audioResponsePage.steps.selectPlaybackSpeed(`${playbackSpeedOptions[index]}x`);
436
- audioResponsePage.steps.startPlaybackCompactPreview();
437
- audioResponsePage.steps.waitForPlaybackToBeginCompactPreview();
438
- audioResponsePage.steps.addWaitToPlayAudio(4000);
439
- audioResponsePage.steps.pausePlaybackCompactPreview();
440
- audioResponsePage.steps.verifyPlaybackElapsedTime(1 + (4 * playbackSpeedOptions[index]), 'Compact');
418
+ describe('Playback player : Playback speed', () => {
419
+ const playbackSpeedOptions = ['1', '1.25', '1.5', '2'];
420
+ abortEarlySetup();
421
+ before(() => {
422
+ audioResponsePage.steps.navigateToCreateQuestion('audio response');
423
+ cy.barsPreLoaderWait();
424
+ audioResponsePage.steps.selectAudioRecorderStyle('Compact');
425
+ audioResponsePage.steps.switchToPreviewTab();
426
+ audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
441
427
  });
442
- };
443
- });
444
428
 
445
- describe('Playback player : Retake my audio response', () => {
446
- abortEarlySetup();
447
- before(() => {
448
- audioResponsePage.steps.navigateToCreateQuestion('audio response');
449
- cy.barsPreLoaderWait();
450
- audioResponsePage.steps.selectAudioRecorderStyle('Compact');
451
- audioResponsePage.steps.setMaximumRecorderLength(10);
452
- audioResponsePage.steps.switchToPreviewTab();
453
- audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
454
- });
429
+ audioResponsePage.tests.verifyPlaybackSpeedContents();
430
+
431
+ for (let index = 0; index < playbackSpeedOptions.length; index++) {
432
+ it(`When the user selects playback speed option ${playbackSpeedOptions[index]}x, the audio playback speed should be changed accordingly`, () => {
433
+ audioResponsePage.steps.resetQuestionPreview();
434
+ audioResponsePage.steps.recordAndSaveAudioCompactPreview(12000);
435
+ utilities.hoverOverElement(audioResponsePage.playbackSpeedButton());
436
+ audioResponsePage.steps.selectPlaybackSpeed(`${playbackSpeedOptions[index]}x`);
437
+ audioResponsePage.steps.startPlaybackCompactPreview();
438
+ audioResponsePage.steps.waitForPlaybackToBeginCompactPreview();
439
+ audioResponsePage.steps.addWaitToPlayAudio(4000);
440
+ audioResponsePage.steps.pausePlaybackCompactPreview();
441
+ audioResponsePage.steps.verifyPlaybackElapsedTime(1 + (4 * playbackSpeedOptions[index]), 'Compact');
442
+ });
443
+ };
444
+ });
445
+
446
+ describe('Playback player : Retake my audio response', () => {
447
+ abortEarlySetup();
448
+ before(() => {
449
+ audioResponsePage.steps.navigateToCreateQuestion('audio response');
450
+ cy.barsPreLoaderWait();
451
+ audioResponsePage.steps.selectAudioRecorderStyle('Compact');
452
+ audioResponsePage.steps.setMaximumRecorderLength(10);
453
+ audioResponsePage.steps.switchToPreviewTab();
454
+ audioResponsePage.steps.recordAndSaveAudioCompactPreview(10000);
455
+ });
455
456
 
456
- it('When the user clicks on \'Retake\' icon button, \'Retake\' popup should be displayed along with \'Are you sure you want to overwrite the existing audio recording?\' message', () => {
457
- audioResponsePage.steps.retakeRecordingCompactPreview();
458
- utilities.verifyInnerText(dialogBoxBase.dialogBoxTitle(), 'Retake');
459
- audioResponsePage.steps.verifyRetakePopupContents();
460
- });
457
+ it('When the user clicks on \'Retake\' icon button, \'Retake\' popup should be displayed along with \'Are you sure you want to overwrite the existing audio recording?\' message', () => {
458
+ audioResponsePage.steps.retakeRecordingCompactPreview();
459
+ utilities.verifyInnerText(dialogBoxBase.dialogBoxTitle(), 'Retake');
460
+ audioResponsePage.steps.verifyRetakePopupContents();
461
+ });
461
462
 
462
- audioResponsePage.tests.verifyRetakePopupCSSAndA11y();
463
+ audioResponsePage.tests.verifyRetakePopupCSSAndA11y();
463
464
 
464
- it('When the user clicks on \'Cancel\' button, \'Retake\' popup should close and previous state of playback player should persist', () => {
465
- audioResponsePage.steps.cancelRetake();
466
- utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
467
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRetakeButton(), 'visible');
468
- utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlaybackPlayButton(), 'visible');
469
- audioResponsePage.steps.verifyResponseIsRecordedHelpText();
470
- audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:00', '00:10');
471
- });
465
+ it('When the user clicks on \'Cancel\' button, \'Retake\' popup should close and previous state of playback player should persist', () => {
466
+ audioResponsePage.steps.cancelRetake();
467
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
468
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewRetakeButton(), 'visible');
469
+ utilities.verifyElementVisibilityState(audioResponsePage.compactPreviewPlaybackPlayButton(), 'visible');
470
+ audioResponsePage.steps.verifyResponseIsRecordedHelpText();
471
+ audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:00', '00:10');
472
+ });
472
473
 
473
- it('When the user clicks on Confirm button of the retake popup, the previous recording should get deleted and a new recording should begin', () => {
474
- audioResponsePage.steps.retakeRecordingCompactPreview();
475
- audioResponsePage.steps.confirmRetake();
476
- utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
477
- utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingHelpText(), 'Recording...');
478
- audioResponsePage.steps.verifyResponseIsRecordedHelpText();
479
- audioResponsePage.steps.verifyPlaybackTimeCompactPreview('00:00', '00:10');
474
+ it('When the user clicks on Confirm button of the retake popup, the previous recording should get deleted and a new recording should begin', () => {
475
+ audioResponsePage.steps.retakeRecordingCompactPreview();
476
+ audioResponsePage.steps.confirmRetake();
477
+ audioResponsePage.steps.verifyRecordingTimeCompactPreview('00:02', '15:00');
478
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
479
+ utilities.verifyInnerText(audioResponsePage.compactPreviewRecordingStatusText(), 'Recording...');
480
+ });
480
481
  });
481
- });
482
+ };
482
483
  });
@@ -78,6 +78,7 @@ describe('Create Item page - Audio response: Question instructions, Audio record
78
78
  });
79
79
 
80
80
  it('When the user selects "Compact" option in the Audio recorder style toggle buttons section, then "Timer", "Progress indicator", "Audio wave" and "Volume meter" options should be displayed and be selected by default in "Audio indicators" section', () => {
81
+ audioResponsePage.steps.selectAudioRecorderStyle('Compact');
81
82
  audioResponsePage.steps.verifyAudioIndicatorsTimeButtonSelectedState();
82
83
  audioResponsePage.steps.verifyAudioIndicatorsProgressIndicatorButtonSelectedState();
83
84
  audioResponsePage.steps.verifyAudioIndicatorsAudioWaveButtonSelectedState();
@@ -193,7 +194,7 @@ describe('Create Item page - Audio response: Question instructions, Audio record
193
194
 
194
195
  it('When the user updates the \'Stop recording if silence is detected after\' value the validation text should disappear. User should be able to add only numeric values and should not able to add decimal points', () => {
195
196
  audioResponsePage.steps.setStopRecordingIfSilenceIsDetectedAfter('150');
196
- utilities.verifyElementVisibilityState(audioResponsePage.errorMessage(), 'notExist');
197
+ utilities.verifyElementVisibilityState(audioResponsePage.errorMessage(), 'hidden');
197
198
  audioResponsePage.steps.setStopRecordingIfSilenceIsDetectedAfter('.10.0');
198
199
  audioResponsePage.steps.verifyStopRecordingIfSilenceIsDetectedInputFieldValue('100');
199
200
  audioResponsePage.steps.setStopRecordingIfSilenceIsDetectedAfter('!@#abcde236');