expect-webdriverio 5.0.4 → 5.1.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/jasmine.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /// <reference types="expect-webdriverio/types/expect-webdriverio"/>
2
2
 
3
- declare module jasmine {
3
+ declare namespace jasmine {
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
5
  interface AsyncMatchers<T, U> extends ExpectWebdriverIO.Matchers<Promise<void>, T> {}
5
6
  }
@@ -5,9 +5,7 @@ async function conditionAttr(el, attribute) {
5
5
  if (typeof attr !== 'string') {
6
6
  return { result: false, value: attr };
7
7
  }
8
- else {
9
- return { result: true, value: attr };
10
- }
8
+ return { result: true, value: attr };
11
9
  }
12
10
  async function conditionAttrAndValue(el, attribute, value, options) {
13
11
  const attr = await el.getAttribute(attribute);
@@ -89,7 +89,13 @@ const headersMatcher = (headers, expected) => {
89
89
  return equals(headers, expected);
90
90
  };
91
91
  const isMatcher = (filter) => {
92
- return typeof filter.__proto__?.asymmetricMatch === 'function';
92
+ return (typeof filter === 'object' &&
93
+ filter !== null &&
94
+ '__proto__' in filter &&
95
+ typeof filter.__proto__ === 'object' &&
96
+ filter.__proto__ &&
97
+ 'asymmetricMatch' in filter.__proto__ &&
98
+ typeof filter.__proto__.asymmetricMatch === 'function');
93
99
  };
94
100
  const minifyRequestMock = (requestMock, requestedWith) => {
95
101
  if (typeof requestMock === 'undefined') {
package/lib/snapshot.js CHANGED
@@ -65,6 +65,13 @@ export class SnapshotService {
65
65
  __classPrivateFieldSet(this, _SnapshotService_currentTestName, `${test.parent} > ${test.title}`, "f");
66
66
  await __classPrivateFieldGet(this, _SnapshotService_snapshotClient, "f").startCurrentRun(test.file, test.fullTitle, __classPrivateFieldGet(this, _SnapshotService_options, "f"));
67
67
  }
68
+ async beforeStep(step, scenario) {
69
+ const file = scenario.uri;
70
+ const testName = `${scenario.name} > ${step.text}`;
71
+ __classPrivateFieldSet(this, _SnapshotService_currentFilePath, file, "f");
72
+ __classPrivateFieldSet(this, _SnapshotService_currentTestName, testName, "f");
73
+ await __classPrivateFieldGet(this, _SnapshotService_snapshotClient, "f").startCurrentRun(file, testName, __classPrivateFieldGet(this, _SnapshotService_options, "f"));
74
+ }
68
75
  async after() {
69
76
  const result = await __classPrivateFieldGet(this, _SnapshotService_snapshotClient, "f").finishCurrentRun();
70
77
  if (!result) {
@@ -1 +1 @@
1
- {"root":["../src/constants.ts","../src/index.ts","../src/jasmineUtils.ts","../src/matchers.ts","../src/snapshot.ts","../src/types.ts","../src/utils.ts","../src/matchers/snapshot.ts","../src/matchers/browser/toHaveClipboardText.ts","../src/matchers/browser/toHaveTitle.ts","../src/matchers/browser/toHaveUrl.ts","../src/matchers/element/toBeClickable.ts","../src/matchers/element/toBeDisabled.ts","../src/matchers/element/toBeDisplayed.ts","../src/matchers/element/toBeDisplayedInViewport.ts","../src/matchers/element/toBeEnabled.ts","../src/matchers/element/toBeExisting.ts","../src/matchers/element/toBeFocused.ts","../src/matchers/element/toBeSelected.ts","../src/matchers/element/toHaveAttribute.ts","../src/matchers/element/toHaveChildren.ts","../src/matchers/element/toHaveClass.ts","../src/matchers/element/toHaveComputedLabel.ts","../src/matchers/element/toHaveComputedRole.ts","../src/matchers/element/toHaveElementProperty.ts","../src/matchers/element/toHaveHTML.ts","../src/matchers/element/toHaveHeight.ts","../src/matchers/element/toHaveHref.ts","../src/matchers/element/toHaveId.ts","../src/matchers/element/toHaveSize.ts","../src/matchers/element/toHaveStyle.ts","../src/matchers/element/toHaveText.ts","../src/matchers/element/toHaveValue.ts","../src/matchers/element/toHaveWidth.ts","../src/matchers/elements/toBeElementsArrayOfSize.ts","../src/matchers/mock/toBeRequested.ts","../src/matchers/mock/toBeRequestedTimes.ts","../src/matchers/mock/toBeRequestedWith.ts","../src/util/elementsUtil.ts","../src/util/executeCommand.ts","../src/util/formatMessage.ts","../src/util/refetchElements.ts"],"version":"5.6.3"}
1
+ {"root":["../src/constants.ts","../src/index.ts","../src/jasmineUtils.ts","../src/matchers.ts","../src/snapshot.ts","../src/types.ts","../src/utils.ts","../src/matchers/snapshot.ts","../src/matchers/browser/toHaveClipboardText.ts","../src/matchers/browser/toHaveTitle.ts","../src/matchers/browser/toHaveUrl.ts","../src/matchers/element/toBeClickable.ts","../src/matchers/element/toBeDisabled.ts","../src/matchers/element/toBeDisplayed.ts","../src/matchers/element/toBeDisplayedInViewport.ts","../src/matchers/element/toBeEnabled.ts","../src/matchers/element/toBeExisting.ts","../src/matchers/element/toBeFocused.ts","../src/matchers/element/toBeSelected.ts","../src/matchers/element/toHaveAttribute.ts","../src/matchers/element/toHaveChildren.ts","../src/matchers/element/toHaveClass.ts","../src/matchers/element/toHaveComputedLabel.ts","../src/matchers/element/toHaveComputedRole.ts","../src/matchers/element/toHaveElementProperty.ts","../src/matchers/element/toHaveHTML.ts","../src/matchers/element/toHaveHeight.ts","../src/matchers/element/toHaveHref.ts","../src/matchers/element/toHaveId.ts","../src/matchers/element/toHaveSize.ts","../src/matchers/element/toHaveStyle.ts","../src/matchers/element/toHaveText.ts","../src/matchers/element/toHaveValue.ts","../src/matchers/element/toHaveWidth.ts","../src/matchers/elements/toBeElementsArrayOfSize.ts","../src/matchers/mock/toBeRequested.ts","../src/matchers/mock/toBeRequestedTimes.ts","../src/matchers/mock/toBeRequestedWith.ts","../src/util/elementsUtil.ts","../src/util/executeCommand.ts","../src/util/formatMessage.ts","../src/util/refetchElements.ts"],"version":"5.7.3"}
@@ -42,14 +42,9 @@ export const enhanceError = (subject, expected, actual, context, verb, expectati
42
42
  if (verb) {
43
43
  verb += ' ';
44
44
  }
45
- let diffString;
46
- if (isNot && equals(actual, expected)) {
47
- diffString = `${EXPECTED_LABEL}: ${printExpected(expected)}\n` +
48
- `${RECEIVED_LABEL}: ${printReceived(actual)}`;
49
- }
50
- else {
51
- diffString = printDiffOrStringify(expected, actual, EXPECTED_LABEL, RECEIVED_LABEL, true);
52
- }
45
+ let diffString = isNot && equals(actual, expected)
46
+ ? `${EXPECTED_LABEL}: ${printExpected(expected)}\n${RECEIVED_LABEL}: ${printReceived(actual)}`
47
+ : printDiffOrStringify(expected, actual, EXPECTED_LABEL, RECEIVED_LABEL, true);
53
48
  if (isNot) {
54
49
  diffString = diffString
55
50
  .replace(EXPECTED_LABEL, NOT_EXPECTED_LABEL)
@@ -80,5 +75,5 @@ export const numberError = (options = {}) => {
80
75
  if (options.lte) {
81
76
  return ` <= ${options.lte}`;
82
77
  }
83
- return "no params";
78
+ return 'no params';
84
79
  };
package/lib/utils.js CHANGED
@@ -9,7 +9,13 @@ const asymmetricMatcher = typeof Symbol === 'function' && Symbol.for
9
9
  ? Symbol.for('jest.asymmetricMatcher')
10
10
  : 1267621;
11
11
  export function isAsymmeyricMatcher(expected) {
12
- return typeof expected === 'object' && '$$typeof' in expected && expected.$$typeof === asymmetricMatcher && expected.asymmetricMatch;
12
+ return (typeof expected === 'object' &&
13
+ typeof expected === 'object' &&
14
+ expected &&
15
+ '$$typeof' in expected &&
16
+ 'asymmetricMatch' in expected &&
17
+ expected.$$typeof === asymmetricMatcher &&
18
+ Boolean(expected.asymmetricMatch));
13
19
  }
14
20
  function isStringContainingMatcher(expected) {
15
21
  return isAsymmeyricMatcher(expected) && ['StringContaining', 'StringNotContaining'].includes(expected.toString());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expect-webdriverio",
3
- "version": "5.0.4",
3
+ "version": "5.1.0",
4
4
  "author": "Mykola Grybyk <mykola.grybyk@gmail.com>",
5
5
  "description": "WebdriverIO Assertion Library",
6
6
  "license": "MIT",
@@ -47,7 +47,7 @@
47
47
  "clean:tests": "rimraf test-types/**/node_modules && rimraf test-types/**/dist",
48
48
  "compile": "tsc --build tsconfig.build.json",
49
49
  "test": "run-s test:*",
50
- "test:lint": "eslint . --ext .js,.jsx,.ts,.tsx",
50
+ "test:lint": "eslint .",
51
51
  "test:unit": "vitest --run",
52
52
  "test:types": "node test-types/copy && npm run ts && npm run clean:tests",
53
53
  "ts": "run-s ts:*",
@@ -68,20 +68,18 @@
68
68
  "@types/jest": "^29.5.12",
69
69
  "@types/lodash.isequal": "^4.5.8",
70
70
  "@types/node": "^22.9.0",
71
- "@typescript-eslint/eslint-plugin": "^8.13.0",
72
- "@typescript-eslint/parser": "^8.13.0",
73
- "@vitest/coverage-v8": "^2.1.4",
71
+ "@wdio/types": "^9.9.0",
72
+ "@vitest/coverage-v8": "^3.0.5",
73
+ "@wdio/eslint": "^0.0.5",
74
74
  "c8": "^10.1.2",
75
- "eslint": "^8.56.0",
76
- "eslint-plugin-import": "^2.29.1",
77
- "eslint-plugin-unicorn": "^56.0.0",
75
+ "eslint": "^9.15.0",
78
76
  "husky": "^9.1.5",
79
77
  "npm-run-all2": "^7.0.1",
80
- "release-it": "^17.6.0",
78
+ "release-it": "^18.1.1",
81
79
  "rimraf": "^6.0.1",
82
80
  "shelljs": "^0.8.5",
83
81
  "typescript": "^5.5.4",
84
- "vitest": "^2.1.4",
82
+ "vitest": "^3.0.4",
85
83
  "webdriverio": "^9.2.11"
86
84
  },
87
85
  "peerDependencies": {