integration/js/steps/AuthenticateUserStep.js (83 lines of code) (raw):

const {KiteTestError, Status} = require('kite-common'); const AppTestStep = require('../utils/AppTestStep'); class AuthenticateUserStep extends AppTestStep { constructor( kiteBaseTest, sessionInfo, attendee_id, useSimulcastFlag = false, useWebAudioFlag = false, enableEventReporting = true, region = '', useStereoMusicAudioProfile = false, ) { super(kiteBaseTest, sessionInfo); this.attendee_id = attendee_id; this.useSimulcastFlag = useSimulcastFlag; this.useWebAudioFlag = useWebAudioFlag; this.enableEventReporting = enableEventReporting; this.region = region; this.useStereoMusicAudioProfile = useStereoMusicAudioProfile; } static async executeStep( KiteBaseTest, sessionInfo, attendee_id, useSimulcastFlag = false, useWebAudioFlag = false, enableEventReporting = true, region = '', useStereoMusicAudioProfile = false, ) { const step = new AuthenticateUserStep( KiteBaseTest, sessionInfo, attendee_id, useSimulcastFlag, useWebAudioFlag, enableEventReporting, region, useStereoMusicAudioProfile ); await step.execute(KiteBaseTest); } stepDescription() { return 'Authenticating user'; } metricName() { return 'UserAuthenticationStep' } async run() { this.logger("attendee id: " + this.attendee_id); await this.page.enterAttendeeName(this.attendee_id); if (this.region !== '') { this.logger(`selecting region ${this.region}`); await this.page.selectRegion(this.region); } await this.page.openAdditionalOptions(); if (this.useSimulcastFlag) { this.logger("choose to use simulcast"); await this.page.chooseUseSimulcast(); } if (this.useWebAudioFlag) { this.logger("choose to use Web Audio"); await this.page.chooseUseWebAudio(); } if (this.enableEventReporting) { this.logger("Event reporting enabled"); await this.page.chooseEnableEventReporting(); } if (this.useStereoMusicAudioProfile) { this.logger("Using stereo music audio profile"); await this.page.chooseStereoMusicAudioProfile(); } await this.page.closeAdditionalOptions(); await this.page.authenticate(); this.logger("waiting to authenticate"); let authenticationState = await this.page.waitForDeviceFlow(); if (authenticationState === 'failed') { throw new KiteTestError(Status.FAILED, 'Authentication timeout'); } } } module.exports = AuthenticateUserStep;