@appium/driver-test-support 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/e2e-suite.d.ts +5 -255
- package/build/lib/e2e-suite.d.ts.map +1 -1
- package/build/lib/e2e-suite.js +404 -375
- package/build/lib/e2e-suite.js.map +1 -1
- package/build/lib/helpers.js +62 -40
- package/build/lib/helpers.js.map +1 -1
- package/build/lib/index.d.ts +1 -51
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +30 -52
- package/build/lib/index.js.map +1 -1
- package/build/lib/unit-suite.d.ts +2 -112
- package/build/lib/unit-suite.d.ts.map +1 -1
- package/build/lib/unit-suite.js +560 -544
- package/build/lib/unit-suite.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e-suite.js","names":["should","chai","createSessionHelpers","port","address","TEST_HOST","createAppiumTestURL","createAppiumURL","createSessionURL","_","newSessionURL","postCommand","sessionId","cmdName","data","config","url","response","axios","post","value","getCommand","sessionIdOrCmdName","cmdNameOrConfig","isString","validateStatus","startSession","defaultsDeep","capabilities","alwaysMatch","firstMatch","endSession","delete","getSession","driverE2ETestSuite","DriverClass","defaultCaps","className","name","describe","baseServer","d","before","getTestPort","server","routeConfiguringFunction","hostname","cliArgs","after","close","it","sessionIds","times","headers","simple","resolveWithFullResponse","push","uniq","length","equal","status","reqs","map","B","all","exist","platformName","deviceName","skip","originalFindElement","originalFindElements","startTimeoutSession","timeout","caps","cloneDeep","findElement","bind","findElements","delay","newSession","newCommandTimeoutMs","be","above","using","error","resp","start","Date","now","eql","not","noCommandTimer","settings","DeviceSettings","ignoreUnimportantViews","getSettings","false","update","rejected","rejectedWith","sandbox","beforeEach","sinon","createSandbox","afterEach","restore","stub","callsFake","reqPromise","shutdownEventPromise","resolve","reject","setTimeout","Error","onUnexpectedShutdown","startUnexpectedShutdown","message","contain","session","res","events","newSessionRequested","newSessionStarted","a"],"sources":["../../lib/e2e-suite.js"],"sourcesContent":["import _ from 'lodash';\nimport {server, routeConfiguringFunction, DeviceSettings} from 'appium/driver';\nimport axios from 'axios';\nimport B from 'bluebird';\nimport {TEST_HOST, getTestPort, createAppiumURL} from './helpers';\nimport chai from 'chai';\nimport sinon from 'sinon';\n\nconst should = chai.should();\n\n/**\n * Creates some helper functions for E2E tests to manage sessions.\n * @template [CommandData=unknown]\n * @template [ResponseData=any]\n * @param {number} port - Port on which the server is running. Typically this will be retrieved via `get-port` beforehand\n * @param {string} [address] - Address/host on which the server is running. Defaults to {@linkcode TEST_HOST}\n * @returns {SessionHelpers<CommandData, ResponseData>}\n */\nexport function createSessionHelpers(port, address = TEST_HOST) {\n const createAppiumTestURL =\n /** @type {import('lodash').CurriedFunction2<string,string,string>} */ (\n createAppiumURL(address, port)\n );\n\n const createSessionURL = createAppiumTestURL(_, '');\n const newSessionURL = createAppiumTestURL('', 'session');\n return /** @type {SessionHelpers<CommandData, ResponseData>} */ ({\n newSessionURL,\n createAppiumTestURL,\n /**\n *\n * @param {string} sessionId\n * @param {string} cmdName\n * @param {any} [data]\n * @param {AxiosRequestConfig} [config]\n * @returns {Promise<any>}\n */\n postCommand: async (sessionId, cmdName, data = {}, config = {}) => {\n const url = createAppiumTestURL(sessionId, cmdName);\n const response = await axios.post(url, data, config);\n return response.data?.value;\n },\n /**\n *\n * @param {string} sessionIdOrCmdName\n * @param {string|AxiosRequestConfig} cmdNameOrConfig\n * @param {AxiosRequestConfig} [config]\n * @returns {Promise<any>}\n */\n getCommand: async (sessionIdOrCmdName, cmdNameOrConfig, config = {}) => {\n if (!_.isString(cmdNameOrConfig)) {\n config = cmdNameOrConfig;\n cmdNameOrConfig = sessionIdOrCmdName;\n sessionIdOrCmdName = '';\n }\n const response = await axios({\n url: createAppiumTestURL(sessionIdOrCmdName, cmdNameOrConfig),\n validateStatus: null,\n ...config,\n });\n return response.data?.value;\n },\n /**\n *\n * @param {NewSessionData} data\n * @param {AxiosRequestConfig} [config]\n */\n startSession: async (data, config = {}) => {\n data = _.defaultsDeep(data, {\n capabilities: {\n alwaysMatch: {},\n firstMatch: [{}],\n },\n });\n const response = await axios.post(newSessionURL, data, config);\n return response.data?.value;\n },\n /**\n *\n * @param {string} sessionId\n */\n endSession: async (sessionId) =>\n await axios.delete(createSessionURL(sessionId), {\n validateStatus: null,\n }),\n /**\n * @param {string} sessionId\n * @returns {Promise<any>}\n */\n getSession: async (sessionId) => {\n const response = await axios({\n url: createSessionURL(sessionId),\n validateStatus: null,\n });\n return response.data?.value;\n },\n });\n}\n\n/**\n * Creates E2E test suites for a driver.\n * @template {Driver} P\n * @param {DriverClass<P>} DriverClass\n * @param {Partial<BaseNSCapabilities>} [defaultCaps]\n */\nexport function driverE2ETestSuite(DriverClass, defaultCaps = {}) {\n let address = defaultCaps['appium:address'] ?? TEST_HOST;\n let port = defaultCaps['appium:port'];\n const className = DriverClass.name || '(unknown driver)';\n\n describe(`BaseDriver E2E (as ${className})`, function () {\n let baseServer;\n /** @type {P} */\n let d;\n /**\n * This URL creates a new session\n * @type {string}\n **/\n let newSessionURL;\n\n /** @type {SessionHelpers['startSession']} */\n let startSession;\n /** @type {SessionHelpers['getSession']} */\n let getSession;\n /** @type {SessionHelpers['endSession']} */\n let endSession;\n /** @type {SessionHelpers['getCommand']} */\n let getCommand;\n /** @type {SessionHelpers['postCommand']} */\n let postCommand;\n before(async function () {\n port = port ?? (await getTestPort());\n defaultCaps = {...defaultCaps};\n d = new DriverClass({port, address});\n baseServer = await server({\n routeConfiguringFunction: routeConfiguringFunction(d),\n port,\n hostname: address,\n // @ts-expect-error\n cliArgs: {},\n });\n ({startSession, getSession, endSession, newSessionURL, getCommand, postCommand} =\n createSessionHelpers(port, address));\n });\n\n after(async function () {\n await baseServer.close();\n });\n\n describe('session handling', function () {\n it('should handle idempotency while creating sessions', async function () {\n const sessionIds = [];\n let times = 0;\n do {\n const {sessionId} = await startSession(\n {\n capabilities: {alwaysMatch: defaultCaps},\n },\n {\n headers: {\n 'X-Idempotency-Key': '123456',\n },\n // XXX: I'm not sure what these are, as they are not documented axios options,\n // nor are they mentioned in our source\n // @ts-expect-error\n simple: false,\n resolveWithFullResponse: true,\n }\n );\n\n sessionIds.push(sessionId);\n times++;\n } while (times < 2);\n _.uniq(sessionIds).length.should.equal(1);\n\n const {status, data} = await endSession(sessionIds[0]);\n status.should.equal(200);\n should.equal(data.value, null);\n });\n\n it('should handle idempotency while creating parallel sessions', async function () {\n const reqs = [];\n let times = 0;\n do {\n reqs.push(\n startSession(\n {\n capabilities: {\n alwaysMatch: defaultCaps,\n },\n },\n {\n headers: {\n 'X-Idempotency-Key': '12345',\n },\n }\n )\n );\n times++;\n } while (times < 2);\n const sessionIds = _.map(await B.all(reqs), 'sessionId');\n _.uniq(sessionIds).length.should.equal(1);\n\n const {status, data} = await endSession(sessionIds[0]);\n status.should.equal(200);\n should.equal(data.value, null);\n });\n\n it('should create session and retrieve a session id, then delete it', async function () {\n let {status, data} = await axios.post(newSessionURL, {\n capabilities: {\n alwaysMatch: defaultCaps,\n },\n });\n\n status.should.equal(200);\n should.exist(data.value.sessionId);\n data.value.capabilities.platformName.should.equal(defaultCaps.platformName);\n data.value.capabilities.deviceName.should.equal(defaultCaps['appium:deviceName']);\n\n ({status, data} = await endSession(/** @type {string} */ (d.sessionId)));\n\n status.should.equal(200);\n should.equal(data.value, null);\n should.equal(d.sessionId, null);\n });\n });\n\n it.skip('should throw NYI for commands not implemented', async function () {});\n\n describe('command timeouts', function () {\n let originalFindElement, originalFindElements;\n\n /**\n * @param {number} [timeout]\n */\n async function startTimeoutSession(timeout) {\n const caps = _.cloneDeep(defaultCaps);\n caps['appium:newCommandTimeout'] = timeout;\n return await startSession({capabilities: {alwaysMatch: caps}});\n }\n\n before(function () {\n originalFindElement = d.findElement;\n d.findElement = function () {\n return 'foo';\n }.bind(d);\n\n originalFindElements = d.findElements;\n d.findElements = async function () {\n await B.delay(200);\n return ['foo'];\n }.bind(d);\n });\n\n after(function () {\n d.findElement = originalFindElement;\n d.findElements = originalFindElements;\n });\n\n it('should set a default commandTimeout', async function () {\n let newSession = await startTimeoutSession();\n d.newCommandTimeoutMs.should.be.above(0);\n await endSession(newSession.sessionId);\n });\n\n it('should timeout on commands using commandTimeout cap', async function () {\n let newSession = await startTimeoutSession(0.25);\n const sessionId = /** @type {string} */ (d.sessionId);\n await postCommand(sessionId, 'element', {\n using: 'name',\n value: 'foo',\n });\n await B.delay(400);\n const value = await getSession(sessionId);\n should.equal(value.error, 'invalid session id');\n should.equal(d.sessionId, null);\n const resp = (await endSession(newSession.sessionId)).data.value;\n should.equal(resp?.error, 'invalid session id');\n });\n\n it('should not timeout with commandTimeout of false', async function () {\n let newSession = await startTimeoutSession(0.1);\n let start = Date.now();\n const value = await postCommand(/** @type {string} */ (d.sessionId), 'elements', {\n using: 'name',\n value: 'foo',\n });\n (Date.now() - start).should.be.above(150);\n value.should.eql(['foo']);\n await endSession(newSession.sessionId);\n });\n\n it('should not timeout with commandTimeout of 0', async function () {\n d.newCommandTimeoutMs = 2;\n let newSession = await startTimeoutSession(0);\n\n await postCommand(/** @type {string} */ (d.sessionId), 'element', {\n using: 'name',\n value: 'foo',\n });\n await B.delay(400);\n const value = await getSession(/** @type {string} */ (d.sessionId));\n value.platformName?.should.equal(defaultCaps.platformName);\n const resp = (await endSession(newSession.sessionId)).data.value;\n should.equal(resp, null);\n\n d.newCommandTimeoutMs = 60 * 1000;\n });\n\n it('should not timeout if its just the command taking awhile', async function () {\n let newSession = await startTimeoutSession(0.25);\n // XXX: race condition: we must build this URL before ...something happens...\n // which causes `d.sessionId` to be missing\n const {sessionId} = d;\n\n await postCommand(/** @type {string} */ (d.sessionId), 'element', {\n using: 'name',\n value: 'foo',\n });\n await B.delay(400);\n const value = await getSession(/** @type {string} */ (sessionId));\n /** @type {string} */ (value.error).should.equal('invalid session id');\n should.equal(d.sessionId, null);\n const resp = (await endSession(newSession.sessionId)).data.value;\n /** @type {string} */ (/** @type { {error: string} } */ (resp).error).should.equal(\n 'invalid session id'\n );\n });\n\n it('should not have a timer running before or after a session', async function () {\n // @ts-expect-error\n should.not.exist(d.noCommandTimer);\n let newSession = await startTimeoutSession(0.25);\n newSession.sessionId.should.equal(d.sessionId);\n // @ts-expect-error\n should.exist(d.noCommandTimer);\n await endSession(newSession.sessionId);\n // @ts-expect-error\n should.not.exist(d.noCommandTimer);\n });\n });\n\n describe('settings api', function () {\n before(function () {\n d.settings = new DeviceSettings({ignoreUnimportantViews: false});\n });\n it('should be able to get settings object', function () {\n d.settings.getSettings().ignoreUnimportantViews.should.be.false;\n });\n it('should not reject when `updateSettings` method is not provided', async function () {\n await d.settings.update({ignoreUnimportantViews: true}).should.not.be.rejected;\n });\n it('should reject for invalid update object', async function () {\n await d.settings\n // @ts-expect-error\n .update('invalid json')\n .should.be.rejectedWith('JSON');\n });\n });\n\n describe('unexpected exits', function () {\n /** @type {import('sinon').SinonSandbox} */\n let sandbox;\n beforeEach(function () {\n sandbox = sinon.createSandbox();\n });\n\n afterEach(function () {\n sandbox.restore();\n });\n\n it('should reject a current command when the driver crashes', async function () {\n sandbox.stub(d, 'getStatus').callsFake(async function () {\n await B.delay(5000);\n });\n const reqPromise = getCommand('status', {validateStatus: null});\n // make sure that the request gets to the server before our shutdown\n await B.delay(100);\n const shutdownEventPromise = new B((resolve, reject) => {\n setTimeout(\n () =>\n reject(\n new Error(\n 'onUnexpectedShutdown event is expected to be fired within 5 seconds timeout'\n )\n ),\n 5000\n );\n d.onUnexpectedShutdown(resolve);\n });\n d.startUnexpectedShutdown(new Error('Crashytimes'));\n const value = await reqPromise;\n value.message.should.contain('Crashytimes');\n await shutdownEventPromise;\n });\n });\n\n describe('event timings', function () {\n it('should not add timings if not using opt-in cap', async function () {\n const session = await startSession({capabilities: {alwaysMatch: defaultCaps}});\n const res = await getSession(session.sessionId);\n should.not.exist(res.events);\n await endSession(session.sessionId);\n });\n it('should add start session timings', async function () {\n const caps = {...defaultCaps, 'appium:eventTimings': true};\n const session = await startSession({capabilities: {alwaysMatch: caps}});\n const res = await getSession(session.sessionId);\n should.exist(res.events);\n should.exist(res.events?.newSessionRequested);\n should.exist(res.events?.newSessionStarted);\n res.events?.newSessionRequested[0].should.be.a('number');\n res.events?.newSessionStarted[0].should.be.a('number');\n await endSession(session.sessionId);\n });\n });\n });\n}\n\n/**\n * A {@linkcode DriverClass}, except using the base {@linkcode Driver} type instead of `ExternalDriver`.\n * This allows the suite to work for `BaseDriver`.\n * @template {Driver} P\n * @typedef {import('@appium/types').DriverClass<P>} DriverClass\n */\n\n/**\n * @typedef {import('@appium/types').Driver} Driver\n * @typedef {import('@appium/types').Constraints} Constraints\n * @typedef {import('@appium/types').DriverStatic} DriverStatic\n * @typedef {import('@appium/types').StringRecord} StringRecord\n * @typedef {import('@appium/types').BaseDriverCapConstraints} BaseDriverCapConstraints\n * @typedef {import('@appium/types').BaseNSCapabilities} BaseNSCapabilities\n * @typedef {import('axios').AxiosRequestConfig} AxiosRequestConfig\n * @typedef {import('@appium/types').SingularSessionData} SingularSessionData\n */\n\n/**\n * @template T,D\n * @typedef {import('axios').AxiosResponse<T, D>} AxiosResponse\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef NewSessionData\n * @property {import('type-fest').RequireAtLeastOne<import('@appium/types').W3CCapabilities<C, Extra>, 'firstMatch'|'alwaysMatch'>} capabilities\n */\n\n/**\n * @template {Constraints} [C=BaseDriverCapConstraints]\n * @template {StringRecord|void} [Extra=void]\n * @typedef NewSessionResponse\n * @property {string} sessionId,\n * @property {import('@appium/types').Capabilities<C, Extra>} capabilities\n */\n\n/**\n * Some E2E helpers for making requests and managing sessions\n * See {@linkcode createSessionHelpers}\n * @template [CommandData=unknown]\n * @template [ResponseData=any]\n * @typedef SessionHelpers\n * @property {string} newSessionURL - URL to create a new session. Can be used with raw `axios` requests to fully inspect raw response. Mostly, this will not be used.\n * @property {(data: NewSessionData, config?: AxiosRequestConfig) => Promise<NewSessionResponse>} startSession - Begin a session\n * @property {(sessionId: string) => Promise<AxiosResponse<{value: {error?: string}?}, {validateStatus: null}>>} endSession - End a session. _Note: resolves with raw response object_\n * @property {(sessionId: string) => Promise<SingularSessionData>} getSession - Get info about a session\n * @property {(sessionId: string, cmdName: string, data?: CommandData, config?: AxiosRequestConfig) => Promise<ResponseData>} postCommand - Send an arbitrary command via `POST`.\n * @property {(sessionIdOrCmdName: string, cmdNameOrConfig: string|AxiosRequestConfig, config?: AxiosRequestConfig) => Promise<ResponseData>} getCommand - Send an arbitrary command via `GET`. Optional `sessionId`.\n */\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"e2e-suite.js","sourceRoot":"","sources":["../../lib/e2e-suite.js"],"names":[],"mappings":"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"}
|
package/build/lib/helpers.js
CHANGED
|
@@ -1,49 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.createAppiumURL = exports.TEST_HOST = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var _lodash = require("lodash");
|
|
14
|
-
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createAppiumURL = exports.getTestPort = exports.TEST_HOST = void 0;
|
|
7
|
+
const get_port_1 = __importDefault(require("get-port"));
|
|
8
|
+
const lodash_1 = require("lodash");
|
|
9
|
+
/**
|
|
10
|
+
* Default test host
|
|
11
|
+
*/
|
|
17
12
|
const TEST_HOST = '127.0.0.1';
|
|
18
13
|
exports.TEST_HOST = TEST_HOST;
|
|
19
14
|
let testPort;
|
|
20
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Returns a free port; one per process
|
|
17
|
+
* @param {boolean} [force] - If true, do not reuse the port (if it already exists)
|
|
18
|
+
* @returns {Promise<number>} a free port
|
|
19
|
+
*/
|
|
21
20
|
async function getTestPort(force = false) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
if (force || !testPort) {
|
|
22
|
+
let port = await (0, get_port_1.default)();
|
|
23
|
+
if (!testPort) {
|
|
24
|
+
testPort = port;
|
|
25
|
+
}
|
|
26
|
+
return port;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
return port;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return testPort;
|
|
28
|
+
return testPort;
|
|
33
29
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
30
|
+
exports.getTestPort = getTestPort;
|
|
31
|
+
/**
|
|
32
|
+
* Build an Appium URL from components.
|
|
33
|
+
*
|
|
34
|
+
* **All** parameters are required. Provide an empty string (`''`) if you don't need one.
|
|
35
|
+
* To rearrange arguments (if needed), use the placeholder from Lodash (`_`).
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
const createAppiumURL = (0, lodash_1.curry)(
|
|
39
|
+
/**
|
|
40
|
+
* @param {string} address - Base address (w/ optional protocol)
|
|
41
|
+
* @param {string|number} port - Port number
|
|
42
|
+
* @param {string?} session - Session ID
|
|
43
|
+
* @param {string} pathname - Extra path
|
|
44
|
+
* @returns {string} New URL
|
|
45
|
+
* @example
|
|
46
|
+
*
|
|
47
|
+
* import _ from 'lodash';
|
|
48
|
+
*
|
|
49
|
+
* // http://127.0.0.1:31337/session
|
|
50
|
+
* createAppiumURL('127.0.0.1', 31337, '', 'session')
|
|
51
|
+
*
|
|
52
|
+
* // http://127.0.0.1:31337/session/asdfgjkl
|
|
53
|
+
* const createSessionURL = createAppiumURL('127.0.0.1', 31337, _, 'session')
|
|
54
|
+
* createSessionURL('asdfgjkl')
|
|
55
|
+
*
|
|
56
|
+
* // http://127.0.0.1:31337/session/asdfgjkl/appium/execute
|
|
57
|
+
* const createURLWithPath = createAppiumURL('127.0.0.1', 31337, 'asdfgjkl');
|
|
58
|
+
* createURLWithPath('appium/execute')
|
|
59
|
+
*/
|
|
60
|
+
(address, port, session, pathname) => {
|
|
61
|
+
if (!/^https?:\/\//.test(address)) {
|
|
62
|
+
address = `http://${address}`;
|
|
63
|
+
}
|
|
64
|
+
let path = session ? `session/${session}` : '';
|
|
65
|
+
if (pathname) {
|
|
66
|
+
path = `${path}/${pathname}`;
|
|
67
|
+
}
|
|
68
|
+
return new URL(path, `${address}:${port}`).href;
|
|
47
69
|
});
|
|
48
70
|
exports.createAppiumURL = createAppiumURL;
|
|
49
|
-
//# sourceMappingURL=
|
|
71
|
+
//# sourceMappingURL=helpers.js.map
|
package/build/lib/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.js"],"names":[],"mappings":";;;;;;AAAA,wDAA+B;AAC/B,mCAA6B;AAE7B;;GAEG;AACH,MAAM,SAAS,GAAG,WAAW,CAAC;AA6DtB,8BAAS;AA3DjB,IAAI,QAAQ,CAAC;AAEb;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,KAAK,GAAG,KAAK;IACtC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;QACtB,IAAI,IAAI,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AA2CkB,kCAAW;AAzC9B;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,IAAA,cAAK;AAC3B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACjC,OAAO,GAAG,UAAU,OAAO,EAAE,CAAC;KAC/B;IACD,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,IAAI,QAAQ,EAAE;QACZ,IAAI,GAAG,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;KAC9B;IACD,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC,CACF,CAAC;AAE8B,0CAAe"}
|
package/build/lib/index.d.ts
CHANGED
|
@@ -2,56 +2,6 @@ export * from "./unit-suite";
|
|
|
2
2
|
export * from "./helpers";
|
|
3
3
|
export type DriverClass = import('@appium/types').DriverClass;
|
|
4
4
|
export type BaseNSCapabilities = import('@appium/types').BaseNSCapabilities;
|
|
5
|
-
export type W3CCapabilities<C extends Readonly<Record<string, import("@appium/types").Constraint>> =
|
|
6
|
-
readonly platformName: {
|
|
7
|
-
readonly presence: true;
|
|
8
|
-
readonly isString: true;
|
|
9
|
-
};
|
|
10
|
-
readonly app: {
|
|
11
|
-
readonly isString: true;
|
|
12
|
-
};
|
|
13
|
-
readonly deviceName: {
|
|
14
|
-
readonly isString: true;
|
|
15
|
-
};
|
|
16
|
-
readonly platformVersion: {
|
|
17
|
-
readonly isString: true;
|
|
18
|
-
};
|
|
19
|
-
readonly newCommandTimeout: {
|
|
20
|
-
readonly isNumber: true;
|
|
21
|
-
};
|
|
22
|
-
readonly automationName: {
|
|
23
|
-
readonly isString: true;
|
|
24
|
-
};
|
|
25
|
-
readonly autoLaunch: {
|
|
26
|
-
readonly isBoolean: true;
|
|
27
|
-
};
|
|
28
|
-
readonly udid: {
|
|
29
|
-
readonly isString: true;
|
|
30
|
-
};
|
|
31
|
-
readonly orientation: {
|
|
32
|
-
readonly inclusion: readonly ["LANDSCAPE", "PORTRAIT"];
|
|
33
|
-
};
|
|
34
|
-
readonly autoWebview: {
|
|
35
|
-
readonly isBoolean: true;
|
|
36
|
-
};
|
|
37
|
-
readonly noReset: {
|
|
38
|
-
readonly isBoolean: true;
|
|
39
|
-
};
|
|
40
|
-
readonly fullReset: {
|
|
41
|
-
readonly isBoolean: true;
|
|
42
|
-
};
|
|
43
|
-
readonly language: {
|
|
44
|
-
readonly isString: true;
|
|
45
|
-
};
|
|
46
|
-
readonly locale: {
|
|
47
|
-
readonly isString: true;
|
|
48
|
-
};
|
|
49
|
-
readonly eventTimings: {
|
|
50
|
-
readonly isBoolean: true;
|
|
51
|
-
};
|
|
52
|
-
readonly printPageSourceOnFindFailure: {
|
|
53
|
-
readonly isBoolean: true;
|
|
54
|
-
};
|
|
55
|
-
}, Extra extends void | import("@appium/types").StringRecord = void> = import('@appium/types').W3CCapabilities<C, Extra>;
|
|
5
|
+
export type W3CCapabilities<C extends Readonly<Record<string, import("@appium/types").Constraint>> = typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS, Extra extends void | import("@appium/types").StringRecord = void> = import('@appium/types').W3CCapabilities<C, Extra>;
|
|
56
6
|
export { createSessionHelpers, driverE2ETestSuite } from "./e2e-suite";
|
|
57
7
|
//# sourceMappingURL=index.d.ts.map
|
package/build/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;0BAKa,OAAO,eAAe,EAAE,WAAW;iCACnC,OAAO,eAAe,EAAE,kBAAkB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;0BAKa,OAAO,eAAe,EAAE,WAAW;iCACnC,OAAO,eAAe,EAAE,kBAAkB;sOAM1C,OAAO,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC"}
|
package/build/lib/index.js
CHANGED
|
@@ -1,54 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
createSessionHelpers: true,
|
|
8
|
-
driverE2ETestSuite: true
|
|
9
|
-
};
|
|
10
|
-
Object.defineProperty(exports, "createSessionHelpers", {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function () {
|
|
13
|
-
return _e2eSuite.createSessionHelpers;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(exports, "driverE2ETestSuite", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function () {
|
|
19
|
-
return _e2eSuite.driverE2ETestSuite;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
require("source-map-support/register");
|
|
24
|
-
|
|
25
|
-
var _e2eSuite = require("./e2e-suite");
|
|
26
|
-
|
|
27
|
-
var _unitSuite = require("./unit-suite");
|
|
28
|
-
|
|
29
|
-
Object.keys(_unitSuite).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
32
|
-
if (key in exports && exports[key] === _unitSuite[key]) return;
|
|
33
|
-
Object.defineProperty(exports, key, {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
get: function () {
|
|
36
|
-
return _unitSuite[key];
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
var _helpers = require("./helpers");
|
|
42
|
-
|
|
43
|
-
Object.keys(_helpers).forEach(function (key) {
|
|
44
|
-
if (key === "default" || key === "__esModule") return;
|
|
45
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
46
|
-
if (key in exports && exports[key] === _helpers[key]) return;
|
|
47
|
-
Object.defineProperty(exports, key, {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
get: function () {
|
|
50
|
-
return _helpers[key];
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
51
7
|
}
|
|
52
|
-
|
|
53
|
-
})
|
|
54
|
-
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.driverE2ETestSuite = exports.createSessionHelpers = void 0;
|
|
18
|
+
var e2e_suite_1 = require("./e2e-suite");
|
|
19
|
+
Object.defineProperty(exports, "createSessionHelpers", { enumerable: true, get: function () { return e2e_suite_1.createSessionHelpers; } });
|
|
20
|
+
Object.defineProperty(exports, "driverE2ETestSuite", { enumerable: true, get: function () { return e2e_suite_1.driverE2ETestSuite; } });
|
|
21
|
+
__exportStar(require("./unit-suite"), exports);
|
|
22
|
+
__exportStar(require("./helpers"), exports);
|
|
23
|
+
/**
|
|
24
|
+
* @typedef {import('@appium/types').DriverClass} DriverClass
|
|
25
|
+
* @typedef {import('@appium/types').BaseNSCapabilities} BaseNSCapabilities
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* @template {import('@appium/types').Constraints} [C=import('@appium/types').BaseDriverCapConstraints]
|
|
29
|
+
* @template {import('@appium/types').StringRecord|void} [Extra=void]
|
|
30
|
+
* @typedef {import('@appium/types').W3CCapabilities<C, Extra>} W3CCapabilities
|
|
31
|
+
*/
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
package/build/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAqE;AAA7D,iHAAA,oBAAoB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAChD,+CAA6B;AAC7B,4CAA0B;AAE1B;;;GAGG;AAEH;;;;GAIG"}
|
|
@@ -3,118 +3,8 @@
|
|
|
3
3
|
* @param {DriverClass} DriverClass
|
|
4
4
|
* @param {Partial<BaseNSCapabilities>} [defaultCaps]
|
|
5
5
|
*/
|
|
6
|
-
export function driverUnitTestSuite(DriverClass: DriverClass, defaultCaps?: Partial<import("@appium/types").CapsToNSCaps<import("@appium/types").ConstraintsToCaps<
|
|
7
|
-
readonly platformName: {
|
|
8
|
-
readonly presence: true;
|
|
9
|
-
readonly isString: true;
|
|
10
|
-
};
|
|
11
|
-
readonly app: {
|
|
12
|
-
readonly isString: true;
|
|
13
|
-
};
|
|
14
|
-
readonly deviceName: {
|
|
15
|
-
readonly isString: true;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Creates unit test suites for a driver.
|
|
19
|
-
* @param {DriverClass} DriverClass
|
|
20
|
-
* @param {Partial<BaseNSCapabilities>} [defaultCaps]
|
|
21
|
-
*/
|
|
22
|
-
readonly platformVersion: {
|
|
23
|
-
readonly isString: true;
|
|
24
|
-
};
|
|
25
|
-
readonly newCommandTimeout: {
|
|
26
|
-
readonly isNumber: true;
|
|
27
|
-
};
|
|
28
|
-
readonly automationName: {
|
|
29
|
-
readonly isString: true;
|
|
30
|
-
};
|
|
31
|
-
readonly autoLaunch: {
|
|
32
|
-
readonly isBoolean: true;
|
|
33
|
-
};
|
|
34
|
-
readonly udid: {
|
|
35
|
-
readonly isString: true;
|
|
36
|
-
};
|
|
37
|
-
readonly orientation: {
|
|
38
|
-
readonly inclusion: readonly ["LANDSCAPE", "PORTRAIT"];
|
|
39
|
-
};
|
|
40
|
-
readonly autoWebview: {
|
|
41
|
-
readonly isBoolean: true; /** @type {import('sinon').SinonSandbox} */
|
|
42
|
-
};
|
|
43
|
-
readonly noReset: {
|
|
44
|
-
readonly isBoolean: true;
|
|
45
|
-
};
|
|
46
|
-
readonly fullReset: {
|
|
47
|
-
readonly isBoolean: true;
|
|
48
|
-
};
|
|
49
|
-
readonly language: {
|
|
50
|
-
readonly isString: true;
|
|
51
|
-
};
|
|
52
|
-
readonly locale: {
|
|
53
|
-
readonly isString: true;
|
|
54
|
-
};
|
|
55
|
-
readonly eventTimings: {
|
|
56
|
-
readonly isBoolean: true;
|
|
57
|
-
};
|
|
58
|
-
readonly printPageSourceOnFindFailure: {
|
|
59
|
-
readonly isBoolean: true;
|
|
60
|
-
};
|
|
61
|
-
}>, "appium">> | undefined): void;
|
|
6
|
+
export function driverUnitTestSuite(DriverClass: DriverClass, defaultCaps?: Partial<import("@appium/types").CapsToNSCaps<import("@appium/types").ConstraintsToCaps<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>, "appium">> | undefined): void;
|
|
62
7
|
export type DriverClass = import('@appium/types').DriverClass;
|
|
63
8
|
export type BaseNSCapabilities = import('@appium/types').BaseNSCapabilities;
|
|
64
|
-
export type W3CCapabilities<C extends Readonly<Record<string, import("@appium/types").Constraint>> =
|
|
65
|
-
readonly platformName: {
|
|
66
|
-
readonly presence: true;
|
|
67
|
-
readonly isString: true;
|
|
68
|
-
};
|
|
69
|
-
readonly app: {
|
|
70
|
-
readonly isString: true;
|
|
71
|
-
};
|
|
72
|
-
readonly deviceName: {
|
|
73
|
-
readonly isString: true;
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Creates unit test suites for a driver.
|
|
77
|
-
* @param {DriverClass} DriverClass
|
|
78
|
-
* @param {Partial<BaseNSCapabilities>} [defaultCaps]
|
|
79
|
-
*/
|
|
80
|
-
readonly platformVersion: {
|
|
81
|
-
readonly isString: true;
|
|
82
|
-
};
|
|
83
|
-
readonly newCommandTimeout: {
|
|
84
|
-
readonly isNumber: true;
|
|
85
|
-
};
|
|
86
|
-
readonly automationName: {
|
|
87
|
-
readonly isString: true;
|
|
88
|
-
};
|
|
89
|
-
readonly autoLaunch: {
|
|
90
|
-
readonly isBoolean: true;
|
|
91
|
-
};
|
|
92
|
-
readonly udid: {
|
|
93
|
-
readonly isString: true;
|
|
94
|
-
};
|
|
95
|
-
readonly orientation: {
|
|
96
|
-
readonly inclusion: readonly ["LANDSCAPE", "PORTRAIT"];
|
|
97
|
-
};
|
|
98
|
-
readonly autoWebview: {
|
|
99
|
-
readonly isBoolean: true; /** @type {import('sinon').SinonSandbox} */
|
|
100
|
-
};
|
|
101
|
-
readonly noReset: {
|
|
102
|
-
readonly isBoolean: true;
|
|
103
|
-
};
|
|
104
|
-
readonly fullReset: {
|
|
105
|
-
readonly isBoolean: true;
|
|
106
|
-
};
|
|
107
|
-
readonly language: {
|
|
108
|
-
readonly isString: true;
|
|
109
|
-
};
|
|
110
|
-
readonly locale: {
|
|
111
|
-
readonly isString: true;
|
|
112
|
-
};
|
|
113
|
-
readonly eventTimings: {
|
|
114
|
-
readonly isBoolean: true;
|
|
115
|
-
};
|
|
116
|
-
readonly printPageSourceOnFindFailure: {
|
|
117
|
-
readonly isBoolean: true;
|
|
118
|
-
};
|
|
119
|
-
}, Extra extends void | import("@appium/types").StringRecord = void> = import('@appium/types').W3CCapabilities<C, Extra>;
|
|
9
|
+
export type W3CCapabilities<C extends Readonly<Record<string, import("@appium/types").Constraint>> = typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS, Extra extends void | import("@appium/types").StringRecord = void> = import('@appium/types').W3CCapabilities<C, Extra>;
|
|
120
10
|
//# sourceMappingURL=unit-suite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-suite.d.ts","sourceRoot":"","sources":["../../lib/unit-suite.js"],"names":[],"mappings":"AAYA;;;;GAIG;AAEH,iDAJW,WAAW
|
|
1
|
+
{"version":3,"file":"unit-suite.d.ts","sourceRoot":"","sources":["../../lib/unit-suite.js"],"names":[],"mappings":"AAYA;;;;GAIG;AAEH,iDAJW,WAAW,mMAmmBrB;0BAGY,OAAO,eAAe,EAAE,WAAW;iCACnC,OAAO,eAAe,EAAE,kBAAkB;sOAM1C,OAAO,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC"}
|