nightwatch
Version:
Easy to use Node.js based end-to-end testing solution for web applications using the W3C WebDriver API.
29 lines (28 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const { getSdkRootFromEnv, AndroidBinaryError, requireMobileHelper } = require('../utils/mobile.js');
const { killEmulatorWithoutWait, getAlreadyRunningAvd, launchAVD, getPlatformName } = requireMobileHelper();
module.exports = class AndroidServer {
constructor(AVD) {
this.sdkRoot = getSdkRootFromEnv();
this.avd = AVD || 'nightwatch-android-11';
this.emulatorId = '';
this.emulatorAlreadyRunning = false;
}
async killEmulator() {
return killEmulatorWithoutWait(this.sdkRoot, getPlatformName(), this.emulatorId);
}
async launchEmulator() {
try {
const emulatorId = await getAlreadyRunningAvd(this.sdkRoot, getPlatformName(), this.avd);
this.emulatorAlreadyRunning = !!emulatorId;
this.emulatorId = emulatorId || await launchAVD(this.sdkRoot, getPlatformName(), this.avd);
if (this.emulatorId === null) {
throw new Error('Failed to launch AVD inside Android Emulator');
}
}
catch (err) {
throw new AndroidBinaryError(err.message, 'emulator');
}
}
};