@applitools/eyes-cypress 3.30.2 → 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 CHANGED
@@ -12,6 +12,13 @@
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
+
15
22
  ## 3.30.2 - 2023/3/28
16
23
 
17
24
  ### Features
@@ -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: [...configParams_1.default, 'failCypressOnDiff', 'tapDirPath', 'tapFileName', 'disableBrowserFetching', 'testConcurrency'],
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
  }
@@ -43,5 +43,6 @@ const configParams = [
43
43
  'notifyOnCompletion',
44
44
  'batchNotify',
45
45
  'dontCloseBatches',
46
+ 'removeDuplicateTests',
46
47
  ];
47
48
  exports.default = configParams;
@@ -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 }),
@@ -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', { manager, settings: { throwErr: false } })));
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.30.2",
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.3",
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",
@@ -87,7 +87,7 @@
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.14",
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",
@@ -22,9 +22,12 @@ let manager,
22
22
  async function getSummary() {
23
23
  if (_summary) return _summary
24
24
  await Promise.all(closePromiseArr)
25
- _summary = socket.request('EyesManager.getResults', {manager, settings: {throwErr}}).catch(err => {
26
- return {results: [{result: err.info.result}]}
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
- 'Core.makeManager',
132
- Object.assign({}, {concurrency: Cypress.config('eyesTestConcurrency')}, {type: 'ufg'}),
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')
@@ -49,6 +49,8 @@ function eyesCheckMapValues({openToCheckSettingsArgs, args, refer, appliConfFile
49
49
  accessibilityRegions: convertAccessabilityRegions(args.accessibility),
50
50
  renderers,
51
51
  }
52
+ if (appliConfFile.disableBrowserFetching)
53
+ checkSettings.disableBrowserFetching = !!appliConfFile.disableBrowserFetching
52
54
  if (args.variationGroupId) {
53
55
  checkSettings.userCommandId = args.variationGroupId
54
56
  }
@@ -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: [...configParams, 'failCypressOnDiff', 'tapDirPath', 'tapFileName', 'disableBrowserFetching', 'testConcurrency'],
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}
@@ -41,6 +41,7 @@ const configParams = [
41
41
  'notifyOnCompletion',
42
42
  'batchNotify',
43
43
  'dontCloseBatches',
44
+ 'removeDuplicateTests',
44
45
  ]
45
46
 
46
47
  export default configParams
@@ -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,
@@ -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', {manager, settings: {throwErr: false}}),
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;