codeceptjs 3.4.1 → 3.5.1-2.beta.7
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/README.md +31 -30
- package/bin/codecept.js +1 -1
- package/lib/actor.js +6 -3
- package/lib/ai.js +180 -0
- package/lib/cli.js +13 -3
- package/lib/codecept.js +8 -0
- package/lib/colorUtils.js +10 -0
- package/lib/command/definitions.js +2 -7
- package/lib/command/dryRun.js +11 -2
- package/lib/command/generate.js +46 -3
- package/lib/command/info.js +24 -0
- package/lib/command/init.js +64 -6
- package/lib/command/interactive.js +15 -1
- package/lib/command/run-multiple/collection.js +17 -5
- package/lib/command/run-multiple.js +4 -2
- package/lib/command/run-workers.js +68 -5
- package/lib/command/run.js +7 -0
- package/lib/command/workers/runTests.js +39 -0
- package/lib/container.js +13 -3
- package/lib/data/context.js +14 -6
- package/lib/event.js +4 -0
- package/lib/helper/ApiDataFactory.js +2 -1
- package/lib/helper/Appium.js +116 -29
- package/lib/helper/Expect.js +422 -0
- package/lib/helper/FileSystem.js +1 -1
- package/lib/helper/GraphQL.js +25 -0
- package/lib/helper/JSONResponse.js +4 -4
- package/lib/helper/Nightmare.js +10 -5
- package/lib/helper/OpenAI.js +126 -0
- package/lib/helper/Playwright.js +1298 -229
- package/lib/helper/Protractor.js +12 -7
- package/lib/helper/Puppeteer.js +204 -64
- package/lib/helper/REST.js +15 -5
- package/lib/helper/TestCafe.js +45 -10
- package/lib/helper/WebDriver.js +252 -83
- package/lib/helper/errors/ElementNotFound.js +2 -1
- package/lib/helper/extras/PlaywrightReactVueLocator.js +38 -0
- package/lib/helper/scripts/blurElement.js +17 -0
- package/lib/helper/scripts/focusElement.js +17 -0
- package/lib/helper/scripts/highlightElement.js +20 -0
- package/lib/html.js +258 -0
- package/lib/interfaces/bdd.js +1 -1
- package/lib/interfaces/gherkin.js +37 -3
- package/lib/interfaces/scenarioConfig.js +1 -0
- package/lib/listener/retry.js +2 -1
- package/lib/locator.js +17 -4
- package/lib/mochaFactory.js +2 -1
- package/lib/output.js +1 -1
- package/lib/pause.js +78 -19
- package/lib/plugin/autoLogin.js +45 -10
- package/lib/plugin/debugErrors.js +67 -0
- package/lib/plugin/fakerTransform.js +4 -6
- package/lib/plugin/heal.js +209 -0
- package/lib/plugin/retryFailedStep.js +10 -1
- package/lib/plugin/retryTo.js +2 -4
- package/lib/plugin/screenshotOnFail.js +11 -2
- package/lib/plugin/selenoid.js +6 -1
- package/lib/plugin/standardActingHelpers.js +0 -2
- package/lib/plugin/stepByStepReport.js +2 -2
- package/lib/plugin/tryTo.js +5 -7
- package/lib/plugin/wdio.js +0 -1
- package/lib/recorder.js +22 -11
- package/lib/secret.js +5 -4
- package/lib/session.js +1 -1
- package/lib/step.js +36 -12
- package/lib/ui.js +5 -3
- package/lib/utils.js +22 -1
- package/lib/workers.js +83 -10
- package/package.json +117 -95
- package/translations/de-DE.js +5 -0
- package/translations/fr-FR.js +14 -1
- package/translations/it-IT.js +1 -0
- package/translations/ja-JP.js +14 -9
- package/translations/pl-PL.js +5 -0
- package/translations/pt-BR.js +1 -0
- package/translations/ru-RU.js +1 -0
- package/translations/zh-CN.js +5 -0
- package/translations/zh-TW.js +5 -0
- package/typings/index.d.ts +51 -15
- package/typings/promiseBasedTypes.d.ts +864 -802
- package/typings/types.d.ts +1339 -744
- package/CHANGELOG.md +0 -2427
- package/docs/advanced.md +0 -351
- package/docs/api.md +0 -323
- package/docs/basics.md +0 -980
- package/docs/bdd.md +0 -535
- package/docs/best.md +0 -237
- package/docs/books.md +0 -37
- package/docs/bootstrap.md +0 -135
- package/docs/build/ApiDataFactory.js +0 -409
- package/docs/build/Appium.js +0 -1938
- package/docs/build/FileSystem.js +0 -228
- package/docs/build/GraphQL.js +0 -204
- package/docs/build/GraphQLDataFactory.js +0 -309
- package/docs/build/JSONResponse.js +0 -338
- package/docs/build/Mochawesome.js +0 -71
- package/docs/build/Nightmare.js +0 -2145
- package/docs/build/Playwright.js +0 -3986
- package/docs/build/Polly.js +0 -42
- package/docs/build/Protractor.js +0 -2699
- package/docs/build/Puppeteer.js +0 -3710
- package/docs/build/REST.js +0 -334
- package/docs/build/SeleniumWebdriver.js +0 -76
- package/docs/build/TestCafe.js +0 -2057
- package/docs/build/WebDriver.js +0 -4017
- package/docs/changelog.md +0 -2436
- package/docs/commands.md +0 -254
- package/docs/community-helpers.md +0 -58
- package/docs/configuration.md +0 -157
- package/docs/continuous-integration.md +0 -22
- package/docs/custom-helpers.md +0 -306
- package/docs/data.md +0 -375
- package/docs/detox.md +0 -235
- package/docs/docker.md +0 -137
- package/docs/email.md +0 -183
- package/docs/examples.md +0 -149
- package/docs/helpers/ApiDataFactory.md +0 -266
- package/docs/helpers/Appium.md +0 -1312
- package/docs/helpers/Detox.md +0 -586
- package/docs/helpers/FileSystem.md +0 -152
- package/docs/helpers/GraphQL.md +0 -130
- package/docs/helpers/GraphQLDataFactory.md +0 -226
- package/docs/helpers/JSONResponse.md +0 -254
- package/docs/helpers/Mochawesome.md +0 -8
- package/docs/helpers/MockRequest.md +0 -377
- package/docs/helpers/Nightmare.md +0 -1256
- package/docs/helpers/Playwright.md +0 -2208
- package/docs/helpers/Polly.md +0 -44
- package/docs/helpers/Puppeteer-firefox.md +0 -86
- package/docs/helpers/Puppeteer.md +0 -2141
- package/docs/helpers/REST.md +0 -217
- package/docs/helpers/TestCafe.md +0 -1222
- package/docs/helpers/WebDriver.md +0 -2319
- package/docs/hooks.md +0 -340
- package/docs/index.md +0 -111
- package/docs/installation.md +0 -75
- package/docs/internal-api.md +0 -265
- package/docs/locators.md +0 -331
- package/docs/mobile-react-native-locators.md +0 -67
- package/docs/mobile.md +0 -297
- package/docs/nightmare.md +0 -223
- package/docs/pageobjects.md +0 -291
- package/docs/parallel.md +0 -232
- package/docs/playwright.md +0 -609
- package/docs/plugins.md +0 -1171
- package/docs/puppeteer.md +0 -316
- package/docs/quickstart.md +0 -163
- package/docs/react.md +0 -69
- package/docs/reports.md +0 -392
- package/docs/secrets.md +0 -30
- package/docs/shadow.md +0 -68
- package/docs/shared/keys.mustache +0 -31
- package/docs/shared/react.mustache +0 -1
- package/docs/testcafe.md +0 -174
- package/docs/translation.md +0 -247
- package/docs/tutorial.md +0 -271
- package/docs/typescript.md +0 -180
- package/docs/ui.md +0 -59
- package/docs/videos.md +0 -28
- package/docs/visual.md +0 -202
- package/docs/vue.md +0 -121
- package/docs/webapi/amOnPage.mustache +0 -11
- package/docs/webapi/appendField.mustache +0 -9
- package/docs/webapi/attachFile.mustache +0 -12
- package/docs/webapi/checkOption.mustache +0 -13
- package/docs/webapi/clearCookie.mustache +0 -10
- package/docs/webapi/clearField.mustache +0 -9
- package/docs/webapi/click.mustache +0 -25
- package/docs/webapi/clickLink.mustache +0 -8
- package/docs/webapi/closeCurrentTab.mustache +0 -7
- package/docs/webapi/closeOtherTabs.mustache +0 -8
- package/docs/webapi/dontSee.mustache +0 -11
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/dontSeeCookie.mustache +0 -8
- package/docs/webapi/dontSeeCurrentUrlEquals.mustache +0 -10
- package/docs/webapi/dontSeeElement.mustache +0 -8
- package/docs/webapi/dontSeeElementInDOM.mustache +0 -8
- package/docs/webapi/dontSeeInCurrentUrl.mustache +0 -4
- package/docs/webapi/dontSeeInField.mustache +0 -11
- package/docs/webapi/dontSeeInSource.mustache +0 -8
- package/docs/webapi/dontSeeInTitle.mustache +0 -8
- package/docs/webapi/doubleClick.mustache +0 -13
- package/docs/webapi/downloadFile.mustache +0 -12
- package/docs/webapi/dragAndDrop.mustache +0 -9
- package/docs/webapi/dragSlider.mustache +0 -11
- package/docs/webapi/executeAsyncScript.mustache +0 -24
- package/docs/webapi/executeScript.mustache +0 -26
- package/docs/webapi/fillField.mustache +0 -16
- package/docs/webapi/forceClick.mustache +0 -28
- package/docs/webapi/forceRightClick.mustache +0 -18
- package/docs/webapi/grabAllWindowHandles.mustache +0 -7
- package/docs/webapi/grabAttributeFrom.mustache +0 -10
- package/docs/webapi/grabAttributeFromAll.mustache +0 -9
- package/docs/webapi/grabBrowserLogs.mustache +0 -9
- package/docs/webapi/grabCookie.mustache +0 -11
- package/docs/webapi/grabCssPropertyFrom.mustache +0 -11
- package/docs/webapi/grabCssPropertyFromAll.mustache +0 -10
- package/docs/webapi/grabCurrentUrl.mustache +0 -9
- package/docs/webapi/grabCurrentWindowHandle.mustache +0 -6
- package/docs/webapi/grabDataFromPerformanceTiming.mustache +0 -20
- package/docs/webapi/grabElementBoundingRect.mustache +0 -20
- package/docs/webapi/grabGeoLocation.mustache +0 -8
- package/docs/webapi/grabHTMLFrom.mustache +0 -10
- package/docs/webapi/grabHTMLFromAll.mustache +0 -9
- package/docs/webapi/grabNumberOfOpenTabs.mustache +0 -8
- package/docs/webapi/grabNumberOfVisibleElements.mustache +0 -9
- package/docs/webapi/grabPageScrollPosition.mustache +0 -8
- package/docs/webapi/grabPopupText.mustache +0 -5
- package/docs/webapi/grabSource.mustache +0 -8
- package/docs/webapi/grabTextFrom.mustache +0 -10
- package/docs/webapi/grabTextFromAll.mustache +0 -9
- package/docs/webapi/grabTitle.mustache +0 -8
- package/docs/webapi/grabValueFrom.mustache +0 -9
- package/docs/webapi/grabValueFromAll.mustache +0 -8
- package/docs/webapi/moveCursorTo.mustache +0 -12
- package/docs/webapi/openNewTab.mustache +0 -7
- package/docs/webapi/pressKey.mustache +0 -12
- package/docs/webapi/pressKeyDown.mustache +0 -12
- package/docs/webapi/pressKeyUp.mustache +0 -12
- package/docs/webapi/pressKeyWithKeyNormalization.mustache +0 -60
- package/docs/webapi/refreshPage.mustache +0 -6
- package/docs/webapi/resizeWindow.mustache +0 -6
- package/docs/webapi/rightClick.mustache +0 -14
- package/docs/webapi/saveElementScreenshot.mustache +0 -10
- package/docs/webapi/saveScreenshot.mustache +0 -12
- package/docs/webapi/say.mustache +0 -10
- package/docs/webapi/scrollIntoView.mustache +0 -11
- package/docs/webapi/scrollPageToBottom.mustache +0 -6
- package/docs/webapi/scrollPageToTop.mustache +0 -6
- package/docs/webapi/scrollTo.mustache +0 -12
- package/docs/webapi/see.mustache +0 -11
- package/docs/webapi/seeAttributesOnElements.mustache +0 -9
- package/docs/webapi/seeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/seeCookie.mustache +0 -8
- package/docs/webapi/seeCssPropertiesOnElements.mustache +0 -9
- package/docs/webapi/seeCurrentUrlEquals.mustache +0 -11
- package/docs/webapi/seeElement.mustache +0 -8
- package/docs/webapi/seeElementInDOM.mustache +0 -8
- package/docs/webapi/seeInCurrentUrl.mustache +0 -8
- package/docs/webapi/seeInField.mustache +0 -12
- package/docs/webapi/seeInPopup.mustache +0 -8
- package/docs/webapi/seeInSource.mustache +0 -7
- package/docs/webapi/seeInTitle.mustache +0 -8
- package/docs/webapi/seeNumberOfElements.mustache +0 -11
- package/docs/webapi/seeNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/seeTextEquals.mustache +0 -9
- package/docs/webapi/seeTitleEquals.mustache +0 -8
- package/docs/webapi/selectOption.mustache +0 -21
- package/docs/webapi/setCookie.mustache +0 -16
- package/docs/webapi/setGeoLocation.mustache +0 -12
- package/docs/webapi/switchTo.mustache +0 -9
- package/docs/webapi/switchToNextTab.mustache +0 -10
- package/docs/webapi/switchToPreviousTab.mustache +0 -10
- package/docs/webapi/type.mustache +0 -18
- package/docs/webapi/uncheckOption.mustache +0 -13
- package/docs/webapi/wait.mustache +0 -8
- package/docs/webapi/waitForClickable.mustache +0 -11
- package/docs/webapi/waitForDetached.mustache +0 -10
- package/docs/webapi/waitForElement.mustache +0 -11
- package/docs/webapi/waitForEnabled.mustache +0 -6
- package/docs/webapi/waitForFunction.mustache +0 -17
- package/docs/webapi/waitForInvisible.mustache +0 -10
- package/docs/webapi/waitForText.mustache +0 -13
- package/docs/webapi/waitForValue.mustache +0 -10
- package/docs/webapi/waitForVisible.mustache +0 -10
- package/docs/webapi/waitInUrl.mustache +0 -9
- package/docs/webapi/waitNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/waitToHide.mustache +0 -10
- package/docs/webapi/waitUrlEquals.mustache +0 -10
- package/docs/webdriver.md +0 -657
- package/docs/wiki/Books-&-Posts.md +0 -27
- package/docs/wiki/Community-Helpers-&-Plugins.md +0 -49
- package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +0 -29
- package/docs/wiki/Examples.md +0 -139
- package/docs/wiki/Google-Summer-of-Code-(GSoC)-2020.md +0 -68
- package/docs/wiki/Home.md +0 -16
- package/docs/wiki/Release-Process.md +0 -24
- package/docs/wiki/Roadmap.md +0 -23
- package/docs/wiki/Tests.md +0 -1393
- package/docs/wiki/Upgrading-to-CodeceptJS-3.md +0 -153
- package/docs/wiki/Videos.md +0 -19
package/lib/helper/REST.js
CHANGED
|
@@ -34,7 +34,8 @@ const config = {};
|
|
|
34
34
|
* endpoint: 'http://site.com/api',
|
|
35
35
|
* prettyPrintJson: true,
|
|
36
36
|
* onRequest: (request) => {
|
|
37
|
-
*
|
|
37
|
+
* request.headers.auth = '123';
|
|
38
|
+
* }
|
|
38
39
|
* }
|
|
39
40
|
* }
|
|
40
41
|
*}
|
|
@@ -136,6 +137,15 @@ class REST extends Helper {
|
|
|
136
137
|
request.auth = this.headers.auth;
|
|
137
138
|
}
|
|
138
139
|
|
|
140
|
+
if (typeof request.data === 'object') {
|
|
141
|
+
const returnedValue = {};
|
|
142
|
+
for (const [key, value] of Object.entries(request.data)) {
|
|
143
|
+
returnedValue[key] = value;
|
|
144
|
+
if (value instanceof Secret) returnedValue[key] = value.getMasked();
|
|
145
|
+
}
|
|
146
|
+
_debugRequest.data = returnedValue;
|
|
147
|
+
}
|
|
148
|
+
|
|
139
149
|
if (request.data instanceof Secret) {
|
|
140
150
|
_debugRequest.data = '*****';
|
|
141
151
|
request.data = (typeof request.data === 'object' && !(request.data instanceof Secret)) ? { ...request.data.toString() } : request.data.toString();
|
|
@@ -198,7 +208,7 @@ class REST extends Helper {
|
|
|
198
208
|
* ```
|
|
199
209
|
*
|
|
200
210
|
* @param {*} url
|
|
201
|
-
* @param {object} [headers={}] - the headers object to be sent. By default it is sent as an empty object
|
|
211
|
+
* @param {object} [headers={}] - the headers object to be sent. By default, it is sent as an empty object
|
|
202
212
|
*
|
|
203
213
|
* @returns {Promise<*>} response
|
|
204
214
|
*/
|
|
@@ -222,8 +232,8 @@ class REST extends Helper {
|
|
|
222
232
|
* ```
|
|
223
233
|
*
|
|
224
234
|
* @param {*} url
|
|
225
|
-
* @param {*} [payload={}] - the payload to be sent. By default it is sent as an empty object
|
|
226
|
-
* @param {object} [headers={}] - the headers object to be sent. By default it is sent as an empty object
|
|
235
|
+
* @param {*} [payload={}] - the payload to be sent. By default, it is sent as an empty object
|
|
236
|
+
* @param {object} [headers={}] - the headers object to be sent. By default, it is sent as an empty object
|
|
227
237
|
*
|
|
228
238
|
* @returns {Promise<*>} response
|
|
229
239
|
*/
|
|
@@ -317,7 +327,7 @@ class REST extends Helper {
|
|
|
317
327
|
* ```
|
|
318
328
|
*
|
|
319
329
|
* @param {*} url
|
|
320
|
-
* @param {object} [headers={}] - the headers object to be sent. By default it is sent as an empty object
|
|
330
|
+
* @param {object} [headers={}] - the headers object to be sent. By default, it is sent as an empty object
|
|
321
331
|
*
|
|
322
332
|
* @returns {Promise<*>} response
|
|
323
333
|
*/
|
package/lib/helper/TestCafe.js
CHANGED
|
@@ -20,7 +20,7 @@ const { urlEquals } = require('../assert/equal');
|
|
|
20
20
|
const { empty } = require('../assert/empty');
|
|
21
21
|
const { truth } = require('../assert/truth');
|
|
22
22
|
const {
|
|
23
|
-
xpathLocator,
|
|
23
|
+
xpathLocator, normalizeSpacesInString,
|
|
24
24
|
} = require('../utils');
|
|
25
25
|
const Locator = require('../locator');
|
|
26
26
|
|
|
@@ -346,6 +346,34 @@ class TestCafe extends Helper {
|
|
|
346
346
|
return this.t.resizeWindow(width, height).catch(mapError);
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
+
/**
|
|
350
|
+
* {{> focus }}
|
|
351
|
+
*
|
|
352
|
+
*/
|
|
353
|
+
async focus(locator) {
|
|
354
|
+
const els = await this._locate(locator);
|
|
355
|
+
await assertElementExists(els, locator, 'Element to focus');
|
|
356
|
+
const element = await els.nth(0);
|
|
357
|
+
|
|
358
|
+
const focusElement = ClientFunction(() => element().focus(), { boundTestRun: this.t, dependencies: { element } });
|
|
359
|
+
|
|
360
|
+
return focusElement();
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* {{> blur }}
|
|
365
|
+
*
|
|
366
|
+
*/
|
|
367
|
+
async blur(locator) {
|
|
368
|
+
const els = await this._locate(locator);
|
|
369
|
+
await assertElementExists(els, locator, 'Element to blur');
|
|
370
|
+
const element = await els.nth(0);
|
|
371
|
+
|
|
372
|
+
const blurElement = ClientFunction(() => element().blur(), { boundTestRun: this.t, dependencies: { element } });
|
|
373
|
+
|
|
374
|
+
return blurElement();
|
|
375
|
+
}
|
|
376
|
+
|
|
349
377
|
/**
|
|
350
378
|
* {{> click }}
|
|
351
379
|
*
|
|
@@ -410,7 +438,7 @@ class TestCafe extends Helper {
|
|
|
410
438
|
const el = await els.nth(0);
|
|
411
439
|
|
|
412
440
|
return this.t
|
|
413
|
-
.typeText(el, value, { replace: false })
|
|
441
|
+
.typeText(el, value.toString(), { replace: false })
|
|
414
442
|
.catch(mapError);
|
|
415
443
|
}
|
|
416
444
|
|
|
@@ -609,9 +637,9 @@ class TestCafe extends Helper {
|
|
|
609
637
|
async see(text, context = null) {
|
|
610
638
|
let els;
|
|
611
639
|
if (context) {
|
|
612
|
-
els = (await findElements.call(this, this.context, context)).withText(text);
|
|
640
|
+
els = (await findElements.call(this, this.context, context)).withText(normalizeSpacesInString(text));
|
|
613
641
|
} else {
|
|
614
|
-
els = (await findElements.call(this, this.context, '*')).withText(text);
|
|
642
|
+
els = (await findElements.call(this, this.context, '*')).withText(normalizeSpacesInString(text));
|
|
615
643
|
}
|
|
616
644
|
|
|
617
645
|
return this.t
|
|
@@ -699,13 +727,14 @@ class TestCafe extends Helper {
|
|
|
699
727
|
* {{> seeInField }}
|
|
700
728
|
*/
|
|
701
729
|
async seeInField(field, value) {
|
|
730
|
+
const _value = (typeof value === 'boolean') ? value : value.toString();
|
|
702
731
|
// const expectedValue = findElements.call(this, this.context, field).value;
|
|
703
732
|
const els = await findFields.call(this, field);
|
|
704
733
|
assertElementExists(els, field, 'Field');
|
|
705
734
|
const el = await els.nth(0);
|
|
706
735
|
|
|
707
736
|
return this.t
|
|
708
|
-
.expect(await el.value).eql(
|
|
737
|
+
.expect(await el.value).eql(_value)
|
|
709
738
|
.catch(mapError);
|
|
710
739
|
}
|
|
711
740
|
|
|
@@ -713,13 +742,14 @@ class TestCafe extends Helper {
|
|
|
713
742
|
* {{> dontSeeInField }}
|
|
714
743
|
*/
|
|
715
744
|
async dontSeeInField(field, value) {
|
|
745
|
+
const _value = (typeof value === 'boolean') ? value : value.toString();
|
|
716
746
|
// const expectedValue = findElements.call(this, this.context, field).value;
|
|
717
747
|
const els = await findFields.call(this, field);
|
|
718
748
|
assertElementExists(els, field, 'Field');
|
|
719
749
|
const el = await els.nth(0);
|
|
720
750
|
|
|
721
751
|
return this.t
|
|
722
|
-
.expect(el.value).notEql(
|
|
752
|
+
.expect(el.value).notEql(_value)
|
|
723
753
|
.catch(mapError);
|
|
724
754
|
}
|
|
725
755
|
|
|
@@ -792,7 +822,7 @@ class TestCafe extends Helper {
|
|
|
792
822
|
/**
|
|
793
823
|
* {{> executeScript }}
|
|
794
824
|
*
|
|
795
|
-
* If a function returns a Promise It will wait for
|
|
825
|
+
* If a function returns a Promise It will wait for its resolution.
|
|
796
826
|
*/
|
|
797
827
|
async executeScript(fn, ...args) {
|
|
798
828
|
const browserFn = createClientFunction(fn, args).with({ boundTestRun: this.t });
|
|
@@ -932,8 +962,11 @@ class TestCafe extends Helper {
|
|
|
932
962
|
const body = document.body;
|
|
933
963
|
const html = document.documentElement;
|
|
934
964
|
window.scrollTo(0, Math.max(
|
|
935
|
-
body.scrollHeight,
|
|
936
|
-
|
|
965
|
+
body.scrollHeight,
|
|
966
|
+
body.offsetHeight,
|
|
967
|
+
html.clientHeight,
|
|
968
|
+
html.scrollHeight,
|
|
969
|
+
html.offsetHeight,
|
|
937
970
|
));
|
|
938
971
|
}).with({ boundTestRun: this.t })().catch(mapError);
|
|
939
972
|
}
|
|
@@ -1192,7 +1225,9 @@ class TestCafe extends Helper {
|
|
|
1192
1225
|
}
|
|
1193
1226
|
|
|
1194
1227
|
async function waitForFunction(browserFn, waitTimeout) {
|
|
1195
|
-
const pause = () => new Promise((done =>
|
|
1228
|
+
const pause = () => new Promise((done => {
|
|
1229
|
+
setTimeout(done, 50);
|
|
1230
|
+
}));
|
|
1196
1231
|
|
|
1197
1232
|
const start = Date.now();
|
|
1198
1233
|
// eslint-disable-next-line no-constant-condition
|