expect-webdriverio 7.0.0 → 8.0.0-alpha.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.
Files changed (48) hide show
  1. package/README.md +8 -4
  2. package/jasmine-wdio-expect-async.d.ts +1 -1
  3. package/lib/constants.js +0 -6
  4. package/lib/index.js +1 -13
  5. package/lib/jasmineUtils.js +2 -2
  6. package/lib/matchers/asymmetrics/oneOf.js +2 -2
  7. package/lib/matchers/browser/toHaveClipboardText.js +7 -3
  8. package/lib/matchers/browser/toHaveLocalStorageItem.js +1 -11
  9. package/lib/matchers/element/toBeClickable.js +3 -2
  10. package/lib/matchers/element/toBeDisabled.js +3 -2
  11. package/lib/matchers/element/toBeDisplayed.js +3 -2
  12. package/lib/matchers/element/toBeDisplayedInViewport.js +3 -2
  13. package/lib/matchers/element/toBeEnabled.js +3 -2
  14. package/lib/matchers/element/toBeExisting.js +5 -2
  15. package/lib/matchers/element/toBeFocused.js +3 -2
  16. package/lib/matchers/element/toBeSelected.js +4 -4
  17. package/lib/matchers/element/toHaveAttribute.js +2 -14
  18. package/lib/matchers/element/toHaveChildren.js +7 -13
  19. package/lib/matchers/element/toHaveComputedLabel.js +0 -2
  20. package/lib/matchers/element/toHaveComputedRole.js +0 -2
  21. package/lib/matchers/element/toHaveElementClass.js +3 -8
  22. package/lib/matchers/element/toHaveElementProperty.js +0 -5
  23. package/lib/matchers/element/toHaveHTML.js +3 -5
  24. package/lib/matchers/element/toHaveHeight.js +4 -5
  25. package/lib/matchers/element/toHaveHref.js +6 -3
  26. package/lib/matchers/element/toHaveId.js +3 -2
  27. package/lib/matchers/element/toHaveSize.js +0 -1
  28. package/lib/matchers/element/toHaveStyle.js +0 -1
  29. package/lib/matchers/element/toHaveText.js +2 -5
  30. package/lib/matchers/element/toHaveValue.js +1 -1
  31. package/lib/matchers/element/toHaveWidth.js +4 -5
  32. package/lib/matchers/elements/toBeElementsArrayOfSize.js +9 -11
  33. package/lib/matchers/mock/toBeRequested.js +1 -1
  34. package/lib/matchers/mock/toBeRequestedTimes.js +6 -6
  35. package/lib/matchers/mock/toBeRequestedWith.js +0 -3
  36. package/lib/matchers.js +32 -32
  37. package/lib/snapshot.js +1 -8
  38. package/lib/tsconfig.build.tsbuildinfo +1 -1
  39. package/lib/util/elementsUtil.js +3 -2
  40. package/lib/util/executeBrowserCommand.js +2 -2
  41. package/lib/util/executeCommand.js +2 -41
  42. package/lib/util/formatMessage.js +4 -4
  43. package/lib/util/multiRemoteUtils.js +9 -1
  44. package/lib/util/numberOptionsUtil.js +15 -26
  45. package/lib/utils.js +10 -110
  46. package/package.json +39 -41
  47. package/types/expect-global.d.ts +1 -2
  48. package/types/expect-webdriverio.d.ts +31 -222
@@ -1,14 +1,15 @@
1
1
  import { toHaveAttributeAndValue } from './toHaveAttribute.js';
2
2
  import { DEFAULT_OPTIONS } from '../../constants.js';
3
3
  export async function toHaveId(el, expectedValue, options = DEFAULT_OPTIONS) {
4
+ const { matcherName = 'toHaveId' } = this;
4
5
  await options.beforeAssertion?.({
5
- matcherName: 'toHaveId',
6
+ matcherName,
6
7
  expectedValue,
7
8
  options,
8
9
  });
9
10
  const result = await toHaveAttributeAndValue.call(this, el, 'id', expectedValue, options);
10
11
  await options.afterAssertion?.({
11
- matcherName: 'toHaveId',
12
+ matcherName,
12
13
  expectedValue,
13
14
  options,
14
15
  result
@@ -18,7 +18,6 @@ export async function toHaveSize(received, expectedValue, options = DEFAULT_OPTI
18
18
  expectedValues: expectedValue,
19
19
  singleElementCompare: (element, expectedSize) => condition(element, expectedSize),
20
20
  context: { isNot, iteration },
21
- strategy: 'NewStrictMultipleElements',
22
21
  strictConfiguration: { allowArrayWithSingleElement: false, allowObjectExpectedValue: true }
23
22
  });
24
23
  }, isNot, { wait: options.wait, interval: options.interval });
@@ -20,7 +20,6 @@ export async function toHaveStyle(received, expectedValue, options = DEFAULT_OPT
20
20
  expectedValues: expectedValue,
21
21
  singleElementCompare: (element, expectedValues) => condition(element, expectedValues, options),
22
22
  context: { isNot, iteration },
23
- strategy: 'NewStrictMultipleElements',
24
23
  strictConfiguration: { allowArrayWithSingleElement: false, allowObjectExpectedValue: true }
25
24
  });
26
25
  }, isNot, { wait: options.wait, interval: options.interval });
@@ -1,5 +1,5 @@
1
1
  import { DEFAULT_OPTIONS } from '../../constants.js';
2
- import { compareTextOrOneOf, enhanceError, getFeatureFlagValue, isArrayContainingMatcher, waitUntil, } from '../../utils.js';
2
+ import { compareTextOrOneOf, enhanceError, isArrayContainingMatcher, waitUntil, } from '../../utils.js';
3
3
  import { executeCommandWithStrategy } from '../../util/executeCommand.js';
4
4
  import { fillSingleExpectedForElementArray } from '../../util/elementsUtil.js';
5
5
  import { buildWdioAsymmetricMatchersWithOptions } from '../asymmetrics/asymmetricsUtils.js';
@@ -15,8 +15,7 @@ export async function toHaveText(received, expectedValue, options = DEFAULT_OPTI
15
15
  options,
16
16
  });
17
17
  expectedValue = buildWdioAsymmetricMatchersWithOptions(expectedValue, options);
