44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
|
|
/**
|
||
|
|
* You can use `call` to execute any async action within your test spec.
|
||
|
|
* It accepts promises and stops the execution until the promise has been resolved.
|
||
|
|
*
|
||
|
|
* :::info
|
||
|
|
*
|
||
|
|
* With WebdriverIO deprecating synchronous usage (see [RFC](https://github.com/webdriverio/webdriverio/discussions/6702))
|
||
|
|
* this command is not very useful anymore.
|
||
|
|
*
|
||
|
|
* :::
|
||
|
|
*
|
||
|
|
* <example>
|
||
|
|
:call.js
|
||
|
|
it('some testing here', async () => {
|
||
|
|
await browser.url('http://google.com')
|
||
|
|
// make an asynchronous call using any 3rd party library supporting promises
|
||
|
|
// e.g. call to backend or db to inject fixture data
|
||
|
|
await browser.call(() => {
|
||
|
|
return somePromiseLibrary.someMethod().then(() => {
|
||
|
|
// ...
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
// example for async call to 3rd party library that doesn't support promises
|
||
|
|
const result = await browser.call(() => {
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
someOtherNodeLibrary.someMethod(param1, (err, res) => {
|
||
|
|
if (err) {
|
||
|
|
return reject(err)
|
||
|
|
}
|
||
|
|
resolve(res)
|
||
|
|
})
|
||
|
|
})
|
||
|
|
})
|
||
|
|
});
|
||
|
|
* </example>
|
||
|
|
*
|
||
|
|
* @alias browser.call
|
||
|
|
* @param {Function} callback function to be called
|
||
|
|
* @type utility
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
export declare function call<T>(fn: () => T): T | Promise<T>;
|
||
|
|
//# sourceMappingURL=call.d.ts.map
|