itemengine-cypress-automation 1.0.119 → 1.0.121
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +13 -1
- package/cypress/e2e/ILC/AudioResponseNew/gradingViewAndCorrectAnswerViewContents.smoke.js +2 -0
- package/cypress/e2e/ILC/AudioResponseNew/previewContentsForAllViews.smoke.js +1 -0
- package/cypress/e2e/ILC/AudioResponseNew/standardRecorderStyle.smoke.js +2 -0
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +1 -1
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +2 -2
- package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/studentViewSettings.js +1 -4
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/Scoring/allOrNothingForAllViews.smoke.js +273 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/checkAnswerFunctionalityForAllViews.smoke.js +116 -0
- package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +136 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/allOrNothingForAllView.smoke.js +224 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/checkAnswerFunctionalityForAllViews.smoke.js +120 -0
- package/cypress/e2e/ILC/FillInTheGapsDropdownNew/previewContentsForAllViews.smoke.js +158 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/backgroundImageAndCanvasProperties.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -4
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownAndDropdownMenuSection.js +246 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/dropdownOptionsSection.js +332 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/editTabBasicSection.js +409 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/headerSection.js +80 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/studentViewSettings.js +213 -0
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/HeaderSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsBasic.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsBasic.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/allOrNothingForAllViews.smoke.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +68 -68
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/editTabScoringSection.js +6 -6
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/previewContentsForAllViews.smoke.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/setLimitSection.js +3 -289
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specialCharactersSection.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/specifyCorrectAnswerSection.js +2 -2
- package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +2 -23
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +191 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +190 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +284 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/allOrNothingPenaltyScoring.js +52 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/manuallyAndNonScored.js +113 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +217 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsBasic.js +234 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +217 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsGreaterThanAlternativePoints.js +217 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsBasic.js +136 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +197 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +169 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternativePoints.js +197 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/allOrNothingForAllViews.smoke.js +219 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/checkAnswerFunctionalityForAllViews.smoke.js +115 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/editTabBasicSection.js +142 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/previewContentsForAllViews.smoke.js +152 -0
- package/cypress/e2e/ILC/FillInTheGapsTextNew/setLimitSection.js +39 -0
- package/cypress/e2e/ILC/MultipleSelection/studentViewSettings.js +2 -12
- package/cypress/e2e/ILC/ShortTextResponseNew/conditionalCheckboxes.js +497 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/editTabBasicSections.js +503 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/responseAnswersAndAcceptedStudentInput.js +233 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/specialCharactersSection.js +291 -0
- package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +332 -0
- package/cypress/e2e/ILC/SingleSelection/studentViewSettings.js +2 -12
- package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +9 -8
- package/cypress/e2e/ILC/TextEntryMath/editTabScoringSection.js +4 -4
- package/cypress/e2e/ILC/TextEntryMath/minimumScoringPenaltyPointsAndRoundingDropdown.js +8 -2
- package/cypress/e2e/ILC/TextEntryMath/specifyCorrectAnswerSection.js +5 -2
- package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +334 -0
- package/cypress/e2e/ILC/TextEntryMathWithImage/backgroundImageAndCanvasProperties.js +419 -0
- package/cypress/e2e/ILC/TextEntryMathWithImage/checkAnswerFunctionalityForAllViews.smoke.js +166 -0
- package/cypress/e2e/ILC/TextEntryMathWithImage/previewTabContentsForAllViews.smoke.js +166 -0
- package/cypress/e2e/ILC/UploadResponse/editTabScoringSection.js +51 -0
- package/cypress/e2e/ILC/UploadResponse/gradingViewAndCorrectAnswerViewContents.smoke.js +99 -0
- package/cypress/e2e/ILC/UploadResponse/manuallyAndNonScoredScoring.js +71 -0
- package/cypress/e2e/ILC/UploadResponse/previewContentsForAllViews.smoke.js +155 -0
- package/cypress/e2e/ILC/UploadResponse/uploadResponseHeaderSection.js +66 -0
- package/cypress/e2e/migration/migration.js +6 -5
- package/cypress/e2e/migration/migration2.js +4 -3
- package/cypress/e2e/migration/migration3.js +4 -3
- package/cypress/e2e/migration/migration4.js +4 -3
- package/cypress/e2e/migration/migration5.js +4 -3
- package/cypress/fixtures/theme/ilc.json +3 -1
- package/cypress/pages/audioResponsePage.js +2 -1
- package/cypress/pages/components/additionalSettingsPanel.js +27 -0
- package/cypress/pages/components/autoScoredPreviewBase.js +1 -1
- package/cypress/pages/components/autoScoredScoringSection.js +1 -1
- package/cypress/pages/components/autoScoredScoringSectionMultipleResponsesType.js +1 -1
- package/cypress/pages/components/autoScoredSetCorrectAnswerSection.js +1 -1
- package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +2 -2
- package/cypress/pages/components/autoScoredStudentViewSettings.js +8 -1
- package/cypress/pages/components/backgroundImageUploadComponent.js +5 -5
- package/cypress/pages/components/createQuestionBasePage.js +8 -2
- package/cypress/pages/components/essayResponseCommonComponents.js +6 -0
- package/cypress/pages/components/fillInTheGapsCommonComponents.js +13 -0
- package/cypress/pages/components/fillInTheGapsDragAndDropCommonComponents.js +40 -0
- package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +422 -314
- package/cypress/pages/components/fillInTheGapsTextCommonComponent.js +438 -710
- package/cypress/pages/components/{figOverImageCanvasComponent.js → imageCanvasComponent.js} +274 -272
- package/cypress/pages/components/index.js +3 -3
- package/cypress/pages/components/maximumRecorderLengthComponent.js +55 -11
- package/cypress/pages/components/previewScoringAndShowCorrectAnswerComponent.js +1 -1
- package/cypress/pages/components/questionInputFieldComponent.js +49 -23
- package/cypress/pages/components/scoringSectionBase.js +1 -1
- package/cypress/pages/createItemPage.js +67 -2
- package/cypress/pages/fillInTheGapsDragAndDropPage.js +172 -711
- package/cypress/pages/fillInTheGapsDropdownPage.js +75 -72
- package/cypress/pages/fillInTheGapsOverImageDragAndDropPage.js +4 -4
- package/cypress/pages/fillInTheGapsOverImageDropdownPage.js +109 -273
- package/cypress/pages/fillInTheGapsOverImageTextPage.js +49 -291
- package/cypress/pages/fillInTheGapsTextPage.js +52 -199
- package/cypress/pages/index.js +5 -5
- package/cypress/pages/multipleSelectionPage.js +1 -0
- package/cypress/pages/shortTextResponsePage.js +575 -33
- package/cypress/pages/singleSelectionGridPage.js +1 -2
- package/cypress/pages/singleSelectionPage.js +5 -6
- package/cypress/pages/textEntryMathPage.js +46 -22
- package/cypress/pages/textEntryMathWithImagePage.js +212 -0
- package/cypress/pages/uploadResponsePage.js +74 -21
- package/cypress/support/migrationHelpers/extractLrnQuestionData.js +73 -2
- package/cypress/support/migrationHelpers/lrnQestionTypesENUM.js +1 -0
- package/cypress/support/migrationHelpers/verifyIeQuestionData.js +49 -2
- package/package.json +1 -1
- package/cypress/e2e/ILC/AudioResponseNew/minimalRecorderStyle.js +0 -482
- package/cypress/e2e/ILC/EssayResponse/essayResponseEquationEditor.smoke.js +0 -412
- package/cypress/pages/components/figOverImageCommonComponent.js +0 -1113
- package/cypress/pages/dragAndDropIntoCategoriesAllOrNothingScoring.js +0 -1155
- package/cypress/pages/dragAndDropIntoCategoriesCellsScoring.js +0 -1561
- package/cypress/pages/dragAndDropIntoCategoriesResponseScoring.js +0 -1396
- package/cypress/pages/fillInTheGapsScoring.js +0 -5872
- package/cypress/pages/fillInTheGapsSetCorrectAnswerSection.js +0 -260
@@ -1,482 +0,0 @@
|
|
1
|
-
import { dialogBoxBase } from "../../../pages";
|
2
|
-
import { audioResponsePage } from "../../../pages/audioResponsePage";
|
3
|
-
import abortEarlySetup from "../../../support/helpers/abortEarly";
|
4
|
-
import utilities from "../../../support/helpers/utilities";
|
5
|
-
const css = Cypress.env('css');
|
6
|
-
|
7
|
-
describe('Preview of Audio response for minimal audio recorder style', () => {
|
8
|
-
before(() => {
|
9
|
-
cy.loginAs('admin');
|
10
|
-
});
|
11
|
-
|
12
|
-
describe('Preview of Minimal audio recorder style', () => {
|
13
|
-
abortEarlySetup();
|
14
|
-
before(() => {
|
15
|
-
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
16
|
-
cy.barsPreLoaderWait();
|
17
|
-
audioResponsePage.steps.selectAudioRecorderStyle('Minimal');
|
18
|
-
audioResponsePage.steps.switchToPreviewTab();
|
19
|
-
});
|
20
|
-
|
21
|
-
it('If user selects \'Minimal\' 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
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewRecordButton(), 'visible');
|
23
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecordButton(), 'Record');
|
24
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecorderHelpText(), 'Click the button to start recording...');
|
25
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewRecorderHelpText(), 'visible');
|
26
|
-
});
|
27
|
-
|
28
|
-
it('CSS of Preview section', { tags: 'css' }, () => {
|
29
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRecordButton(), {
|
30
|
-
'background-color': css.color.recordingIcon,
|
31
|
-
'color': css.color.whiteText,
|
32
|
-
'font-size': css.fontSize.default,
|
33
|
-
'font-weight': css.fontWeight.semibold
|
34
|
-
});
|
35
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRecordButton().find('svg'), {
|
36
|
-
'fill': css.color.defaultBackground
|
37
|
-
});
|
38
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRecorderHelpText(), {
|
39
|
-
'color': css.color.text,
|
40
|
-
'font-size': css.fontSize.normal,
|
41
|
-
'font-weight': css.fontWeight.regular
|
42
|
-
});
|
43
|
-
});
|
44
|
-
|
45
|
-
it('Accessibility of Preview section', { tags: 'a11y' }, () => {
|
46
|
-
cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
|
47
|
-
});
|
48
|
-
|
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
|
-
audioResponsePage.steps.startRecordingMinimalPreview();
|
51
|
-
utilities.verifyElementVisibilityState(audioResponsePage.startRecordingCountDown(), 'visible');
|
52
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecordingHelpText(), 'Preparing to record');
|
53
|
-
utilities.verifyElementVisibilityState(audioResponsePage.recordingMicIcon(), 'visible');
|
54
|
-
utilities.verifyElementVisibilityState(audioResponsePage.micGlowAnimation(), 'visible');
|
55
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewStopRecordingButton(), 'visible');
|
56
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPauseRecordingButton(), 'visible');
|
57
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewRecordButton(), 'notExist');
|
58
|
-
audioResponsePage.steps.waitForRecordingToStartMinimalPreview();
|
59
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecordingHelpText(), 'Recording...')
|
60
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewVolumeMeter(), 'visible');
|
61
|
-
cy.log('Waiting 2 seconds to check updated timer');
|
62
|
-
audioResponsePage.steps.addWaitToRecordAudio(2000);
|
63
|
-
audioResponsePage.steps.verifyRecordingTimeMinimalPreview('00:04', '15:00');
|
64
|
-
});
|
65
|
-
|
66
|
-
it('CSS of \'Preview\' section once recording starts', { tags: 'css' }, () => {
|
67
|
-
utilities.verifyCSS(audioResponsePage.micGlowAnimation(), {
|
68
|
-
'background-color': css.color.micGlowAnimation
|
69
|
-
});
|
70
|
-
utilities.verifyCSS(audioResponsePage.recordingMicIcon(), {
|
71
|
-
'fill': css.color.microphoneIcon
|
72
|
-
});
|
73
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRecordingTimer(), {
|
74
|
-
'color': css.color.liText,
|
75
|
-
'font-size': css.fontSize.heading,
|
76
|
-
'font-weight': css.fontWeight.bold
|
77
|
-
});
|
78
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRecordingHelpText(), {
|
79
|
-
'color': css.color.text,
|
80
|
-
'font-size': css.fontSize.normal,
|
81
|
-
'font-weight': css.fontWeight.regular
|
82
|
-
});
|
83
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewPauseRecordingButton(), {
|
84
|
-
'background-color': css.color.secondaryBtnBg,
|
85
|
-
'color': css.color.secondaryBtn,
|
86
|
-
'font-size': css.fontSize.default,
|
87
|
-
'font-weight': css.fontWeight.semibold
|
88
|
-
});
|
89
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewPauseRecordingButton().find('[data-name="Icon material-pause-circle-filled"]'), {
|
90
|
-
'fill': css.color.secondaryBtn
|
91
|
-
});
|
92
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewStopRecordingButton(), {
|
93
|
-
'background-color': css.color.primaryBtnBg,
|
94
|
-
'color': css.color.primaryBtn,
|
95
|
-
'font-size': css.fontSize.default,
|
96
|
-
'font-weight': css.fontWeight.semibold
|
97
|
-
});
|
98
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewStopRecordingButton().find('.audio-control-icon rect'), {
|
99
|
-
'color': css.color.defaultBackground
|
100
|
-
});
|
101
|
-
});
|
102
|
-
|
103
|
-
it('Accessibility of Preview section once recording starts', { tags: 'a11y' }, () => {
|
104
|
-
cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
|
105
|
-
});
|
106
|
-
|
107
|
-
it('When the recording is in-progress and user clicks on \'Pause\' button, recording should pause and the help text should update to \'Recording paused\'. Volume meter should drop to \'0dB\'. Also the timer should display the amount of audio recorded in relation to the total length of the recording. Format of timer should be \'(min:secs / min:sec)\'. Pause recording button should get replaced with Resume recording button. Stop button should be displayed in preview', () => {
|
108
|
-
audioResponsePage.steps.resetQuestionPreview();
|
109
|
-
audioResponsePage.steps.startRecordingMinimalPreview();
|
110
|
-
audioResponsePage.steps.waitForRecordingToStartMinimalPreview();
|
111
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecordingHelpText(), 'Recording...')
|
112
|
-
audioResponsePage.steps.addWaitToRecordAudio(4000);
|
113
|
-
audioResponsePage.steps.pauseRecordingMinimalPreview();
|
114
|
-
audioResponsePage.steps.verifyRecordingTimeMinimalPreview('00:05', '15:00');
|
115
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecordingHelpText(), 'Recording paused');
|
116
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewVolumeMeter(), '0dB');
|
117
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewResumeRecordingButton(), 'visible');
|
118
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewStopRecordingButton(), 'visible');
|
119
|
-
});
|
120
|
-
|
121
|
-
it('CSS of \'Preview\' section if recording is paused', { tags: 'css' }, () => {
|
122
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewResumeRecordingButton(), {
|
123
|
-
'background-color': css.color.recordingIcon,
|
124
|
-
'color': css.color.whiteText,
|
125
|
-
'font-size': css.fontSize.default,
|
126
|
-
'font-weight': css.fontWeight.semibold
|
127
|
-
});
|
128
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewResumeRecordingButton().find('svg'), {
|
129
|
-
'fill': css.color.defaultBackground
|
130
|
-
});
|
131
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRecordingHelpText(), {
|
132
|
-
'color': css.color.text,
|
133
|
-
'font-size': css.fontSize.normal,
|
134
|
-
'font-weight': css.fontWeight.regular
|
135
|
-
});
|
136
|
-
});
|
137
|
-
|
138
|
-
it('Accessibility of Preview section if recording is paused', { tags: 'a11y' }, () => {
|
139
|
-
cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
|
140
|
-
});
|
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...". The volume meter should also detect the sound levels during recording. User should be able to view the duration of their recorded speech in minutes, displayed as \'(min:secs / min:sec)\'. Stop button should be displayed in preview tab.', () => {
|
143
|
-
audioResponsePage.steps.resumeRecordingMinimalPreview();
|
144
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewResumeRecordingButton(), 'notExist');
|
145
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPauseRecordingButton(), 'visible');
|
146
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecordingHelpText(), 'Recording...')
|
147
|
-
audioResponsePage.steps.addWaitToRecordAudio(1000);
|
148
|
-
audioResponsePage.steps.verifyRecordingLengthAfterResumingMinimalPreview();
|
149
|
-
});
|
150
|
-
|
151
|
-
it('When the recording is inprogress and user clicks on \'Stop\' button, recording should stop and \'Your response has been recorded\' help text message should be displayed in preview. Recorded audio wave form, progress bar, volume control, playback speed buttons should be displayed. Playback time of the recorded audio should be displayed as \'(min:secs / min:sec)\'. Stop button should get replaced with Retake button and Play button should be displayed.', () => {
|
152
|
-
cy.log('Pre-step: Resetting question preview and start recording again')
|
153
|
-
audioResponsePage.steps.resetQuestionPreview();
|
154
|
-
audioResponsePage.steps.startRecordingMinimalPreview();
|
155
|
-
audioResponsePage.steps.waitForRecordingToStartMinimalPreview();
|
156
|
-
audioResponsePage.steps.addWaitToRecordAudio(3000);
|
157
|
-
audioResponsePage.steps.stopRecordingMinimalPreview();
|
158
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:00', '00:04');
|
159
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewStopRecordingButton(), 'notExist');
|
160
|
-
utilities.verifyInnerText(audioResponsePage.recordedResponseHelpText(), 'Your response has been recorded.');
|
161
|
-
utilities.verifyElementVisibilityState(audioResponsePage.playbackWaveform(), 'visible');
|
162
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewRetakeButton(), 'visible');
|
163
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlaybackPlayButton(), 'visible');
|
164
|
-
utilities.verifyElementVisibilityState(audioResponsePage.playbackProgressBar(), 'visible');
|
165
|
-
utilities.verifyElementVisibilityState(audioResponsePage.volumeControlButton(), 'visible');
|
166
|
-
utilities.verifyElementVisibilityState(audioResponsePage.playbackSpeedButton(), 'visible');
|
167
|
-
});
|
168
|
-
|
169
|
-
it('CSS of \'Preview\' section if recording is stopped', { tags: 'css' }, () => {
|
170
|
-
audioResponsePage.steps.resetQuestionPreview();
|
171
|
-
audioResponsePage.steps.startRecordingMinimalPreview();
|
172
|
-
audioResponsePage.steps.waitForRecordingToStartMinimalPreview();
|
173
|
-
audioResponsePage.steps.addWaitToRecordAudio(1000);
|
174
|
-
cy.log('Waiting for 1 second pausing the recording and then clicking Stop')
|
175
|
-
audioResponsePage.steps.stopRecordingMinimalPreview();
|
176
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRecordingHelpText(), {
|
177
|
-
'color': css.color.text,
|
178
|
-
'font-size': css.fontSize.normal,
|
179
|
-
'font-weight': css.fontWeight.regular
|
180
|
-
});
|
181
|
-
});
|
182
|
-
|
183
|
-
it('Accessibility of Preview section if recording is stopped', { tags: 'a11y' }, () => {
|
184
|
-
cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
|
185
|
-
});
|
186
|
-
|
187
|
-
it('When recording is paused and the user clicks on \'Stop\' button, recording should stop and \'Your response has been recorded\' help text message should be displayed in preview. Stop button should get replaced with Playback button and Playback button should be enabled. Overlay should not be displayed in player', () => {
|
188
|
-
cy.log('Pre-step: Resetting question preview and start recording again')
|
189
|
-
audioResponsePage.steps.resetQuestionPreview();
|
190
|
-
audioResponsePage.steps.startRecordingMinimalPreview();
|
191
|
-
audioResponsePage.steps.waitForRecordingToStartMinimalPreview();
|
192
|
-
audioResponsePage.steps.addWaitToRecordAudio(1000);
|
193
|
-
cy.log('Waiting for 1 second pausing the recording and then clicking Stop')
|
194
|
-
audioResponsePage.steps.pauseRecordingMinimalPreview();
|
195
|
-
audioResponsePage.steps.stopRecordingMinimalPreview();
|
196
|
-
utilities.verifyInnerText(audioResponsePage.recordedResponseHelpText(), 'Your response has been recorded.');
|
197
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewRetakeButton(), 'visible');
|
198
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlaybackPlayButton(), 'visible');
|
199
|
-
});
|
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', () => {
|
202
|
-
cy.log('Pre-step: Switch to edit tab and set maximum recording length to 10 secs')
|
203
|
-
audioResponsePage.steps.switchToEditTab();
|
204
|
-
audioResponsePage.steps.setMaximumRecorderLength(10);
|
205
|
-
audioResponsePage.steps.switchToPreviewTab();
|
206
|
-
audioResponsePage.steps.startRecordingMinimalPreview();
|
207
|
-
audioResponsePage.steps.waitForRecordingToStartMinimalPreview();
|
208
|
-
cy.log('Starting a recording and letting it record until Maximum recording length is reached');
|
209
|
-
utilities.verifyInnerText(audioResponsePage.recordedResponseHelpText(), 'Your response has been recorded.');
|
210
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:00', '00:10');
|
211
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewStopRecordingButton(), 'notExist');
|
212
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewRetakeButton(), 'visible');
|
213
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlaybackPlayButton(), 'visible');
|
214
|
-
});
|
215
|
-
|
216
|
-
it('When the user updates maximum recorder length the recording should stop at the updated recorder length', () => {
|
217
|
-
cy.log('Pre-step : Switching to edit tab, updating maximum recorder length and switching back to preview tab to reset the recording');
|
218
|
-
audioResponsePage.steps.switchToEditTab();
|
219
|
-
audioResponsePage.steps.setMaximumRecorderLength(5);
|
220
|
-
audioResponsePage.steps.switchToPreviewTab();
|
221
|
-
audioResponsePage.steps.waitForRecordingToStartMinimalPreview();
|
222
|
-
cy.log('Starting a recording and letting it record until Maximum recording length is reached');
|
223
|
-
utilities.verifyInnerText(audioResponsePage.recordedResponseHelpText(), 'Your response has been recorded.');
|
224
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:00', '00:05')
|
225
|
-
cy.log('Switching to Edit tab to prevent browser level alert window from appearing');
|
226
|
-
audioResponsePage.steps.switchToEditTab();
|
227
|
-
});
|
228
|
-
});
|
229
|
-
|
230
|
-
describe('Playback player : Default state', () => {
|
231
|
-
abortEarlySetup();
|
232
|
-
before(() => {
|
233
|
-
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
234
|
-
cy.barsPreLoaderWait();
|
235
|
-
audioResponsePage.steps.selectAudioRecorderStyle('Minimal');
|
236
|
-
audioResponsePage.steps.switchToPreviewTab();
|
237
|
-
audioResponsePage.steps.recordAndSaveAudioMinimalPreview(5000);
|
238
|
-
});
|
239
|
-
|
240
|
-
it('A playback player with audio wave form, Volume meter, Retake recording and Play buttons, Volume control and playback speed buttons, Progress bar and time in (mm:ss / mm:ss) format should be displayed', () => {
|
241
|
-
utilities.verifyElementVisibilityState(audioResponsePage.playbackWaveform(), 'visible');
|
242
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewRetakeButton(), 'visible');
|
243
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlaybackPlayButton(), 'visible');
|
244
|
-
utilities.verifyElementVisibilityState(audioResponsePage.volumeControlButton(), 'visible');
|
245
|
-
utilities.verifyElementVisibilityState(audioResponsePage.playbackSpeedButton(), 'visible');
|
246
|
-
utilities.verifyElementVisibilityState(audioResponsePage.playbackProgressBar(), 'visible');
|
247
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlaybackTime(), 'visible');
|
248
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:00', '00:05');
|
249
|
-
});
|
250
|
-
|
251
|
-
it('The progress bar should have a slider so that user can click/drag to seek the audio. When the user hovers on the waveform, a black cursor should be display on the waveform', () => {
|
252
|
-
utilities.verifyElementVisibilityState(audioResponsePage.progressBarSlider(), 'visible');
|
253
|
-
utilities.hoverOverElement(audioResponsePage.playbackWaveform());
|
254
|
-
utilities.verifyElementVisibilityState(audioResponsePage.waveformCursor(), 'visible');
|
255
|
-
utilities.hoverAwayFromElement();
|
256
|
-
utilities.verifyElementVisibilityState(audioResponsePage.waveformCursor(), 'hidden');
|
257
|
-
});
|
258
|
-
|
259
|
-
it('CSS of standard recorder style playback player', { tags: 'css' }, () => {
|
260
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRetakeButton(), {
|
261
|
-
'background-color': css.color.recordingIcon,
|
262
|
-
'color': css.color.whiteText,
|
263
|
-
'font-size': css.fontSize.default,
|
264
|
-
'font-weight': css.fontWeight.semibold
|
265
|
-
});
|
266
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRetakeButton().find('svg path'), {
|
267
|
-
'fill': css.color.defaultBackground
|
268
|
-
});
|
269
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewPlaybackTime(), {
|
270
|
-
'color': css.color.liText,
|
271
|
-
'font-size': css.fontSize.heading,
|
272
|
-
'font-weight': css.fontWeight.bold
|
273
|
-
});
|
274
|
-
utilities.verifyCSS(audioResponsePage.playbackProgressBar().find('.MuiSlider-thumbSizeMedium'), {
|
275
|
-
'background-color': css.color.activeButtons
|
276
|
-
});
|
277
|
-
utilities.verifyCSS(audioResponsePage.playbackProgressBar().find('.MuiSlider-rail'), {
|
278
|
-
'border': `1px solid ${css.color.activeButtons}`
|
279
|
-
});
|
280
|
-
utilities.verifyCSS(audioResponsePage.volumeControlButton().find('[data-name="minimal-volume-icon"]'), {
|
281
|
-
'fill': css.color.activeButtons
|
282
|
-
});
|
283
|
-
utilities.verifyCSS(audioResponsePage.playbackSpeedButton().find('[id="playback-speed"] path'), {
|
284
|
-
'fill': css.color.activeButtons
|
285
|
-
});
|
286
|
-
});
|
287
|
-
|
288
|
-
it('Accessibility of playback player - default state', { tags: 'a11y' }, () => {
|
289
|
-
cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
|
290
|
-
});
|
291
|
-
});
|
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('Minimal');
|
301
|
-
audioResponsePage.steps.switchToPreviewTab();
|
302
|
-
audioResponsePage.steps.recordAndSaveAudioMinimalPreview(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.startPlaybackMinimalPreview();
|
307
|
-
audioResponsePage.steps.waitForPlaybackToBeginMinimalPreview();
|
308
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:03', '00:10');
|
309
|
-
});
|
310
|
-
|
311
|
-
it('CSS of \'Preview\' section if playback is initiated', { tags: 'css' }, () => {
|
312
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewPlaybackTime(), {
|
313
|
-
'color': css.color.liText,
|
314
|
-
'font-size': css.fontSize.heading,
|
315
|
-
'font-weight': css.fontWeight.bold
|
316
|
-
});
|
317
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewPausePlaybackButton(), {
|
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.minimalPreviewPausePlaybackButton().find('svg path'), {
|
324
|
-
'fill': css.color.secondaryBtn
|
325
|
-
});
|
326
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewRetakeButton(), {
|
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.minimalPreviewRetakeButton().find('svg path'), {
|
333
|
-
'fill': css.color.defaultBackground
|
334
|
-
});
|
335
|
-
});
|
336
|
-
|
337
|
-
it('Accessibility of \'Preview\' section if playback is initiated', { tags: 'a11y' }, () => {
|
338
|
-
cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
|
339
|
-
});
|
340
|
-
|
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.recordAndSaveAudioMinimalPreview(10000);
|
344
|
-
audioResponsePage.steps.startPlaybackMinimalPreview();
|
345
|
-
audioResponsePage.steps.waitForPlaybackToBeginMinimalPreview();
|
346
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:05', '00:10');
|
347
|
-
audioResponsePage.steps.pauseAndVerifyProgressBarSliderPosition();
|
348
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:05', '00:10');
|
349
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlayPlaybackButton(), 'visible');
|
350
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPausePlaybackButton(), 'notExist');
|
351
|
-
});
|
352
|
-
|
353
|
-
it('CSS of \'Preview\' section if playback is paused', { tags: 'css' }, () => {
|
354
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewPlayPlaybackButton(), {
|
355
|
-
'background-color': css.color.secondaryBtnBg,
|
356
|
-
'color': css.color.secondaryBtn,
|
357
|
-
'font-size': css.fontSize.default,
|
358
|
-
'font-weight': css.fontWeight.semibold
|
359
|
-
});
|
360
|
-
utilities.verifyCSS(audioResponsePage.minimalPreviewPlayPlaybackButton().find('svg path'), {
|
361
|
-
'stroke': css.color.secondaryBtnActive
|
362
|
-
});
|
363
|
-
});
|
364
|
-
|
365
|
-
it('Accessibility of \'Preview\' section if if playback is paused', { tags: 'a11y' }, () => {
|
366
|
-
cy.checkAccessibility(audioResponsePage.previewTabQuestionWrapper());
|
367
|
-
});
|
368
|
-
|
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.startPlaybackMinimalPreview();
|
371
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPausePlaybackButton(), 'visible');
|
372
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlayPlaybackButton(), 'notExist');
|
373
|
-
});
|
374
|
-
|
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
|
-
});
|
380
|
-
|
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.pausePlaybackMinimalPreview();
|
383
|
-
audioResponsePage.steps.seekProgressBarSliderToCenter();
|
384
|
-
audioResponsePage.steps.startPlaybackMinimalPreview();
|
385
|
-
audioResponsePage.steps.addWaitToPlayAudio(5000);
|
386
|
-
audioResponsePage.steps.verifyProgressBarSliderPosition(actualAudioSeekedInPercent);
|
387
|
-
});
|
388
|
-
|
389
|
-
it('When the audio playback is completed, the \'Pause\' button should get replaced with \'Play\' button', () => {
|
390
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:10', '00:10');
|
391
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlayPlaybackButton(), 'visible');
|
392
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPausePlaybackButton(), 'notExist');
|
393
|
-
audioResponsePage.steps.verifyProgressBarSliderPosition(99);
|
394
|
-
});
|
395
|
-
|
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`
|
400
|
-
});
|
401
|
-
});
|
402
|
-
});
|
403
|
-
|
404
|
-
describe('Playback player : Volume control', () => {
|
405
|
-
abortEarlySetup();
|
406
|
-
before(() => {
|
407
|
-
audioResponsePage.steps.navigateToCreateQuestion('audio response');
|
408
|
-
cy.barsPreLoaderWait();
|
409
|
-
audioResponsePage.steps.selectAudioRecorderStyle('Minimal');
|
410
|
-
audioResponsePage.steps.switchToPreviewTab();
|
411
|
-
audioResponsePage.steps.recordAndSaveAudioMinimalPreview(10000);
|
412
|
-
});
|
413
|
-
|
414
|
-
audioResponsePage.tests.verifyVolumeControlFunctionality();
|
415
|
-
});
|
416
|
-
|
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('Minimal');
|
424
|
-
audioResponsePage.steps.switchToPreviewTab();
|
425
|
-
audioResponsePage.steps.recordAndSaveAudioMinimalPreview(10000);
|
426
|
-
});
|
427
|
-
|
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.recordAndSaveAudioMinimalPreview(12000);
|
434
|
-
utilities.hoverOverElement(audioResponsePage.playbackSpeedButton());
|
435
|
-
audioResponsePage.steps.selectPlaybackSpeed(`${playbackSpeedOptions[index]}x`);
|
436
|
-
audioResponsePage.steps.startPlaybackMinimalPreview();
|
437
|
-
audioResponsePage.steps.waitForPlaybackToBeginMinimalPreview();
|
438
|
-
audioResponsePage.steps.addWaitToPlayAudio(4000);
|
439
|
-
audioResponsePage.steps.pausePlaybackMinimalPreview();
|
440
|
-
audioResponsePage.steps.verifyPlaybackElapsedTime(1 + (4 * playbackSpeedOptions[index]), 'Minimal');
|
441
|
-
});
|
442
|
-
};
|
443
|
-
});
|
444
|
-
|
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('Minimal');
|
451
|
-
audioResponsePage.steps.setMaximumRecorderLength(10);
|
452
|
-
audioResponsePage.steps.switchToPreviewTab();
|
453
|
-
audioResponsePage.steps.recordAndSaveAudioMinimalPreview(10000);
|
454
|
-
});
|
455
|
-
|
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.retakeRecordingMinimalPreview();
|
458
|
-
utilities.verifyInnerText(dialogBoxBase.dialogBoxTitle(), 'Retake');
|
459
|
-
audioResponsePage.steps.verifyRetakePopupContents();
|
460
|
-
});
|
461
|
-
|
462
|
-
audioResponsePage.tests.verifyRetakePopupCSSAndA11y();
|
463
|
-
|
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.minimalPreviewRetakeButton(), 'visible');
|
468
|
-
utilities.verifyElementVisibilityState(audioResponsePage.minimalPreviewPlaybackPlayButton(), 'visible');
|
469
|
-
utilities.verifyInnerText(audioResponsePage.recordedResponseHelpText(), 'Your response has been recorded.');
|
470
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:00', '00:10');
|
471
|
-
});
|
472
|
-
|
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.retakeRecordingMinimalPreview();
|
475
|
-
audioResponsePage.steps.confirmRetake();
|
476
|
-
utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
|
477
|
-
utilities.verifyInnerText(audioResponsePage.minimalPreviewRecordingHelpText(), 'Recording...');
|
478
|
-
utilities.verifyInnerText(audioResponsePage.recordedResponseHelpText(), 'Your response has been recorded.');
|
479
|
-
audioResponsePage.steps.verifyPlaybackTimeMinimalPreview('00:00', '00:10');
|
480
|
-
});
|
481
|
-
});
|
482
|
-
});
|