codeceptjs 3.7.0-beta.4 → 3.7.0-beta.5
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 +9 -10
- package/bin/codecept.js +7 -0
- package/lib/actor.js +47 -92
- package/lib/command/check.js +173 -0
- package/lib/command/definitions.js +2 -0
- package/lib/command/run-workers.js +1 -1
- package/lib/command/workers/runTests.js +112 -109
- package/lib/container.js +9 -0
- package/lib/effects.js +123 -0
- package/lib/heal.js +10 -0
- package/lib/helper/Appium.js +27 -16
- package/lib/helper/Playwright.js +15 -0
- package/lib/helper/Puppeteer.js +5 -0
- package/lib/helper/WebDriver.js +9 -1
- package/lib/listener/emptyRun.js +2 -5
- package/lib/listener/globalTimeout.js +15 -3
- package/lib/listener/steps.js +3 -0
- package/lib/mocha/cli.js +22 -5
- package/lib/mocha/featureConfig.js +13 -0
- package/lib/mocha/scenarioConfig.js +11 -0
- package/lib/mocha/test.js +15 -0
- package/lib/mocha/types.d.ts +6 -0
- package/lib/output.js +74 -73
- package/lib/pause.js +3 -7
- package/lib/plugin/heal.js +30 -0
- package/lib/plugin/stepTimeout.js +1 -1
- package/lib/recorder.js +1 -1
- package/lib/step/base.js +180 -0
- package/lib/step/config.js +50 -0
- package/lib/step/helper.js +47 -0
- package/lib/step/meta.js +91 -0
- package/lib/step/record.js +74 -0
- package/lib/step/retry.js +11 -0
- package/lib/step/timeout.js +42 -0
- package/lib/step.js +15 -348
- package/lib/steps.js +23 -0
- package/lib/store.js +2 -0
- package/lib/utils.js +58 -0
- package/lib/within.js +2 -2
- package/lib/workers.js +2 -12
- package/package.json +7 -5
- package/typings/index.d.ts +5 -4
- package/typings/promiseBasedTypes.d.ts +12 -0
- package/typings/types.d.ts +12 -0
package/lib/within.js
CHANGED
|
@@ -3,7 +3,7 @@ const store = require('./store')
|
|
|
3
3
|
const recorder = require('./recorder')
|
|
4
4
|
const container = require('./container')
|
|
5
5
|
const event = require('./event')
|
|
6
|
-
const
|
|
6
|
+
const MetaStep = require('./step/meta')
|
|
7
7
|
const { isAsyncFunction } = require('./utils')
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -76,7 +76,7 @@ function within(context, fn) {
|
|
|
76
76
|
|
|
77
77
|
module.exports = within
|
|
78
78
|
|
|
79
|
-
class WithinStep extends
|
|
79
|
+
class WithinStep extends MetaStep {
|
|
80
80
|
constructor(locator, fn) {
|
|
81
81
|
super('Within')
|
|
82
82
|
this.args = [locator]
|
package/lib/workers.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
const path = require('path')
|
|
2
2
|
const mkdirp = require('mkdirp')
|
|
3
3
|
const { Worker } = require('worker_threads')
|
|
4
|
-
const {
|
|
5
|
-
Suite,
|
|
6
|
-
Test,
|
|
7
|
-
reporters: { Base },
|
|
8
|
-
} = require('mocha')
|
|
9
4
|
const { EventEmitter } = require('events')
|
|
10
5
|
const ms = require('ms')
|
|
11
6
|
const Codecept = require('./codecept')
|
|
@@ -17,6 +12,7 @@ const { replaceValueDeep, deepClone } = require('./utils')
|
|
|
17
12
|
const mainConfig = require('./config')
|
|
18
13
|
const output = require('./output')
|
|
19
14
|
const event = require('./event')
|
|
15
|
+
const { repackTestForWorkersTransport: repackTest } = require('./mocha/test')
|
|
20
16
|
const recorder = require('./recorder')
|
|
21
17
|
const runHook = require('./hooks')
|
|
22
18
|
const WorkerStorage = require('./workerStorage')
|
|
@@ -78,12 +74,6 @@ const simplifyObject = object => {
|
|
|
78
74
|
}, {})
|
|
79
75
|
}
|
|
80
76
|
|
|
81
|
-
const repackTest = test => {
|
|
82
|
-
test = Object.assign(new Test(test.title || '', () => {}), test)
|
|
83
|
-
test.parent = Object.assign(new Suite(test.parent.title), test.parent)
|
|
84
|
-
return test
|
|
85
|
-
}
|
|
86
|
-
|
|
87
77
|
const createWorkerObjects = (testGroups, config, testRoot, options, selectedRuns) => {
|
|
88
78
|
selectedRuns = options && options.all && config.multiple ? Object.keys(config.multiple) : selectedRuns
|
|
89
79
|
if (selectedRuns === undefined || !selectedRuns.length || config.multiple === undefined) {
|
|
@@ -459,7 +449,7 @@ class Workers extends EventEmitter {
|
|
|
459
449
|
}
|
|
460
450
|
|
|
461
451
|
_finishRun() {
|
|
462
|
-
event.dispatcher.emit(event.workers.after)
|
|
452
|
+
event.dispatcher.emit(event.workers.after, { tests: this.workers.map(worker => worker.tests) })
|
|
463
453
|
if (this.isFailed()) {
|
|
464
454
|
process.exitCode = 1
|
|
465
455
|
} else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeceptjs",
|
|
3
|
-
"version": "3.7.0-beta.
|
|
3
|
+
"version": "3.7.0-beta.5",
|
|
4
4
|
"description": "Supercharged End 2 End Testing Framework for NodeJS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"acceptance",
|
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
"main": "lib/index.js",
|
|
32
32
|
"exports": {
|
|
33
33
|
".": "./lib/index.js",
|
|
34
|
-
"./els": "./lib/els.js"
|
|
34
|
+
"./els": "./lib/els.js",
|
|
35
|
+
"./effects": "./lib/effects.js",
|
|
36
|
+
"./steps": "./lib/steps.js"
|
|
35
37
|
},
|
|
36
38
|
"types": "typings/index.d.ts",
|
|
37
39
|
"bin": {
|
|
@@ -114,14 +116,14 @@
|
|
|
114
116
|
"uuid": "11.0.4"
|
|
115
117
|
},
|
|
116
118
|
"optionalDependencies": {
|
|
117
|
-
"@codeceptjs/detox-helper": "1.1.
|
|
119
|
+
"@codeceptjs/detox-helper": "1.1.5"
|
|
118
120
|
},
|
|
119
121
|
"devDependencies": {
|
|
120
122
|
"@apollo/server": "^4",
|
|
121
123
|
"@codeceptjs/expect-helper": "^0.2.2",
|
|
122
124
|
"@codeceptjs/mock-request": "0.3.1",
|
|
123
125
|
"@eslint/eslintrc": "3.2.0",
|
|
124
|
-
"@eslint/js": "9.
|
|
126
|
+
"@eslint/js": "9.18.0",
|
|
125
127
|
"@faker-js/faker": "9.3.0",
|
|
126
128
|
"@pollyjs/adapter-puppeteer": "6.0.6",
|
|
127
129
|
"@pollyjs/core": "5.1.0",
|
|
@@ -166,7 +168,7 @@
|
|
|
166
168
|
"tsd-jsdoc": "2.5.0",
|
|
167
169
|
"typedoc": "0.27.6",
|
|
168
170
|
"typedoc-plugin-markdown": "4.4.1",
|
|
169
|
-
"typescript": "5.7.
|
|
171
|
+
"typescript": "5.7.3",
|
|
170
172
|
"wdio-docker-service": "1.5.0",
|
|
171
173
|
"webdriverio": "^9.5.1",
|
|
172
174
|
"xml2js": "0.6.2",
|
package/typings/index.d.ts
CHANGED
|
@@ -451,9 +451,6 @@ declare namespace CodeceptJS {
|
|
|
451
451
|
}
|
|
452
452
|
|
|
453
453
|
// Extending JSDoc generated typings
|
|
454
|
-
interface Step {
|
|
455
|
-
isMetaStep(): this is MetaStep
|
|
456
|
-
}
|
|
457
454
|
|
|
458
455
|
// Types who are not be defined by JSDoc
|
|
459
456
|
type actor = <T extends { [action: string]: (...args: any[]) => void }>(customSteps?: T & ThisType<WithTranslation<Methods & T>>) => WithTranslation<Methods & T>
|
|
@@ -502,7 +499,7 @@ declare namespace CodeceptJS {
|
|
|
502
499
|
(title: string, opts: { [key: string]: any }, callback: HookCallback): ScenarioConfig
|
|
503
500
|
}
|
|
504
501
|
interface IHook {
|
|
505
|
-
(callback: HookCallback):
|
|
502
|
+
(callback: HookCallback): HookConfig
|
|
506
503
|
}
|
|
507
504
|
|
|
508
505
|
interface Globals {
|
|
@@ -516,6 +513,10 @@ declare namespace CodeceptJS {
|
|
|
516
513
|
useForSnippets?: boolean
|
|
517
514
|
preferForRegexpMatch?: boolean
|
|
518
515
|
}
|
|
516
|
+
|
|
517
|
+
interface HookConfig {
|
|
518
|
+
retry(retries?: number): HookConfig
|
|
519
|
+
}
|
|
519
520
|
}
|
|
520
521
|
|
|
521
522
|
// Globals
|
|
@@ -1767,6 +1767,8 @@ declare namespace CodeceptJS {
|
|
|
1767
1767
|
// @ts-ignore
|
|
1768
1768
|
// @ts-ignore
|
|
1769
1769
|
// @ts-ignore
|
|
1770
|
+
// @ts-ignore
|
|
1771
|
+
// @ts-ignore
|
|
1770
1772
|
type MockServerConfig = {
|
|
1771
1773
|
port?: number;
|
|
1772
1774
|
host?: string;
|
|
@@ -1899,6 +1901,8 @@ declare namespace CodeceptJS {
|
|
|
1899
1901
|
// @ts-ignore
|
|
1900
1902
|
// @ts-ignore
|
|
1901
1903
|
// @ts-ignore
|
|
1904
|
+
// @ts-ignore
|
|
1905
|
+
// @ts-ignore
|
|
1902
1906
|
class MockServer {
|
|
1903
1907
|
/**
|
|
1904
1908
|
* Start the mock server
|
|
@@ -2940,6 +2944,8 @@ declare namespace CodeceptJS {
|
|
|
2940
2944
|
// @ts-ignore
|
|
2941
2945
|
// @ts-ignore
|
|
2942
2946
|
// @ts-ignore
|
|
2947
|
+
// @ts-ignore
|
|
2948
|
+
// @ts-ignore
|
|
2943
2949
|
type PlaywrightConfig = {
|
|
2944
2950
|
url?: string;
|
|
2945
2951
|
browser?: 'chromium' | 'firefox' | 'webkit' | 'electron';
|
|
@@ -6324,6 +6330,8 @@ declare namespace CodeceptJS {
|
|
|
6324
6330
|
// @ts-ignore
|
|
6325
6331
|
// @ts-ignore
|
|
6326
6332
|
// @ts-ignore
|
|
6333
|
+
// @ts-ignore
|
|
6334
|
+
// @ts-ignore
|
|
6327
6335
|
type PuppeteerConfig = {
|
|
6328
6336
|
url: string;
|
|
6329
6337
|
basicAuth?: any;
|
|
@@ -8138,6 +8146,8 @@ declare namespace CodeceptJS {
|
|
|
8138
8146
|
// @ts-ignore
|
|
8139
8147
|
// @ts-ignore
|
|
8140
8148
|
// @ts-ignore
|
|
8149
|
+
// @ts-ignore
|
|
8150
|
+
// @ts-ignore
|
|
8141
8151
|
type RESTConfig = {
|
|
8142
8152
|
endpoint?: string;
|
|
8143
8153
|
prettyPrintJson?: boolean;
|
|
@@ -9290,6 +9300,8 @@ declare namespace CodeceptJS {
|
|
|
9290
9300
|
// @ts-ignore
|
|
9291
9301
|
// @ts-ignore
|
|
9292
9302
|
// @ts-ignore
|
|
9303
|
+
// @ts-ignore
|
|
9304
|
+
// @ts-ignore
|
|
9293
9305
|
type WebDriverConfig = {
|
|
9294
9306
|
url: string;
|
|
9295
9307
|
browser: string;
|
package/typings/types.d.ts
CHANGED
|
@@ -1794,6 +1794,8 @@ declare namespace CodeceptJS {
|
|
|
1794
1794
|
// @ts-ignore
|
|
1795
1795
|
// @ts-ignore
|
|
1796
1796
|
// @ts-ignore
|
|
1797
|
+
// @ts-ignore
|
|
1798
|
+
// @ts-ignore
|
|
1797
1799
|
type MockServerConfig = {
|
|
1798
1800
|
port?: number;
|
|
1799
1801
|
host?: string;
|
|
@@ -1926,6 +1928,8 @@ declare namespace CodeceptJS {
|
|
|
1926
1928
|
// @ts-ignore
|
|
1927
1929
|
// @ts-ignore
|
|
1928
1930
|
// @ts-ignore
|
|
1931
|
+
// @ts-ignore
|
|
1932
|
+
// @ts-ignore
|
|
1929
1933
|
class MockServer {
|
|
1930
1934
|
/**
|
|
1931
1935
|
* Start the mock server
|
|
@@ -3033,6 +3037,8 @@ declare namespace CodeceptJS {
|
|
|
3033
3037
|
// @ts-ignore
|
|
3034
3038
|
// @ts-ignore
|
|
3035
3039
|
// @ts-ignore
|
|
3040
|
+
// @ts-ignore
|
|
3041
|
+
// @ts-ignore
|
|
3036
3042
|
type PlaywrightConfig = {
|
|
3037
3043
|
url?: string;
|
|
3038
3044
|
browser?: 'chromium' | 'firefox' | 'webkit' | 'electron';
|
|
@@ -6568,6 +6574,8 @@ declare namespace CodeceptJS {
|
|
|
6568
6574
|
// @ts-ignore
|
|
6569
6575
|
// @ts-ignore
|
|
6570
6576
|
// @ts-ignore
|
|
6577
|
+
// @ts-ignore
|
|
6578
|
+
// @ts-ignore
|
|
6571
6579
|
type PuppeteerConfig = {
|
|
6572
6580
|
url: string;
|
|
6573
6581
|
basicAuth?: any;
|
|
@@ -8518,6 +8526,8 @@ declare namespace CodeceptJS {
|
|
|
8518
8526
|
// @ts-ignore
|
|
8519
8527
|
// @ts-ignore
|
|
8520
8528
|
// @ts-ignore
|
|
8529
|
+
// @ts-ignore
|
|
8530
|
+
// @ts-ignore
|
|
8521
8531
|
type RESTConfig = {
|
|
8522
8532
|
endpoint?: string;
|
|
8523
8533
|
prettyPrintJson?: boolean;
|
|
@@ -9730,6 +9740,8 @@ declare namespace CodeceptJS {
|
|
|
9730
9740
|
// @ts-ignore
|
|
9731
9741
|
// @ts-ignore
|
|
9732
9742
|
// @ts-ignore
|
|
9743
|
+
// @ts-ignore
|
|
9744
|
+
// @ts-ignore
|
|
9733
9745
|
type WebDriverConfig = {
|
|
9734
9746
|
url: string;
|
|
9735
9747
|
browser: string;
|