18
- const isNewStrictCompare = getFeatureFlagValue(options, 'useToHaveTextStrictMultiElementsCompareStrategy');
19
- const { success: pass, actual: actualText, subject: subject, context: { isSome } = {}, expected } = await waitUntil(async (iteration) => {
18
+ const { success: pass, actual: actualText, subject, context: { isSome } = {}, expected } = await waitUntil(async (iteration) => {
20
19
  return await executeCommandWithStrategy({
21
20
  unresolvedElements: received,
22
21
  expectedValues: expectedValue,
@@ -25,8 +24,6 @@ export async function toHaveText(received, expectedValue, options = DEFAULT_OPTI
25
24
  return compareElement(element, values, options);
26
25
  },
27
26
  context: { isNot, iteration },
28
- strategy: isNewStrictCompare ? 'NewStrictMultipleElements' : 'LegacyLooseMultipleElements',
29
- strictConfiguration: { allowArrayWithSingleElement: true }
30
27
  });
31
28
  }, isNot, { wait: options.wait, interval: options.interval });
32
29
  if (isArrayContainingMatcher(expectedValue) && actualText === undefined) {
@@ -1,5 +1,5 @@
1
1
  import { toHaveElementProperty } from './toHaveElementProperty.js';
2
2
  import { DEFAULT_OPTIONS } from '../../constants.js';
3
3
  export function toHaveValue(el, value, options = DEFAULT_OPTIONS) {
4
- return toHaveElementProperty.call({ ...this, allowObjectExpectedValue: false }, el, 'value', value, options);
4
+ return toHaveElementProperty.call({ matcherName: 'toHaveValue', ...this, allowObjectExpectedValue: false }, el, 'value', value, options);
5
5
  }
@@ -1,7 +1,7 @@
1
1
  import { DEFAULT_OPTIONS } from '../../constants.js';
2
2
  import { wrapExpectedWithArray } from '../../util/elementsUtil.js';
3
3
  import { executeCommandWithStrategy } from '../../util/executeCommand.js';
4
- import { validateNumberArrayAndExtractOptions } from '../../util/numberOptionsUtil.js';
4
+ import { validateNumberMatcherArray } from '../../util/numberOptionsUtil.js';
5
5
  import { enhanceError, waitUntil, } from '../../utils.js';
6
6
  async function condition(el, expectedNumber) {
7
7
  const actualWidth = await el.getSize('width');
@@ -17,19 +17,18 @@ export async function toHaveWidth(received, expectedValue, options = DEFAULT_OPT
17
17
  expectedValue,
18
18
  options,
19
19
  });
20
- const { numberMatcher: expectedNumber, commandOptions } = validateNumberArrayAndExtractOptions(expectedValue, options);
20
+ const expectedNumber = validateNumberMatcherArray(expectedValue);
21
21
  const { success: pass, actual: actualWidth, subject: elements, context: { isSome } = {}, expected } = await waitUntil(async (iteration) => {
22
22
  return await executeCommandWithStrategy({
23
23
  unresolvedElements: received,
24
24
  expectedValues: expectedNumber,
25
25
  singleElementCompare: (element, expectedNumber) => condition(element, expectedNumber),
26
26
  context: { isNot, iteration },
27
- strategy: 'NewStrictMultipleElements',
28
27
  strictConfiguration: { allowArrayWithSingleElement: false }
29
28
  });
30
- }, isNot, { wait: commandOptions.wait, interval: commandOptions.interval });
29
+ }, isNot, { wait: options.wait, interval: options.interval });
31
30
  const expectedValues = expected ?? wrapExpectedWithArray(elements, actualWidth, expectedNumber);
32
- const message = enhanceError(elements, expectedValues, actualWidth, { isNot, isSome }, verb, expectation, '', commandOptions);
31
+ const message = enhanceError(elements, expectedValues, actualWidth, { isNot, isSome }, verb, expectation, '', options);
33
32
  const result = {
34
33
  pass,
35
34
  message: () => message
@@ -1,7 +1,7 @@
1
1
  import { waitUntil, enhanceError, } from '../../utils.js';
2
2
  import { refetchElements, synchronizeElementArray, syncronizeElements } from '../../util/refetchElements.js';
3
3
  import { DEFAULT_OPTIONS } from '../../constants.js';
4
- import { validateNumberAndExtractOptions } from '../../util/numberOptionsUtil.js';
4
+ import { validateNumberMatcher } from '../../util/numberOptionsUtil.js';
5
5
  import { awaitElementArray, isMultiRemoteElementArray, isMultiRemoteElements, isMultiRemoteElementsLike, isStrictlyElementArray } from '../../util/elementsUtil.js';
6
6
  import { getElementsPerInstance, getGlobalMultiRemoteInstanceNames, hasSameInstanceNames, isGlobalBrowserSingleRemote, isMultiRemoteMatcher } from '../../util/multiRemoteUtils.js';
7
7
  export async function toBeElementsArrayOfSize(received, expectedValue, options = DEFAULT_OPTIONS) {
@@ -21,7 +21,7 @@ export async function toBeElementsArrayOfSize(received, expectedValue, options =
21
21
  await options.afterAssertion?.({ matcherName, expectedValue, options, result });
22
22
  return result;
23
23
  }
24
- const { numberMatcher: expectedNumber, commandOptions } = validateNumberAndExtractOptions(expectedValue, options);
24
+ const expectedNumber = validateNumberMatcher(expectedValue);
25
25
  const originalLength = elements ? elements.length : undefined;
26
26
  const { success: pass } = await waitUntil(async (iteration) => {
27
27
  if (!elements) {
@@ -35,12 +35,12 @@ export async function toBeElementsArrayOfSize(received, expectedValue, options =
35
35
  return { success: isPassing, subject: elements, actual: elements.length };
36
36
  }
37
37
  return { success: false, subject: elements, actual: elements.length };
38
- }, isNot, { wait: commandOptions.wait, interval: commandOptions.interval });
38
+ }, isNot, { wait: options.wait, interval: options.interval });
39
39
  if (pass && originalLength !== undefined && elements !== received && (isStrictlyElementArray(received) || received instanceof Promise) && isStrictlyElementArray(elements)) {
40
40
  await syncronizeElements(received, elements);
41
41
  }
42
42
  const actual = originalLength;
43
- const message = enhanceError(elements ?? other, expectedNumber, actual, this, verb, expectation, '', commandOptions);
43
+ const message = enhanceError(elements ?? other, expectedNumber, actual, this, verb, expectation, '', options);
44
44
  const result = {
45
45
  pass,
46
46
  message: () => message
@@ -59,17 +59,15 @@ const multiRemoteElementsArrayOfSize = async (received, expectedValue, options,
59
59
  const instances = getMultiRemoteInstanceNames(received)
60
60
  ?? getGlobalMultiRemoteInstanceNames()
61
61
  ?? (perInstanceSizes ? Object.keys(perInstanceSizes) : []);
62
- let commandOptions = options;
63
62
  let expected;
64
63
  let instanceMismatch = false;
65
64
  if (perInstanceSizes) {
66
65
  instanceMismatch = !hasSameInstanceNames(perInstanceSizes, instances);
67
- expected = Object.fromEntries(Object.entries(perInstanceSizes).map(([name, value]) => [name, validateNumberAndExtractOptions(value, options).numberMatcher]));
66
+ expected = Object.fromEntries(Object.entries(perInstanceSizes).map(([name, value]) => [name, validateNumberMatcher(value)]));
68
67
  }
69
68
  else {
70
- const validated = validateNumberAndExtractOptions(expectedValue, options);
71
- commandOptions = validated.commandOptions;
72
- expected = Object.fromEntries(instances.map((name) => [name, validated.numberMatcher]));
69
+ const numberMatcher = validateNumberMatcher(expectedValue);
70
+ expected = Object.fromEntries(instances.map((name) => [name, numberMatcher]));
73
71
  }
74
72
  let refetchSource = received;
75
73
  let elements = received;
@@ -88,11 +86,11 @@ const multiRemoteElementsArrayOfSize = async (received, expectedValue, options,
88
86
  const matches = (name) => expected[name].asymmetricMatch(actual[name]);
89
87
  const success = isNot ? instances.some(matches) : instances.every(matches);
90
88
  return { success, subject: refetchSource, actual };
91
- }, isNot, { wait: commandOptions.wait, interval: commandOptions.interval });
89
+ }, isNot, { wait: options.wait, interval: options.interval });
92
90
  if (pass && elements !== received) {
93
91
  synchronizeElementArray(received, elements);
94
92
  }
95
- const message = enhanceError(refetchSource, expected, actual, { isNot }, verb, expectation, '', commandOptions);
93
+ const message = enhanceError(refetchSource, expected, actual, { isNot }, verb, expectation, '', options);
96
94
  return { pass, message: () => message };
97
95
  };
