52 lines
2.0 KiB
TypeScript
52 lines
2.0 KiB
TypeScript
|
|
/**
|
||
|
|
*
|
||
|
|
* This command helps you to debug your integration tests. It stops the running browser and gives
|
||
|
|
* you time to jump into it and check the state of your application (e.g. using dev tools).
|
||
|
|
* Your terminal transforms into a [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)
|
||
|
|
* interface that will allow you to try out certain commands, find elements and test actions on
|
||
|
|
* them.
|
||
|
|
*
|
||
|
|
* [](https://webdriver.io/img/repl.gif)
|
||
|
|
*
|
||
|
|
* If you run the WDIO testrunner make sure you increase the timeout property of the test framework
|
||
|
|
* you are using (e.g. Mocha or Jasmine) in order to prevent test termination due to a test timeout.
|
||
|
|
* Also avoid executing the command with multiple capabilities running at the same time.
|
||
|
|
*
|
||
|
|
* <iframe width="560" height="315" src="https://www.youtube.com/embed/xWwP-3B_YyE" frameBorder="0" allowFullScreen></iframe>
|
||
|
|
*
|
||
|
|
* <example>
|
||
|
|
:debug.js
|
||
|
|
it('should demonstrate the debug command', () => {
|
||
|
|
$('#input').setValue('FOO')
|
||
|
|
browser.debug() // jumping into the browser and change value of #input to 'BAR'
|
||
|
|
const value = $('#input').getValue()
|
||
|
|
console.log(value) // outputs: "BAR"
|
||
|
|
})
|
||
|
|
* </example>
|
||
|
|
*
|
||
|
|
* @alias browser.debug
|
||
|
|
* @type utility
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
import vm from 'node:vm';
|
||
|
|
import repl from 'node:repl';
|
||
|
|
export interface ReplConfig {
|
||
|
|
commandTimeout: number;
|
||
|
|
eval: repl.REPLEval;
|
||
|
|
prompt: string;
|
||
|
|
useGlobal: boolean;
|
||
|
|
useColor: boolean;
|
||
|
|
}
|
||
|
|
export type ReplCallback = (err: Error | null, result: unknown) => void;
|
||
|
|
export default class WDIORepl {
|
||
|
|
static introMessage: string;
|
||
|
|
private _config;
|
||
|
|
private _isCommandRunning;
|
||
|
|
private _replServer;
|
||
|
|
constructor(config?: ReplConfig);
|
||
|
|
eval(cmd: string, context: vm.Context, filename: string | undefined, callback: ReplCallback): void;
|
||
|
|
private _runCmd;
|
||
|
|
private _handleResult;
|
||
|
|
start(context?: vm.Context): Promise<unknown>;
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=index.d.ts.map
|