UNPKG

nightwatch

Version:

Easy to use Node.js based end-to-end testing solution for web applications using the W3C WebDriver API.

227 lines (197 loc) 6.92 kB
import { expectError, expectType } from 'tsd'; import { AppiumGeolocation, NightwatchAPI } from '..'; // // orientation // describe('orientation commands', function () { it('tests orientation commands', function () { expectType<NightwatchAPI>(app); expectType<boolean>(app.isAppiumClient()); app.appium .getOrientation(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<'LANDSCAPE' | 'PORTRAIT'>(result.value); } }) .appium.setOrientation('LANDSCAPE', function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<'LANDSCAPE' | 'PORTRAIT'>(result.value); } }); }); it('tests orientation commands with async/await', async function () { expectType<NightwatchAPI>(app); expectType<boolean>(app.isAppiumClient()); const orientation = await app.appium.getOrientation(); expectType<'LANDSCAPE' | 'PORTRAIT'>(orientation); const result = await app.appium.setOrientation('PORTRAIT'); expectType<'LANDSCAPE' | 'PORTRAIT'>(result); }); }); // // context commands // describe('context commands', function () { it('tests context commands', function (app: NightwatchAPI) { expectType<boolean>(app.isAppiumClient()); app.appium .getContexts(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<string[]>(result.value); } }) .appium.getContext(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<string | null>(result.value); } }) .appium.setContext('something', function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<null>(result.value); } }); }); it('tests context commands with async/await', async function (app: NightwatchAPI) { expectType<boolean>(app.isAppiumClient()); const contexts = await app.appium.getContexts(); expectType<string[]>(contexts); const context = await app.appium.getContext(); expectType<string | null>(context); const result = await app.appium.setContext('random'); expectType<null>(result); }); }); // // activity commands // describe('activity commands', function () { it('tests activity commands', function (app: NightwatchAPI) { app.appium .startActivity( { appPackage: 'com.some.package', appActivity: 'some.activity', }, function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<null>(result.value); } } ) .appium.getCurrentActivity(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<string>(result.value); } }) .appium.getCurrentPackage(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<string>(result.value); } }); }); it('tests activity commands with async/await', async function (app: NightwatchAPI) { expectError(await app.appium.startActivity({ appPackage: 'com.something', })) const result = await app.appium.startActivity({ appPackage: 'com.something', appActivity: 'some.activity', appWaitActivity: 'some.other.activity', }); expectType<null>(result); const activity = await app.appium.getCurrentActivity(); expectType<string>(activity); const packageName = await app.appium.getCurrentPackage(); expectType<string>(packageName); }); }); // // geolocation // describe('geolocation commands', function () { it('tests geolocation commands', function (app: NightwatchAPI) { app.appium .getGeolocation(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<AppiumGeolocation>(result.value); } }) .appium.setGeolocation({ latitude: 232, longitude: 2343, altitude: 5 }, function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<AppiumGeolocation>(result.value); } }); }); it('tests geolocation commands with async/await', async function (app: NightwatchAPI) { const location = await app.appium.getGeolocation(); expectType<AppiumGeolocation>(location); expectError(await app.appium.setGeolocation({ latitude: 543 })) expectError(await app.appium.setGeolocation()) const result = await app.appium.setGeolocation({ latitude: 232, longitude: 2343 }); expectType<AppiumGeolocation>(result); }); }); // // keyboard interaction commands // describe('keyboard interaction commands', function () { it('tests keyboard interaction commands', function (app: NightwatchAPI) { app.appium .pressKeyCode(35, function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<null>(result.value); } }) .appium.longPressKeyCode(31, function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<null>(result.value); } }) .appium.hideKeyboard(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<boolean>(result.value); } }) .appium.isKeyboardShown(function (result) { expectType<NightwatchAPI>(this); if (result.status === 0) { expectType<boolean>(result.value); } }); }); it('tests keyboard interaction commands with async/await', async function (app: NightwatchAPI) { expectError(await app.appium.pressKeyCode()) expectError(await app.appium.pressKeyCode(32, 45, () => {})) await app.appium.pressKeyCode(56, () => {}); await app.appium.pressKeyCode(44, undefined, undefined, () => {}); const result = await app.appium.pressKeyCode(34, 29474, undefined, () => {}); expectType<null>(result); expectError(await app.appium.longPressKeyCode()) expectError(await app.appium.longPressKeyCode(32, 45, () => {})) await app.appium.longPressKeyCode(56, () => {}); await app.appium.longPressKeyCode(44, undefined, undefined, () => {}); const result2 = await app.appium.longPressKeyCode(34, 29474, undefined, () => {}); expectType<null>(result2); const result3 = await app.appium.hideKeyboard(); expectType<boolean>(result3); const result4 = await app.appium.isKeyboardShown(); expectType<boolean>(result4); }); it('test reset app commands', async function (app: NightwatchAPI) { const result = await app.appium.resetApp(); expectType<null>(result); }); });