98
96
  const getPerInstanceSizes = (value) => {
@@ -1,5 +1,5 @@
1
1
  import { toBeRequestedTimes } from './toBeRequestedTimes.js';
2
2
  import { DEFAULT_OPTIONS } from '../../constants.js';
3
3
  export function toBeRequested(received, options = DEFAULT_OPTIONS) {
4
- return toBeRequestedTimes.call({ ...(this || {}), expectation: 'called' }, received, { gte: 1 }, options);
4
+ return toBeRequestedTimes.call({ matcherName: 'toBeRequested', ...(this || {}), expectation: 'called' }, received, { gte: 1 }, options);
5
5
  }
@@ -1,6 +1,6 @@
1
1
  import { waitUntil, enhanceError } from '../../utils.js';
2
2
  import { DEFAULT_OPTIONS } from '../../constants.js';
3
- import { validateNumberAndExtractOptions } from '../../util/numberOptionsUtil.js';
3
+ import { validateNumberMatcher } from '../../util/numberOptionsUtil.js';
4
4
  import { awaitMocks, getMockInstanceNames, isMockArray } from '../../util/multiRemoteUtils.js';
5
5
  import { formatMultiRemoteMocks, labelMultiRemoteValues } from '../../util/formatMessage.js';
6
6
  export async function toBeRequestedTimes(received, expectedValue, options = DEFAULT_OPTIONS) {
@@ -10,7 +10,7 @@ export async function toBeRequestedTimes(received, expectedValue, options = DEFA
10
10
  expectedValue,
11
11
  options,
12
12
  });
13
- const { numberMatcher: expectedNumber, commandOptions } = validateNumberAndExtractOptions(expectedValue, options);
13
+ const expectedNumber = validateNumberMatcher(expectedValue);
14
14
  const mocks = await awaitMocks(received);
15
15
  let message;
16
16
  let pass;
@@ -23,19 +23,19 @@ export async function toBeRequestedTimes(received, expectedValue, options = DEFA
23
23
  const matches = (name) => expectedNumber.asymmetricMatch(actual[name]);
24
24
  const success = isNot ? names.some(matches) : names.every(matches);
25
25
  return { success, subject: mocks, actual };
26
- }, isNot, { wait: commandOptions.wait, interval: commandOptions.interval });
26
+ }, isNot, { wait: options.wait, interval: options.interval });
27
27
  pass = result.success;
28
28
  const expected = Object.fromEntries(names.map((name) => [name, expectedNumber]));
29
- message = enhanceError(formatMultiRemoteMocks(instanceNames), label(expected), label(result.actual), this, verb, expectation, '', commandOptions);
29
+ message = enhanceError(formatMultiRemoteMocks(instanceNames), label(expected), label(result.actual), this, verb, expectation, '', options);
30
30
  }
31
31
  else {
32
32
  const mock = mocks;
33
33
  const result = await waitUntil(async () => {
34
34
  const actual = mock.calls.length;
35
35
  return { success: expectedNumber.asymmetricMatch(actual), subject: mock, actual };
36
- }, isNot, { wait: commandOptions.wait, interval: commandOptions.interval });
36
+ }, isNot, { wait: options.wait, interval: options.interval });
37
37
  pass = result.success;
38
- message = enhanceError('mock', expectedNumber, result.actual, this, verb, expectation, '', commandOptions);
38
+ message = enhanceError('mock', expectedNumber, result.actual, this, verb, expectation, '', options);
39
39
  }
40
40
  const result = {
41
41
  pass,
@@ -294,6 +294,3 @@ const deleteUndefinedValues = (obj, baseline = obj) => {
294
294
  }
295
295
  });
296
296
  };
