@applitools/eyes-cypress 3.30.1 → 3.31.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/CHANGELOG.md +13 -0
- package/dist/plugin/config.js +10 -1
- package/dist/plugin/configParams.js +1 -0
- package/dist/plugin/index.js +1 -1
- package/dist/plugin/server.js +5 -2
- package/package.json +4 -4
- package/src/browser/commands.js +10 -7
- package/src/browser/eyesCheckMapping.js +9 -0
- package/src/plugin/config.ts +10 -1
- package/src/plugin/configParams.ts +1 -0
- package/src/plugin/index.ts +2 -1
- package/src/plugin/server.ts +6 -2
- package/types/expose.d.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,19 @@
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
## 3.31.0 - 2023/4/4
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
- Added `removeDuplicateTests` configuration to remove duplicated tests in the runner at the end of execution
|
|
19
|
+
### Bug fixes
|
|
20
|
+
- disableBrowserFetching change from open to check
|
|
21
|
+
|
|
22
|
+
## 3.30.2 - 2023/3/28
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
### Bug fixes
|
|
26
|
+
- map visualGridOptions to ufgOptions
|
|
27
|
+
|
|
15
28
|
## 3.30.1 - 2023/3/22
|
|
16
29
|
|
|
17
30
|
### Features
|
package/dist/plugin/config.js
CHANGED
|
@@ -32,7 +32,15 @@ const DEFAULT_TEST_CONCURRENCY = 5;
|
|
|
32
32
|
const uuid = __importStar(require("uuid"));
|
|
33
33
|
function makeConfig() {
|
|
34
34
|
const config = utils.config.getConfig({
|
|
35
|
-
params: [
|
|
35
|
+
params: [
|
|
36
|
+
...configParams_1.default,
|
|
37
|
+
'failCypressOnDiff',
|
|
38
|
+
'tapDirPath',
|
|
39
|
+
'tapFileName',
|
|
40
|
+
'disableBrowserFetching',
|
|
41
|
+
'testConcurrency',
|
|
42
|
+
'removeDuplicateTests',
|
|
43
|
+
],
|
|
36
44
|
});
|
|
37
45
|
if ((!config.batch || !config.batch.id) && !config.batchId) {
|
|
38
46
|
config.batch = { id: uuid.v4(), ...config.batch };
|
|
@@ -60,6 +68,7 @@ function makeConfig() {
|
|
|
60
68
|
eyesDisableBrowserFetching: !!config.disableBrowserFetching,
|
|
61
69
|
eyesTestConcurrency: config.testConcurrency || DEFAULT_TEST_CONCURRENCY,
|
|
62
70
|
eyesWaitBeforeCapture: config.waitBeforeCapture,
|
|
71
|
+
eyesRemoveDuplicateTests: !!config.removeDuplicateTests,
|
|
63
72
|
};
|
|
64
73
|
return { config, eyesConfig };
|
|
65
74
|
}
|
package/dist/plugin/index.js
CHANGED
|
@@ -9,7 +9,7 @@ const server_1 = __importDefault(require("./server"));
|
|
|
9
9
|
const logger_1 = require("@applitools/logger");
|
|
10
10
|
const { config, eyesConfig } = (0, config_1.default)();
|
|
11
11
|
const logger = (0, logger_1.makeLogger)({ level: config.showLogs ? 'info' : 'silent', label: 'eyes' });
|
|
12
|
-
const startServer = (0, server_1.default)({ logger });
|
|
12
|
+
const startServer = (0, server_1.default)({ logger, eyesConfig });
|
|
13
13
|
const pluginExport = (0, pluginExport_1.default)({
|
|
14
14
|
startServer,
|
|
15
15
|
eyesConfig: Object.assign({}, eyesConfig, { appliConfFile: config }),
|
package/dist/plugin/server.js
CHANGED
|
@@ -13,7 +13,7 @@ const https_1 = require("https");
|
|
|
13
13
|
const ws_1 = require("ws");
|
|
14
14
|
const which_1 = __importDefault(require("which"));
|
|
15
15
|
const util_1 = require("util");
|
|
16
|
-
function makeStartServer({ logger }) {
|
|
16
|
+
function makeStartServer({ logger, eyesConfig }) {
|
|
17
17
|
return async function startServer(options) {
|
|
18
18
|
const key = fs_1.default.readFileSync(path_1.default.resolve(__dirname, '../../src/pem/server.key'));
|
|
19
19
|
const cert = fs_1.default.readFileSync(path_1.default.resolve(__dirname, '../../src/pem/server.cert'));
|
|
@@ -103,7 +103,10 @@ function makeStartServer({ logger }) {
|
|
|
103
103
|
closeUniversalServer,
|
|
104
104
|
};
|
|
105
105
|
function closeManager() {
|
|
106
|
-
return Promise.all(managers.map(({ manager, socketWithUniversal }) => socketWithUniversal.request('EyesManager.getResults', {
|
|
106
|
+
return Promise.all(managers.map(({ manager, socketWithUniversal }) => socketWithUniversal.request('EyesManager.getResults', {
|
|
107
|
+
manager,
|
|
108
|
+
settings: { throwErr: false, removeDuplicateTests: eyesConfig.eyesRemoveDuplicateTests },
|
|
109
|
+
})));
|
|
107
110
|
}
|
|
108
111
|
function closeBatches(settings) {
|
|
109
112
|
if (socketWithUniversal)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/eyes-cypress",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.31.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git://github.com/applitools/eyes.sdk.javascript1.git",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@applitools/core": "2.4.
|
|
72
|
+
"@applitools/core": "2.4.7",
|
|
73
73
|
"@applitools/eyes-api": "1.13.12",
|
|
74
74
|
"@applitools/functional-commons": "1.6.0",
|
|
75
75
|
"@applitools/logger": "1.1.48",
|
|
@@ -83,11 +83,11 @@
|
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
85
|
"@applitools/api-extractor": "^1.2.12",
|
|
86
|
-
"@applitools/bongo": "^3.0.
|
|
86
|
+
"@applitools/bongo": "^3.0.3",
|
|
87
87
|
"@applitools/sdk-coverage-tests": "^3.0.0",
|
|
88
88
|
"@applitools/snaptdout": "1.0.1",
|
|
89
89
|
"@applitools/test-server": "1.1.28",
|
|
90
|
-
"@applitools/test-utils": "1.5.
|
|
90
|
+
"@applitools/test-utils": "1.5.15",
|
|
91
91
|
"@types/node": "12",
|
|
92
92
|
"@types/semver": "^7.3.13",
|
|
93
93
|
"@types/uuid": "^9.0.0",
|
package/src/browser/commands.js
CHANGED
|
@@ -22,9 +22,12 @@ let manager,
|
|
|
22
22
|
async function getSummary() {
|
|
23
23
|
if (_summary) return _summary
|
|
24
24
|
await Promise.all(closePromiseArr)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
const removeDuplicateTests = Cypress.config('eyesRemoveDuplicateTests')
|
|
26
|
+
_summary = socket
|
|
27
|
+
.request('EyesManager.getResults', {manager, settings: {throwErr, removeDuplicateTests}})
|
|
28
|
+
.catch(err => {
|
|
29
|
+
return {results: [{result: err.info.result}]}
|
|
30
|
+
})
|
|
28
31
|
_summary = await _summary
|
|
29
32
|
|
|
30
33
|
return _summary
|
|
@@ -127,10 +130,10 @@ Cypress.Commands.add('eyesOpen', function (args = {}) {
|
|
|
127
130
|
|
|
128
131
|
manager =
|
|
129
132
|
manager ||
|
|
130
|
-
(await socket.request(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
))
|
|
133
|
+
(await socket.request('Core.makeManager', {
|
|
134
|
+
concurrency: Cypress.config('eyesTestConcurrency'),
|
|
135
|
+
type: 'ufg',
|
|
136
|
+
}))
|
|
134
137
|
}
|
|
135
138
|
|
|
136
139
|
const appliConfFile = Cypress.config('appliConfFile')
|
|
@@ -19,6 +19,9 @@ function eyesCheckMapValues({openToCheckSettingsArgs, args, refer, appliConfFile
|
|
|
19
19
|
'region',
|
|
20
20
|
'selector',
|
|
21
21
|
'element',
|
|
22
|
+
'variationGroupId',
|
|
23
|
+
'accessibilitySettings',
|
|
24
|
+
'visualGridOptions',
|
|
22
25
|
]
|
|
23
26
|
|
|
24
27
|
let regionSettings = {}
|
|
@@ -46,6 +49,8 @@ function eyesCheckMapValues({openToCheckSettingsArgs, args, refer, appliConfFile
|
|
|
46
49
|
accessibilityRegions: convertAccessabilityRegions(args.accessibility),
|
|
47
50
|
renderers,
|
|
48
51
|
}
|
|
52
|
+
if (appliConfFile.disableBrowserFetching)
|
|
53
|
+
checkSettings.disableBrowserFetching = !!appliConfFile.disableBrowserFetching
|
|
49
54
|
if (args.variationGroupId) {
|
|
50
55
|
checkSettings.userCommandId = args.variationGroupId
|
|
51
56
|
}
|
|
@@ -53,6 +58,10 @@ function eyesCheckMapValues({openToCheckSettingsArgs, args, refer, appliConfFile
|
|
|
53
58
|
checkSettings.accessibilitySettings = accessibilitySettings
|
|
54
59
|
}
|
|
55
60
|
|
|
61
|
+
if (args.visualGridOptions) {
|
|
62
|
+
checkSettings.ufgOptions = args.visualGridOptions
|
|
63
|
+
}
|
|
64
|
+
|
|
56
65
|
if (args.target === 'region') {
|
|
57
66
|
if (!Array.isArray(args.selector)) {
|
|
58
67
|
if (args.element) {
|
package/src/plugin/config.ts
CHANGED
|
@@ -6,7 +6,15 @@ import {type EyesPluginConfig} from './'
|
|
|
6
6
|
|
|
7
7
|
export default function makeConfig(): {config: any; eyesConfig: EyesPluginConfig} {
|
|
8
8
|
const config = utils.config.getConfig({
|
|
9
|
-
params: [
|
|
9
|
+
params: [
|
|
10
|
+
...configParams,
|
|
11
|
+
'failCypressOnDiff',
|
|
12
|
+
'tapDirPath',
|
|
13
|
+
'tapFileName',
|
|
14
|
+
'disableBrowserFetching',
|
|
15
|
+
'testConcurrency',
|
|
16
|
+
'removeDuplicateTests',
|
|
17
|
+
],
|
|
10
18
|
})
|
|
11
19
|
|
|
12
20
|
if ((!config.batch || !config.batch.id) && !config.batchId) {
|
|
@@ -40,6 +48,7 @@ export default function makeConfig(): {config: any; eyesConfig: EyesPluginConfig
|
|
|
40
48
|
eyesDisableBrowserFetching: !!config.disableBrowserFetching,
|
|
41
49
|
eyesTestConcurrency: config.testConcurrency || DEFAULT_TEST_CONCURRENCY,
|
|
42
50
|
eyesWaitBeforeCapture: config.waitBeforeCapture,
|
|
51
|
+
eyesRemoveDuplicateTests: !!config.removeDuplicateTests,
|
|
43
52
|
}
|
|
44
53
|
|
|
45
54
|
return {config, eyesConfig}
|
package/src/plugin/index.ts
CHANGED
|
@@ -23,12 +23,13 @@ export type EyesPluginConfig = {
|
|
|
23
23
|
eyesWaitBeforeCapture: number
|
|
24
24
|
eyesPort?: number
|
|
25
25
|
eyesIsGlobalHooksSupported?: boolean
|
|
26
|
+
eyesRemoveDuplicateTests?: boolean
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
const {config, eyesConfig} = makeConfig()
|
|
29
30
|
const logger = makeLogger({level: config.showLogs ? 'info' : 'silent', label: 'eyes'})
|
|
30
31
|
|
|
31
|
-
const startServer = makeStartServer({logger})
|
|
32
|
+
const startServer = makeStartServer({logger, eyesConfig})
|
|
32
33
|
|
|
33
34
|
const pluginExport = makePluginExport({
|
|
34
35
|
startServer,
|
package/src/plugin/server.ts
CHANGED
|
@@ -10,6 +10,7 @@ import which from 'which'
|
|
|
10
10
|
import {type Logger} from '@applitools/logger'
|
|
11
11
|
import {AddressInfo} from 'net'
|
|
12
12
|
import {promisify} from 'util'
|
|
13
|
+
import {EyesPluginConfig} from './index'
|
|
13
14
|
export type StartServerReturn = {
|
|
14
15
|
server: Omit<SocketWithUniversal, 'disconnect' | 'ref' | 'unref' | 'send' | 'request' | 'setPassthroughListener'>
|
|
15
16
|
port: number
|
|
@@ -18,7 +19,7 @@ export type StartServerReturn = {
|
|
|
18
19
|
closeUniversalServer: () => void
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
export default function makeStartServer({logger}: {logger: Logger}) {
|
|
22
|
+
export default function makeStartServer({logger, eyesConfig}: {logger: Logger; eyesConfig: EyesPluginConfig}) {
|
|
22
23
|
return async function startServer(options?: Cypress.PluginConfigOptions): Promise<StartServerReturn> {
|
|
23
24
|
const key = fs.readFileSync(path.resolve(__dirname, '../../src/pem/server.key'))
|
|
24
25
|
const cert = fs.readFileSync(path.resolve(__dirname, '../../src/pem/server.cert'))
|
|
@@ -142,7 +143,10 @@ export default function makeStartServer({logger}: {logger: Logger}) {
|
|
|
142
143
|
function closeManager() {
|
|
143
144
|
return Promise.all(
|
|
144
145
|
managers.map(({manager, socketWithUniversal}) =>
|
|
145
|
-
socketWithUniversal.request('EyesManager.getResults', {
|
|
146
|
+
socketWithUniversal.request('EyesManager.getResults', {
|
|
147
|
+
manager,
|
|
148
|
+
settings: {throwErr: false, removeDuplicateTests: eyesConfig.eyesRemoveDuplicateTests},
|
|
149
|
+
}),
|
|
146
150
|
),
|
|
147
151
|
)
|
|
148
152
|
}
|
package/types/expose.d.ts
CHANGED
|
@@ -538,6 +538,7 @@ export type EyesPluginConfig = {
|
|
|
538
538
|
eyesWaitBeforeCapture: number;
|
|
539
539
|
eyesPort?: number;
|
|
540
540
|
eyesIsGlobalHooksSupported?: boolean;
|
|
541
|
+
eyesRemoveDuplicateTests?: boolean;
|
|
541
542
|
};
|
|
542
543
|
declare const _default: (pluginInitArgs: Cypress.ConfigOptions | NodeJS.Module) => Cypress.ConfigOptions | NodeJS.Module | (() => Promise<void>);
|
|
543
544
|
export default _default;
|