@applitools/eyes-testcafe 1.15.0 → 1.15.1

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
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 1.15.1 - 2022/1/13
6
+
7
+ - set failTestcafeOnDiff default value to true
8
+ - updated to @applitools/eyes-api@1.1.6 (from 1.1.0)
9
+ - updated to @applitools/eyes-sdk-core@12.24.9 (from 12.23.3)
10
+ - updated to @applitools/utils@1.2.11 (from 1.2.2)
11
+ - updated to @applitools/visual-grid-client@15.8.55 (from 15.8.24)
12
+ - updated to @applitools/eyes-sdk-core@12.24.13 (from 12.24.9)
13
+ - updated to @applitools/visual-grid-client@15.8.60 (from 15.8.55)
5
14
 
6
15
  ## 1.15.0 - 2021/9/6
7
16
 
package/dist/api.js CHANGED
@@ -6,25 +6,37 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
6
6
  if (k2 === undefined) k2 = k;
7
7
  o[k2] = m[k];
8
8
  }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
9
21
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
22
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
23
  };
12
24
  Object.defineProperty(exports, "__esModule", { value: true });
13
25
  exports.BatchClose = exports.Target = exports.CheckSettings = exports.Configuration = exports.Eyes = void 0;
14
26
  const eyes_sdk_core_1 = require("@applitools/eyes-sdk-core");
15
- const api = require("@applitools/eyes-api");
16
- const spec = require("./spec-driver");
17
- const legacy = require("./legacy");
27
+ const api = __importStar(require("@applitools/eyes-api"));
28
+ const legacy = __importStar(require("./legacy"));
29
+ const spec = __importStar(require("./spec-driver"));
18
30
  process.env.APPLITOOLS_SCRIPT_RESULT_MAX_BYTE_LENGTH = '4718592';
19
31
  process.env.APPLITOOLS_SCRIPT_REMOVE_REVERSE_PROXY_URL_PREFIXES = 'true';