297
- export function toBeRequestedWithResponse(...args) {
298
- return toBeRequestedWith.call(this, ...args);
299
- }
package/lib/matchers.js CHANGED
@@ -1,32 +1,32 @@
1
- export * from './matchers/browser/toHaveClipboardText.js';
2
- export * from './matchers/browser/toHaveLocalStorageItem.js';
3
- export * from './matchers/browser/toHaveTitle.js';
4
- export * from './matchers/browser/toHaveUrl.js';
5
- export * from './matchers/element/toBeClickable.js';
6
- export * from './matchers/element/toBeDisabled.js';
7
- export * from './matchers/element/toBeDisplayed.js';
8
- export * from './matchers/element/toBeDisplayedInViewport.js';
9
- export * from './matchers/element/toBeEnabled.js';
10
- export * from './matchers/element/toBeExisting.js';
11
- export * from './matchers/element/toBeFocused.js';
12
- export * from './matchers/element/toBeSelected.js';
13
- export * from './matchers/element/toHaveAttribute.js';
14
- export * from './matchers/element/toHaveChildren.js';
15
- export * from './matchers/element/toHaveComputedLabel.js';
16
- export * from './matchers/element/toHaveComputedRole.js';
17
- export * from './matchers/element/toHaveElementClass.js';
18
- export * from './matchers/element/toHaveElementProperty.js';
19
- export * from './matchers/element/toHaveHeight.js';
20
- export * from './matchers/element/toHaveHref.js';
21
- export * from './matchers/element/toHaveHTML.js';
22
- export * from './matchers/element/toHaveId.js';
23
- export * from './matchers/element/toHaveSize.js';
24
- export * from './matchers/element/toHaveStyle.js';
25
- export * from './matchers/element/toHaveText.js';
26
- export * from './matchers/element/toHaveValue.js';
27
- export * from './matchers/element/toHaveWidth.js';
28
- export * from './matchers/elements/toBeElementsArrayOfSize.js';
29
- export * from './matchers/mock/toBeRequested.js';
30
- export * from './matchers/mock/toBeRequestedTimes.js';
31
- export * from './matchers/mock/toBeRequestedWith.js';
32
- export * from './matchers/snapshot.js';
1
+ export { toHaveClipboardText } from './matchers/browser/toHaveClipboardText.js';
2
+ export { toHaveLocalStorageItem } from './matchers/browser/toHaveLocalStorageItem.js';
3
+ export { toHaveTitle } from './matchers/browser/toHaveTitle.js';
4
+ export { toHaveUrl } from './matchers/browser/toHaveUrl.js';
5
+ export { toBeClickable } from './matchers/element/toBeClickable.js';
6
+ export { toBeDisabled } from './matchers/element/toBeDisabled.js';
7
+ export { toBeDisplayed } from './matchers/element/toBeDisplayed.js';
8
+ export { toBeDisplayedInViewport } from './matchers/element/toBeDisplayedInViewport.js';
9
+ export { toBeEnabled } from './matchers/element/toBeEnabled.js';
10
+ export { toExist, toBeExisting, toBePresent } from './matchers/element/toBeExisting.js';
11
+ export { toBeFocused } from './matchers/element/toBeFocused.js';
12
+ export { toBeSelected, toBeChecked } from './matchers/element/toBeSelected.js';
13
+ export { toHaveAttribute } from './matchers/element/toHaveAttribute.js';
14
+ export { toHaveChildren } from './matchers/element/toHaveChildren.js';
15
+ export { toHaveComputedLabel } from './matchers/element/toHaveComputedLabel.js';
16
+ export { toHaveComputedRole } from './matchers/element/toHaveComputedRole.js';
17
+ export { toHaveElementClass } from './matchers/element/toHaveElementClass.js';
18
+ export { toHaveElementProperty } from './matchers/element/toHaveElementProperty.js';
19
+ export { toHaveHeight } from './matchers/element/toHaveHeight.js';
20
+ export { toHaveHref, toHaveLink } from './matchers/element/toHaveHref.js';
21
+ export { toHaveHTML } from './matchers/element/toHaveHTML.js';
22
+ export { toHaveId } from './matchers/element/toHaveId.js';
23
+ export { toHaveSize } from './matchers/element/toHaveSize.js';
24
+ export { toHaveStyle } from './matchers/element/toHaveStyle.js';
25
+ export { toHaveText } from './matchers/element/toHaveText.js';
26
+ export { toHaveValue } from './matchers/element/toHaveValue.js';
27
+ export { toHaveWidth } from './matchers/element/toHaveWidth.js';
28
+ export { toBeElementsArrayOfSize } from './matchers/elements/toBeElementsArrayOfSize.js';
29
+ export { toBeRequested } from './matchers/mock/toBeRequested.js';
30
+ export { toBeRequestedTimes } from './matchers/mock/toBeRequestedTimes.js';
31
+ export { toBeRequestedWith } from './matchers/mock/toBeRequestedWith.js';
32
+ export { toMatchSnapshot, toMatchInlineSnapshot } from './matchers/snapshot.js';
package/lib/snapshot.js CHANGED
@@ -1,4 +1,3 @@
1
- import { expect } from '@wdio/globals';
2
1
  import { SnapshotClient } from '@vitest/snapshot';
3
2
  import { NodeSnapshotEnvironment } from '@vitest/snapshot/environment';
4
3
  import { getGlobalSingleton } from './util/globalSingleton.js';
@@ -75,13 +74,7 @@ export class SnapshotService {
75
74
  this.#snapshotResults.push(result);
76
75
  }
77
76
  #isEqual(received, expected) {
78
- try {
79
- expect(received).toBe(expected);
80
- return true;
81
- }
82
- catch {
83
- return false;
84
- }
77
+ return Object.is(received, expected);
85
78
  }
86
79
  static initiate(options) {
87
80
  return getGlobalSingleton('snapshotService', () => new SnapshotService(options));
@@ -1 +1 @@
1
- {"root":["../src/constants.ts","../src/index.ts","../src/jasmineUtils.ts","../src/matchers.ts","../src/snapshot.ts","../src/softAssert.ts","../src/softAssertService.ts","../src/softExpect.ts","../src/types.ts","../src/utils.ts","../src/api/index.ts","../src/matchers/snapshot.ts","../src/matchers/asymmetrics/asymmetricsUtils.ts","../src/matchers/asymmetrics/multiRemote.ts","../src/matchers/asymmetrics/oneOf.ts","../src/matchers/browser/toHaveClipboardText.ts","../src/matchers/browser/toHaveLocalStorageItem.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/toHaveComputedLabel.ts","../src/matchers/element/toHaveComputedRole.ts","../src/matchers/element/toHaveElementClass.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/matchers/modifiers/some.ts","../src/util/commandOptionsUtils.ts","../src/util/elementsUtil.ts","../src/util/executeBrowserCommand.ts","../src/util/executeCommand.ts","../src/util/formatMessage.ts","../src/util/globalSingleton.ts","../src/util/multiRemoteUtils.ts","../src/util/numberOptionsUtil.ts","../src/util/refetchElements.ts","../src/util/stringUtil.ts","../src/util/waitUntil.ts"],"version":"5.9.3"}
1
+ {"version":"7.0.2","root":["../src/constants.ts","../src/index.ts","../src/jasmineUtils.ts","../src/matchers.ts","../src/snapshot.ts","../src/softAssert.ts","../src/softAssertService.ts","../src/softExpect.ts","../src/types.ts","../src/utils.ts","../src/api/index.ts","../src/matchers/snapshot.ts","../src/matchers/asymmetrics/asymmetricsUtils.ts","../src/matchers/asymmetrics/multiRemote.ts","../src/matchers/asymmetrics/oneOf.ts","../src/matchers/browser/toHaveClipboardText.ts","../src/matchers/browser/toHaveLocalStorageItem.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/toHaveComputedLabel.ts","../src/matchers/element/toHaveComputedRole.ts","../src/matchers/element/toHaveElementClass.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/matchers/modifiers/some.ts","../src/util/commandOptionsUtils.ts","../src/util/elementsUtil.ts","../src/util/executeBrowserCommand.ts","../src/util/executeCommand.ts","../src/util/formatMessage.ts","../src/util/globalSingleton.ts","../src/util/multiRemoteUtils.ts","../src/util/numberOptionsUtil.ts","../src/util/refetchElements.ts","../src/util/stringUtil.ts","../src/util/waitUntil.ts"],"packageJsons":["../node_modules/.pnpm/@jest+expect-utils@30.5.2/node_modules/@jest/expect-utils/package.json","../node_modules/.pnpm/@jest+schemas@30.5.0/node_modules/@jest/schemas/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/package.json","../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/package.json","../node_modules/.pnpm/@types+sinonjs__fake-timers@8.1.5/node_modules/@types/sinonjs__fake-timers/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/package.json","../node_modules/.pnpm/@vitest+pretty-format@5.0.2/node_modules/@vitest/pretty-format/package.json","../node_modules/.pnpm/@vitest+snapshot@5.0.2/node_modules/@vitest/snapshot/package.json","../node_modules/.pnpm/@vitest+utils@5.0.2/node_modules/@vitest/utils/package.json","../node_modules/.pnpm/@wdio+globals@9.31.3_expect-webdriverio@_webdriverio@9.32.0_supports-color@8.1.1_/node_modules/@wdio/globals/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/package.json","../node_modules/.pnpm/@wdio+types@9.32.0/node_modules/@wdio/types/package.json","../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/package.json","../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/package.json","../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/package.json","../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/dist/esm/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/package.json","../node_modules/.pnpm/deep-eql@5.0.2/node_modules/deep-eql/package.json","../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/package.json","../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/package.json","../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/package.json","../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/package.json","../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/package.json","../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/package.json","../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/package.json","../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/package.json","../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/esm/package.json","../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/package.json","../node_modules/.pnpm/events@3.3.0/node_modules/events/package.json","../node_modules/.pnpm/expect@30.5.2/node_modules/expect/package.json","../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/package.json","../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/package.json","../node_modules/.pnpm/jest-diff@30.5.2/node_modules/jest-diff/package.json","../node_modules/.pnpm/jest-matcher-utils@30.5.2/node_modules/jest-matcher-utils/package.json","../node_modules/.pnpm/jest-mock@30.5.2/node_modules/jest-mock/package.json","../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/package.json","../node_modules/.pnpm/pretty-format@30.5.1/node_modules/pretty-format/package.json","../node_modules/.pnpm/process@0.11.10/node_modules/process/package.json","../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/package.json","../node_modules/.pnpm/string_decoder@1.1.1/node_modules/string_decoder/package.json","../node_modules/.pnpm/undici-types@7.24.6/node_modules/undici-types/package.json","../node_modules/.pnpm/undici@7.29.0/node_modules/undici/package.json","../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/package.json","../node_modules/.pnpm/ws@8.21.3/node_modules/ws/package.json","../package.json"],"missingPackageJsons":["../node_modules/.pnpm/@jest+expect-utils@30.5.2/node_modules/@jest/expect-utils/build/package.json","../node_modules/.pnpm/@jest+schemas@30.5.0/node_modules/@jest/schemas/build/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/any/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/argument/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/array/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/awaited/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/bigint/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/boolean/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/clone/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/composite/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/computed/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/const/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/constructor/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/create/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/date/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/enum/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/error/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/exclude/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/extends/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/extract/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/function/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/guard/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/helpers/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/indexed/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/instance-type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/instantiate/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/integer/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/intersect/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/iterator/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/keyof/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/literal/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/mapped/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/module/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/never/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/not/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/null/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/number/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/object/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/omit/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/optional/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/parameters/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/partial/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/patterns/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/pick/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/promise/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/readonly/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/record/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/recursive/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/ref/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/regexp/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/registry/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/required/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/rest/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/return-type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/schema/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/sets/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/static/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/string/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/symbol/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/symbols/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/template-literal/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/transform/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/tuple/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/uint8array/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/undefined/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/union/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/unknown/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/unsafe/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/void/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/assert/strict/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/async_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/buffer/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/child_process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/cluster/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/console/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/constants/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/crypto/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dgram/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/diagnostics_channel/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dns/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/domain/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/fs/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/http/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/http2/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/https/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/inspector/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/inspector/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/module/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/net/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/compatibility/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/web-globals/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/os/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/posix/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/win32/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/perf_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/punycode/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/querystring/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/readline/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/repl/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/consumers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/web/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/string_decoder/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/timers/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/tls/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/trace_events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/tty/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/url/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/util/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/util/types/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/v8/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/vm/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/wasi/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/worker_threads/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/zlib/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/assert/strict/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/async_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/buffer/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/child_process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/cluster/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/console/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/constants/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/crypto/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dgram/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/diagnostics_channel/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dns/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/domain/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/fs/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/http/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/http2/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/https/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/inspector/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/inspector/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/module/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/net/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/os/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/posix/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/win32/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/perf_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/punycode/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/querystring/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/readline/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/repl/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/consumers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/web/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/string_decoder/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/timers/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/tls/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/trace_events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/tty/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/url/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/util/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/util/types/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/v8/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/vm/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/wasi/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/worker_threads/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/zlib/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/events/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/http/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/https/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/net/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/stream/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/tls/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/url/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/zlib/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/events/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/http/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/https/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/net/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/stream/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/tls/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/url/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/zlib/package.json","../node_modules/.pnpm/@vitest+pretty-format@5.0.2/node_modules/@vitest/pretty-format/dist/package.json","../node_modules/.pnpm/@vitest+snapshot@5.0.2/node_modules/@vitest/snapshot/dist/package.json","../node_modules/.pnpm/@vitest+utils@5.0.2/node_modules/@vitest/utils/dist/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/commands/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/protocols/package.json","../node_modules/.pnpm/@wdio+types@9.32.0/node_modules/@wdio/types/build/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/dist/esm/api/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/package.json","../node_modules/.pnpm/expect@30.5.2/node_modules/expect/build/package.json","../node_modules/.pnpm/jest-diff@30.5.2/node_modules/jest-diff/build/package.json","../node_modules/.pnpm/jest-matcher-utils@30.5.2/node_modules/jest-matcher-utils/build/package.json","../node_modules/.pnpm/jest-mock@30.5.2/node_modules/jest-mock/build/package.json","../node_modules/.pnpm/node_modules/@types/assert/package.json","../node_modules/.pnpm/node_modules/@types/assert/strict/package.json","../node_modules/.pnpm/node_modules/@types/async_hooks/package.json","../node_modules/.pnpm/node_modules/@types/child_process/package.json","../node_modules/.pnpm/node_modules/@types/cluster/package.json","../node_modules/.pnpm/node_modules/@types/console/package.json","../node_modules/.pnpm/node_modules/@types/constants/package.json","../node_modules/.pnpm/node_modules/@types/crypto/package.json","../node_modules/.pnpm/node_modules/@types/dgram/package.json","../node_modules/.pnpm/node_modules/@types/diagnostics_channel/package.json","../node_modules/.pnpm/node_modules/@types/dns/package.json","../node_modules/.pnpm/node_modules/@types/dns/promises/package.json","../node_modules/.pnpm/node_modules/@types/domain/package.json","../node_modules/.pnpm/node_modules/@types/events/package.json","../node_modules/.pnpm/node_modules/@types/fs/package.json","../node_modules/.pnpm/node_modules/@types/fs/promises/package.json","../node_modules/.pnpm/node_modules/@types/http/package.json","../node_modules/.pnpm/node_modules/@types/http2/package.json","../node_modules/.pnpm/node_modules/@types/https/package.json","../node_modules/.pnpm/node_modules/@types/inspector/package.json","../node_modules/.pnpm/node_modules/@types/inspector/promises/package.json","../node_modules/.pnpm/node_modules/@types/module/package.json","../node_modules/.pnpm/node_modules/@types/net/package.json","../node_modules/.pnpm/node_modules/@types/os/package.json","../node_modules/.pnpm/node_modules/@types/path/package.json","../node_modules/.pnpm/node_modules/@types/path/posix/package.json","../node_modules/.pnpm/node_modules/@types/path/win32/package.json","../node_modules/.pnpm/node_modules/@types/perf_hooks/package.json","../node_modules/.pnpm/node_modules/@types/process/package.json","../node_modules/.pnpm/node_modules/@types/punycode/package.json","../node_modules/.pnpm/node_modules/@types/puppeteer-core/package.json","../node_modules/.pnpm/node_modules/@types/querystring/package.json","../node_modules/.pnpm/node_modules/@types/readline/package.json","../node_modules/.pnpm/node_modules/@types/readline/promises/package.json","../node_modules/.pnpm/node_modules/@types/repl/package.json","../node_modules/.pnpm/node_modules/@types/stream/consumers/package.json","../node_modules/.pnpm/node_modules/@types/stream/package.json","../node_modules/.pnpm/node_modules/@types/stream/promises/package.json","../node_modules/.pnpm/node_modules/@types/stream/web/package.json","../node_modules/.pnpm/node_modules/@types/string_decoder/package.json","../node_modules/.pnpm/node_modules/@types/timers/package.json","../node_modules/.pnpm/node_modules/@types/timers/promises/package.json","../node_modules/.pnpm/node_modules/@types/tls/package.json","../node_modules/.pnpm/node_modules/@types/trace_events/package.json","../node_modules/.pnpm/node_modules/@types/tty/package.json","../node_modules/.pnpm/node_modules/@types/url/package.json","../node_modules/.pnpm/node_modules/@types/util/package.json","../node_modules/.pnpm/node_modules/@types/util/types/package.json","../node_modules/.pnpm/node_modules/@types/v8/package.json","../node_modules/.pnpm/node_modules/@types/vm/package.json","../node_modules/.pnpm/node_modules/@types/wasi/package.json","../node_modules/.pnpm/node_modules/@types/worker_threads/package.json","../node_modules/.pnpm/node_modules/@types/zlib/package.json","../node_modules/.pnpm/node_modules/assert/package.json","../node_modules/.pnpm/node_modules/assert/strict/package.json","../node_modules/.pnpm/node_modules/async_hooks/package.json","../node_modules/.pnpm/node_modules/child_process/package.json","../node_modules/.pnpm/node_modules/cluster/package.json","../node_modules/.pnpm/node_modules/console/package.json","../node_modules/.pnpm/node_modules/constants/package.json","../node_modules/.pnpm/node_modules/crypto/package.json","../node_modules/.pnpm/node_modules/dgram/package.json","../node_modules/.pnpm/node_modules/diagnostics_channel/package.json","../node_modules/.pnpm/node_modules/dns/package.json","../node_modules/.pnpm/node_modules/dns/promises/package.json","../node_modules/.pnpm/node_modules/domain/package.json","../node_modules/.pnpm/node_modules/fs/package.json","../node_modules/.pnpm/node_modules/fs/promises/package.json","../node_modules/.pnpm/node_modules/http/package.json","../node_modules/.pnpm/node_modules/http2/package.json","../node_modules/.pnpm/node_modules/https/package.json","../node_modules/.pnpm/node_modules/inspector/package.json","../node_modules/.pnpm/node_modules/inspector/promises/package.json","../node_modules/.pnpm/node_modules/module/package.json","../node_modules/.pnpm/node_modules/net/package.json","../node_modules/.pnpm/node_modules/os/package.json","../node_modules/.pnpm/node_modules/path/package.json","../node_modules/.pnpm/node_modules/path/posix/package.json","../node_modules/.pnpm/node_modules/path/win32/package.json","../node_modules/.pnpm/node_modules/perf_hooks/package.json","../node_modules/.pnpm/node_modules/puppeteer-core/package.json","../node_modules/.pnpm/node_modules/querystring/package.json","../node_modules/.pnpm/node_modules/readline/package.json","../node_modules/.pnpm/node_modules/readline/promises/package.json","../node_modules/.pnpm/node_modules/repl/package.json","../node_modules/.pnpm/node_modules/stream/consumers/package.json","../node_modules/.pnpm/node_modules/stream/package.json","../node_modules/.pnpm/node_modules/stream/promises/package.json","../node_modules/.pnpm/node_modules/stream/web/package.json","../node_modules/.pnpm/node_modules/timers/package.json","../node_modules/.pnpm/node_modules/timers/promises/package.json","../node_modules/.pnpm/node_modules/tls/package.json","../node_modules/.pnpm/node_modules/trace_events/package.json","../node_modules/.pnpm/node_modules/tty/package.json","../node_modules/.pnpm/node_modules/url/package.json","../node_modules/.pnpm/node_modules/util/package.json","../node_modules/.pnpm/node_modules/util/types/package.json","../node_modules/.pnpm/node_modules/v8/package.json","../node_modules/.pnpm/node_modules/vm/package.json","../node_modules/.pnpm/node_modules/wasi/package.json","../node_modules/.pnpm/node_modules/worker_threads/package.json","../node_modules/.pnpm/node_modules/zlib/package.json","../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/entities/decode/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/package.json","../node_modules/.pnpm/pretty-format@30.5.1/node_modules/pretty-format/build/package.json","../node_modules/.pnpm/undici@7.29.0/node_modules/undici/types/package.json","../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/bidi/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/request/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/@sinonjs/fake-timers/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/@types/puppeteer-core/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/puppeteer-core/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/browser/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/element/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/mobile/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/session/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/actions/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/interception/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/package.json","../node_modules/types/expect-webdriverio.d.ts/package.json","../node_modules/@types/assert/package.json","../node_modules/@types/assert/strict/package.json","../node_modules/@types/async_hooks/package.json","../node_modules/@types/child_process/package.json","../node_modules/@types/cluster/package.json","../node_modules/@types/console/package.json","../node_modules/@types/constants/package.json","../node_modules/@types/crypto/package.json","../node_modules/@types/dgram/package.json","../node_modules/@types/diagnostics_channel/package.json","../node_modules/@types/dns/package.json","../node_modules/@types/dns/promises/package.json","../node_modules/@types/domain/package.json","../node_modules/@types/events/package.json","../node_modules/@types/fs/package.json","../node_modules/@types/fs/promises/package.json","../node_modules/@types/http/package.json","../node_modules/@types/http2/package.json","../node_modules/@types/https/package.json","../node_modules/@types/inspector/package.json","../node_modules/@types/inspector/promises/package.json","../node_modules/@types/module/package.json","../node_modules/@types/net/package.json","../node_modules/@types/os/package.json","../node_modules/@types/path/package.json","../node_modules/@types/path/posix/package.json","../node_modules/@types/path/win32/package.json","../node_modules/@types/perf_hooks/package.json","../node_modules/@types/process/package.json","../node_modules/@types/punycode/package.json","../node_modules/@types/puppeteer-core/package.json","../node_modules/@types/querystring/package.json","../node_modules/@types/readline/package.json","../node_modules/@types/readline/promises/package.json","../node_modules/@types/repl/package.json","../node_modules/@types/stream/consumers/package.json","../node_modules/@types/stream/package.json","../node_modules/@types/stream/promises/package.json","../node_modules/@types/stream/web/package.json","../node_modules/@types/string_decoder/package.json","../node_modules/@types/timers/package.json","../node_modules/@types/timers/promises/package.json","../node_modules/@types/tls/package.json","../node_modules/@types/trace_events/package.json","../node_modules/@types/tty/package.json","../node_modules/@types/url/package.json","../node_modules/@types/util/package.json","../node_modules/@types/util/types/package.json","../node_modules/@types/v8/package.json","../node_modules/@types/vm/package.json","../node_modules/@types/wasi/package.json","../node_modules/@types/wdio__globals/types/package.json","../node_modules/@types/worker_threads/package.json","../node_modules/@types/zlib/package.json","../node_modules/@vitest/snapshot/environment/package.json","../node_modules/@wdio/globals/types/package.json","../node_modules/assert/package.json","../node_modules/assert/strict/package.json","../node_modules/async_hooks/package.json","../node_modules/child_process/package.json","../node_modules/cluster/package.json","../node_modules/console/package.json","../node_modules/constants/package.json","../node_modules/crypto/package.json","../node_modules/dgram/package.json","../node_modules/diagnostics_channel/package.json","../node_modules/dns/package.json","../node_modules/dns/promises/package.json","../node_modules/domain/package.json","../node_modules/events/package.json","../node_modules/fs/package.json","../node_modules/fs/promises/package.json","../node_modules/http/package.json","../node_modules/http2/package.json","../node_modules/https/package.json","../node_modules/inspector/package.json","../node_modules/inspector/promises/package.json","../node_modules/module/package.json","../node_modules/net/package.json","../node_modules/os/package.json","../node_modules/path/package.json","../node_modules/path/posix/package.json","../node_modules/path/win32/package.json","../node_modules/perf_hooks/package.json","../node_modules/process/package.json","../node_modules/punycode/package.json","../node_modules/puppeteer-core/package.json","../node_modules/querystring/package.json","../node_modules/readline/package.json","../node_modules/readline/promises/package.json","../node_modules/repl/package.json","../node_modules/stream/consumers/package.json","../node_modules/stream/package.json","../node_modules/stream/promises/package.json","../node_modules/stream/web/package.json","../node_modules/string_decoder/package.json","../node_modules/timers/package.json","../node_modules/timers/promises/package.json","../node_modules/tls/package.json","../node_modules/trace_events/package.json","../node_modules/tty/package.json","../node_modules/url/package.json","../node_modules/util/package.json","../node_modules/util/types/package.json","../node_modules/v8/package.json","../node_modules/vm/package.json","../node_modules/wasi/package.json","../node_modules/worker_threads/package.json","../node_modules/zlib/package.json"]}
@@ -1,4 +1,5 @@
1
1
  import { isArrayContainingMatcher } from '../utils.js';
2
+ import { hasMultiRemoteFlag } from './multiRemoteUtils.js';
2
3
  export const wrapExpectedWithArray = (elements, actual, expected) => {
3
4
  if (Array.isArray(elements) && Array.isArray(actual) && !Array.isArray(expected) && !isArrayContainingMatcher(expected)) {
4
5
  expected = Array(actual.length).fill(expected);
@@ -87,7 +88,7 @@ export const awaitElementArray = async (received) => {
87
88
  return { elements: awaitedElements };
88
89
  };
89
90
  const isMultiRemote = (obj) => {
90
- return !!obj && typeof obj === 'object' && ('isMultiremote' in obj && obj.isMultiremote === true || 'isMultiRemote' in obj && obj.isMultiRemote === true);
91
+ return hasMultiRemoteFlag(obj);
91
92
  };
92
93
  export const isMultiRemoteElement = (obj) => {
93
94
  return isMultiRemote(obj) && !Array.isArray(obj) && 'selector' in obj;
@@ -97,7 +98,7 @@ export const isMultiRemoteElements = (obj) => {
97
98
  && Array.prototype.every.call(obj, isMultiRemoteElement);
98
99
  };
99
100
  export const isMultiRemoteElementArray = (obj) => {
100
- return !!obj && typeof obj === 'object' && 'isMultiremote' in obj && obj.isMultiremote === true && 'parent' in obj && 'foundWith' in obj && 'selector' in obj;
101
+ return hasMultiRemoteFlag(obj) && 'parent' in obj && 'foundWith' in obj && 'selector' in obj;
101
102
  };
102
103
  export const isMultiRemoteElementLike = (obj) => {
103
104
  return isMultiRemoteElement(obj) || isMultiRemoteElementsLike(obj);
@@ -1,6 +1,6 @@
1
- import { getPerInstanceValues, hasSameInstanceNames } from './multiRemoteUtils.js';
1
+ import { getPerInstanceValues, hasSameInstanceNames, isMultiRemoteBrowser } from './multiRemoteUtils.js';
2
2
  export async function executeBrowserCommand({ browser, expectedValue, compare, isNot = false, }) {
3
- if (browser.isMultiremote) {
3
+ if (isMultiRemoteBrowser(browser)) {
4
4
  const { instances } = browser;
5
5
  const perInstanceValues = getPerInstanceValues(expectedValue);
6
6
  const expected = perInstanceValues ?? Object.fromEntries(instances.map((name) => [name, expectedValue]));
@@ -1,10 +1,10 @@
1
1
  import { equals } from '../jasmineUtils.js';
2
2
  import { isArrayContainingMatcher } from '../utils.js';
3
3
  import { isSomeWrapper } from '../matchers/modifiers/some.js';
4
- import { awaitElementOrArray, isElement, isMultiRemoteElement, isMultiRemoteElementArray, isMultiRemoteElementLike, isMultiRemoteElements, isMultiRemoteElementsLike, isStrictlyElementArray } from './elementsUtil.js';
4
+ import { awaitElementOrArray, isElement, isMultiRemoteElement, isMultiRemoteElementArray, isMultiRemoteElements, isMultiRemoteElementsLike, isStrictlyElementArray } from './elementsUtil.js';
5
5
  import { getElementsPerInstance, getPerInstanceValues, hasSameInstanceNames } from './multiRemoteUtils.js';
6
6
  import { refreshElementArray } from './refetchElements.js';
7
- export async function executeCommandWithStrategy({ unresolvedElements, expectedValues, singleElementCompare, context: { isNot, iteration }, strategy = 'NewStrictMultipleElements', supportsArrayContaining = false, strictConfiguration = { allowEmptyElements: false, allowArrayWithSingleElement: false } }) {
7
+ export async function executeCommandWithStrategy({ unresolvedElements, expectedValues, singleElementCompare, context: { isNot = false, iteration }, supportsArrayContaining = false, strictConfiguration = { allowEmptyElements: false, allowArrayWithSingleElement: false } }) {
8
8
  const isSome = isSomeWrapper(unresolvedElements);
9
9
  const actualReceived = isSome ? unresolvedElements.elements : unresolvedElements;
10
10
  if (supportsArrayContaining && !isSome && isArrayContainingMatcher(expectedValues)) {
@@ -37,12 +37,6 @@ export async function executeCommandWithStrategy({ unresolvedElements, expectedV
37
37
  }
38
38
  return { subject: selector, ...await singleElementCompare(selector, expectedValues) };
39
39
  }
40
- if (strategy === 'LegacyLooseMultipleElements') {
41
- if (isSome) {
42
- throw new Error('some(elements) works only when enabling `useToHaveTextStrictMultiElementsCompareStrategy`');
43
- }
44
- return legacyMultipleElementResultsStrategy(actualReceived, expectedValues, singleElementCompare, isNot);
45
- }
46
40
  return multipleElementResultsStrategy(actualReceived, expectedValues, singleElementCompare, { isNot, isSome, iteration }, strictConfiguration);
47
41
  }
48
42
  const multiRemoteArrayContainingStrategy = async (elements, expectedValues, singleElementCompare, iteration) => {
@@ -64,39 +58,6 @@ const multiRemoteArrayContainingStrategy = async (elements, expectedValues, sing
64
58
  expected: Object.fromEntries(instances.map((instance) => [instance, expectedValues])),
65
59
  };
66
60
  };
67
- export const legacyMultipleElementResultsStrategy = async (unresolvedElements, expectedValues, singleElementCompare, _isNot) => {
68
- const { selector, other, isEmptyElements } = await awaitElementOrArray(unresolvedElements);
69
- if (isMultiRemoteElementLike(selector)) {
70
- throw new Error('Multi-remote elements works only when enabling `useToHaveTextStrictMultiElementsCompareStrategy`');
71
- }
72
- const subject = selector ?? other;
73
- if (!selector || isEmptyElements) {
74
- return {
75
- subject: subject,
76
- success: false,
77
- actual: undefined,
78
- abort: true,
79
- };
80
- }
81
- if (isElement(selector)) {
82
- const compareResult = await singleElementCompare(selector, expectedValues);
83
- return {
84
- subject,
85
- ...compareResult,
86
- };
87
- }
88
- const settled = await Promise.allSettled(Array.from(selector).map((element, index) => singleElementCompare(element, expectedValues, index)));
89
- const firstRejection = settled.find((r) => r.status === 'rejected');
90
- if (firstRejection) {
91
- throw firstRejection.reason;
92
- }
93
- const results = settled.map((r) => r.value);
94
- return {
95
- subject,
96
- success: results.length > 0 && results.every((res) => res.success === true),
97
- actual: results.map(({ actual: value }) => value),
98
- };
99
- };
100
61
  export const multipleElementResultsStrategy = async (unresolvedElements, expectedValues, singleElementCompare, { isNot, isSome, iteration }, { allowEmptyElements = false, allowArrayWithSingleElement = false, allowObjectExpectedValue = false } = {}) => {
101
62
  const { selector, other, multiRemoteSelector } = await awaitElementOrArray(unresolvedElements);
102
63
  const isRefetchable = isStrictlyElementArray(selector) || isMultiRemoteElementArray(selector) || isMultiRemoteElements(selector);