20
- const sdk = eyes_sdk_core_1.makeSDK({
32
+ const sdk = (0, eyes_sdk_core_1.makeSDK)({
21
33
  name: 'eyes.webdriverio',
22
34
  version: require('../package.json').version,
23
35
  spec,
24
36
  VisualGridClient: require('@applitools/visual-grid-client'),
25
37
  });
26
38
  __exportStar(require("@applitools/eyes-api"), exports);
27
- class Eyes extends legacy.TestCafeEyes(api.Eyes) {
39
+ class Eyes extends legacy.LegacyTestCafeEyesMixin(api.Eyes) {
28
40
  }
29
41
  exports.Eyes = Eyes;
30
42
  Eyes._spec = sdk;
@@ -41,4 +53,3 @@ class BatchClose extends api.BatchClose {
41
53
  }
42
54
  exports.BatchClose = BatchClose;
43
55
  BatchClose._spec = sdk;
44
- //# sourceMappingURL=api.js.map
@@ -2,4 +2,3 @@
2
2
  const index_1 = require("./index");
3
3
  index_1.Eyes.default = index_1.Eyes;
4
4
  module.exports = index_1.Eyes;
5
- //# sourceMappingURL=index-legacy.js.map
package/dist/index.js CHANGED
@@ -13,4 +13,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const api_1 = require("./api");
14
14
  __exportStar(require("./api"), exports);
15
15
  exports.default = api_1.Eyes;
16
- //# sourceMappingURL=index.js.map
package/dist/legacy.js CHANGED
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __rest = (this && this.__rest) || function (s, e) {
3
22
  var t = {};
4
23
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -11,21 +30,22 @@ var __rest = (this && this.__rest) || function (s, e) {
11
30
  return t;
12
31
  };
13
32
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.transformCheckSettings = exports.transformConfig = exports.TestCafeEyes = void 0;
15
- const utils = require("@applitools/utils");
16
- const api = require("@applitools/eyes-api");
17
- const fs = require("fs");
18
- const path = require("path");
19
- const spec = require("./spec-driver");
33
+ exports.transformCheckSettings = exports.transformConfig = exports.LegacyTestCafeEyesMixin = void 0;
34
+ const utils = __importStar(require("@applitools/utils"));
35
+ const api = __importStar(require("@applitools/eyes-api"));
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ const spec = __importStar(require("./spec-driver"));
20
39
  const eyes_sdk_core_1 = require("@applitools/eyes-sdk-core");
21
- function TestCafeEyes(Eyes) {
40
+ function LegacyTestCafeEyesMixin(Eyes) {
22
41
  return class TestCafeEyes extends Eyes {
23
42
  constructor(runnerOrConfigOrOptions, configOrRunner) {
24
- var _a, _b, _c;
43
+ var _a, _b, _c, _d;
25
44
  if (utils.types.isNull(runnerOrConfigOrOptions) || utils.types.has(runnerOrConfigOrOptions, 'configPath')) {
26
45
  const testcafeConfig = eyes_sdk_core_1.ConfigUtils.getConfig({ configPath: runnerOrConfigOrOptions === null || runnerOrConfigOrOptions === void 0 ? void 0 : runnerOrConfigOrOptions.configPath });
27
46
  const runner = (_a = runnerOrConfigOrOptions === null || runnerOrConfigOrOptions === void 0 ? void 0 : runnerOrConfigOrOptions.runner) !== null && _a !== void 0 ? _a : new api.VisualGridRunner({ testConcurrency: (_c = (_b = testcafeConfig.concurrency) !== null && _b !== void 0 ? _b : testcafeConfig.testConcurrency) !== null && _c !== void 0 ? _c : 1 });
28
47
  super(runner, transformConfig(testcafeConfig));
48
+ (_d = testcafeConfig.failTestcafeOnDiff) !== null && _d !== void 0 ? _d : (testcafeConfig.failTestcafeOnDiff = true);
29
49
  this._testcafeConfig = testcafeConfig;
30
50
  }
31
51
  else {
@@ -75,7 +95,7 @@ function TestCafeEyes(Eyes) {
75
95
  }
76
96
  };
77
97
  }
78
- exports.TestCafeEyes = TestCafeEyes;
98
+ exports.LegacyTestCafeEyesMixin = LegacyTestCafeEyesMixin;
79
99
  function transformConfig(options) {
80
100
  const config = Object.assign({}, options);
81
101
  if (options.concurrency)
@@ -182,4 +202,3 @@ function transformCheckSettings(options) {
182
202
  return settings;
183
203
  }
184
204
  exports.transformCheckSettings = transformCheckSettings;
185
- //# sourceMappingURL=legacy.js.map
@@ -1,9 +1,28 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.build = exports.waitUntilDisplayed = exports.scrollIntoView = exports.hover = exports.type = exports.click = exports.takeScreenshot = exports.visit = exports.getUrl = exports.getTitle = exports.setViewportSize = exports.getElementRect = exports.findElements = exports.findElement = exports.childContext = exports.mainContext = exports.executeScript = exports.isEqualElements = exports.isStaleElementError = exports.extractSelector = exports.transformElement = exports.isSelector = exports.isElement = exports.isDriver = void 0;
4
- const utils = require("@applitools/utils");
5
- const testcafe = require("testcafe");
6
- const fs = require("fs");
22
+ exports.build = exports.waitUntilDisplayed = exports.scrollIntoView = exports.hover = exports.type = exports.click = exports.takeScreenshot = exports.visit = exports.getUrl = exports.getTitle = exports.getDriverInfo = exports.setViewportSize = exports.findElements = exports.findElement = exports.childContext = exports.mainContext = exports.executeScript = exports.isStaleElementError = exports.extractSelector = exports.transformSelector = exports.transformElement = exports.isSelector = exports.isElement = exports.isDriver = void 0;
23
+ const testcafe = __importStar(require("testcafe"));
24
+ const fs = __importStar(require("fs"));
25
+ const utils = __importStar(require("@applitools/utils"));
7
26
  function XPathSelector(selector, options) {
8
27
  const getElementsByXPath = testcafe.Selector(xpath => {
9
28
  const iterator = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
@@ -17,14 +36,6 @@ function XPathSelector(selector, options) {
17
36
  }, options);
18
37
  return testcafe.Selector(getElementsByXPath(selector), options);
19
38
  }
20
- function transformSelector(selector) {
21
- if (utils.types.has(selector, 'selector')) {
22
- if (selector.type === 'xpath')
23
- return XPathSelector(selector.selector);
24
- return testcafe.Selector(selector.selector);
25
- }
26
- return testcafe.Selector(selector);
27
- }
28
39
  function deserializeResult(result, elements) {
29
40
  if (!result) {
30
41
  return result;
@@ -122,16 +133,26 @@ exports.isElement = isElement;
122
133
  function isSelector(selector) {
123
134
  if (!selector)
124
135
  return;
125
- return (utils.types.has(selector, ['type', 'selector']) ||
126
- utils.types.isString(selector) ||
127
- Boolean(selector.addCustomMethods && selector.find && selector.parent) ||
128
- (utils.types.has(selector, ['selector']) && isSelector(selector.selector) && selector.constructor.name === 'Object'));
136
+ return Boolean(selector.addCustomMethods && selector.find && selector.parent);
129
137
  }
130
138
  exports.isSelector = isSelector;
131
139
  function transformElement(element) {
132
140
  return utils.types.isFunction(element.selector) ? element.selector : element;
133
141
  }
134
142
  exports.transformElement = transformElement;
143
+ function transformSelector(selector) {
144
+ if (utils.types.has(selector, 'selector')) {
145
+ let current = selector;
146
+ let transformed = selector.type === 'xpath' ? XPathSelector(current.selector) : testcafe.Selector(current.selector);
147
+ while (current.shadow) {
148
+ current = utils.types.has(current.shadow, 'selector') ? current.shadow : { selector: current.shadow };
149
+ transformed = transformed.shadowRoot().find(current.selector);
150
+ }
151
+ return transformed;
152
+ }
153
+ return testcafe.Selector(selector);
154
+ }
155
+ exports.transformSelector = transformSelector;
135
156
  function extractSelector(element) {
136
157
  return utils.types.isFunction(element.selector) ? element.selector : element;
137
158
  }
@@ -140,16 +161,6 @@ function isStaleElementError(_err) {
140
161
  return false;
141
162
  }
142
163
  exports.isStaleElementError = isStaleElementError;
143
- async function isEqualElements(t, element1, element2) {
144
- if (!element1 || !element2)
145
- return false;
146
- const compareElements = testcafe.ClientFunction(() => element1() === element2(), {
147
- boundTestRun: t,
148
- dependencies: { element1, element2 },
149
- });
150
- return compareElements();
151
- }
152
- exports.isEqualElements = isEqualElements;
153
164
  async function executeScript(t, script, arg) {
154
165
  script = utils.types.isFunction(script) ? script.toString() : script;
155
166
  const { result, resultId, elementsCount } = await scriptRunner.with({
@@ -185,15 +196,14 @@ async function findElements(t, selector) {
185
196
  return Array.from({ length: await elements.count }, (_, index) => elements.nth(index));
186
197
  }
187
198
  exports.findElements = findElements;
188
- async function getElementRect(_t, element) {
189
- const { left: x, top: y, width, height } = await element.boundingClientRect;
190
- return { x, y, width, height };
191
- }
192
- exports.getElementRect = getElementRect;
193
199
  async function setViewportSize(t, size) {
194
200
  await t.resizeWindow(size.width, size.height);
195
201
  }
196
202
  exports.setViewportSize = setViewportSize;
203
+ async function getDriverInfo(_t) {
204
+ return { features: { shadowSelector: true } };
205
+ }
206
+ exports.getDriverInfo = getDriverInfo;
197
207
  async function getTitle(t) {
198
208
  try {
199
209
  return await testcafe.Selector('title', { boundTestRun: t }).innerText;
@@ -262,4 +272,3 @@ function build() {
262
272
  return [undefined, () => void 0];
263
273
  }
264
274
  exports.build = build;
265
- //# sourceMappingURL=spec-driver.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-testcafe",
3
- "version": "1.15.0",
3
+ "version": "1.15.1",
4
4
  "description": "Applitools Eyes SDK for TestCafe",
5
5
  "keywords": [
6
6
  "eyes-testcafe",
@@ -24,6 +24,11 @@
24
24
  "dist",
25
25
  "types"
26
26
  ],
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/applitools/eyes.sdk.javascript1.git",
30
+ "directory": "packages/eyes-testcafe"
31
+ },
27
32
  "main": "./dist/index-legacy.js",
28
33
  "types": "./types/index-legacy.d.ts",
29
34
  "scripts": {
@@ -36,11 +41,9 @@
36
41
  "run:testcafe:8": "./node_modules/testcafe-8/bin/testcafe-with-v8-flag-filter.js",
37
42
  "run:testcafe:7": "./node_modules/testcafe-7/bin/testcafe-with-v8-flag-filter.js",
38
43
  "lint": "eslint '**/*.ts' '**/*.js'",
39
- "build": "yarn build:dist && yarn build:types",
40
- "build:dist": "tsc",
41
- "build:types": "api-extractor ./src/index.ts --out ./types/index.d.ts",
44
+ "build": "ttsc",
42
45
  "generate:tests": "coverage-tests generate ./test/coverage/config.js --name 'eyes-testcafe'",
43
- "test": "yarn build:dist && yarn test:it && yarn test:coverage",
46
+ "test": "yarn test:it && yarn test:coverage",
44
47
  "test:unit": "mocha --no-timeouts ./test/unit/*.spec.js",
45
48
  "test:it": "testcafe chrome:headless test/it && yarn test:it:firefox:headless",
46
49
  "test:it:chrome": "testcafe chrome test/it/spec-driver.spec.js",
@@ -54,8 +57,8 @@
54
57
  "test:coverage:custom": "yarn generate:tests && APPLITOOLS_USE_PRELOADED_CONFIG=true APPLITOOLS_BATCH_NAME='JS Coverage Tests: eyes-testcafe (custom)' APPLITOOLS_BATCH_ID=$(uuidgen) testcafe chrome:headless test/custom --reporter spec,xunit:coverage-test-report.xml",
55
58
  "report": "coverage-tests report ./test/coverage/config.js --name 'eyes-testcafe'",
56
59
  "deps": "bongo deps",
57
- "gh:test": "gh workflow run test.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='testcafe' -f links='eyes-sdk-core eyes-api types test-utils utils driver screenshoter sdk-shared visual-grid-client' -f linking-depth=2",
58
- "gh:publish": "gh workflow run publish.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='testcafe'",
60
+ "gh:test": "gh workflow run test.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='testcafe' -f links='eyes-sdk-core eyes-api types test-utils utils driver snippets screenshoter sdk-shared visual-grid-client' -f linking-depth=3",
61
+ "gh:publish": "gh workflow run publish-testcafe.yml --ref $(git rev-parse --abbrev-ref HEAD)",
59
62
  "preversion": "yarn deps && bongo preversion && yarn build",
60
63
  "version": "bongo version",
61
64
  "postversion": "bongo postversion"
@@ -66,19 +69,19 @@
66
69
  }
67
70
  },
68
71
  "dependencies": {
69
- "@applitools/eyes-api": "1.1.0",
70
- "@applitools/eyes-sdk-core": "12.23.3",
71
- "@applitools/utils": "1.2.2",
72
- "@applitools/visual-grid-client": "15.8.24"
72
+ "@applitools/eyes-api": "1.1.6",
73
+ "@applitools/eyes-sdk-core": "12.24.13",
74
+ "@applitools/utils": "1.2.11",
75
+ "@applitools/visual-grid-client": "15.8.60"
73
76
  },
74
77
  "devDependencies": {
75
- "@applitools/api-extractor": "1.1.3",
76
- "@applitools/scripts": "1.0.1",
77
- "@applitools/sdk-coverage-tests": "^2.3.15",
78
- "@applitools/sdk-release-kit": "^0.13.2",
79
- "@applitools/sdk-shared": "0.9.5",
80
- "@applitools/test-server": "1.0.4",
81
- "@applitools/test-utils": "1.0.7",
78
+ "@applitools/api-extractor": "1.2.6",
79
+ "@applitools/scripts": "1.1.0",
80
+ "@applitools/sdk-coverage-tests": "^2.3.18",
81
+ "@applitools/sdk-release-kit": "^0.13.10",
82
+ "@applitools/sdk-shared": "0.9.11",
83
+ "@applitools/test-server": "1.0.8",
84
+ "@applitools/test-utils": "1.0.10",
82
85
  "@typescript-eslint/eslint-plugin": "^4.15.1",
83
86
  "@typescript-eslint/parser": "^4.15.1",
84
87
  "eslint": "^7.9.0",
@@ -90,12 +93,15 @@
90
93
  "husky": "^4.3.8",
91
94
  "mocha": "^8.0.1",
92
95
  "prettier": "^2.1.2",
93
- "testcafe": "^1.10.0",
96
+ "testcafe": "^1.18.1",
94
97
  "testcafe-10": "npm:testcafe@^1.10.0",
95
98
  "testcafe-7": "npm:testcafe@1.7.1",
96
99
  "testcafe-8": "npm:testcafe@1.8.8",
97
100
  "testcafe-9": "npm:testcafe@1.9.4",
98
- "testcafe-browser-provider-browserstack": "^1.13.2-alpha.1"
101
+ "testcafe-browser-provider-browserstack": "^1.13.2-alpha.1",
102
+ "ts-node": "^10.4.0",
103
+ "ttypescript": "^1.5.12",
104
+ "typescript": "^4.5.4"
99
105
  },
100
106
  "peerDependencies": {
101
107
  "testcafe": "^1.7.1"
@@ -1,3 +1,2 @@
1
- import {Eyes} from './index'
2
-
3
- export default Eyes
1
+ import { Eyes } from './index';
2
+ export = Eyes;