@mobilewright/core 0.0.40 → 0.0.42

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 (95) hide show
  1. package/dist/device.d.ts +4 -0
  2. package/dist/device.d.ts.map +1 -1
  3. package/dist/device.js +13 -2
  4. package/dist/device.js.map +1 -1
  5. package/dist/expect.d.ts +82 -11
  6. package/dist/expect.d.ts.map +1 -1
  7. package/dist/expect.js +181 -22
  8. package/dist/expect.js.map +1 -1
  9. package/dist/expect.test.js +17 -0
  10. package/dist/expect.test.js.map +1 -1
  11. package/dist/fake-webview-session.d.ts +14 -0
  12. package/dist/fake-webview-session.d.ts.map +1 -0
  13. package/dist/fake-webview-session.js +26 -0
  14. package/dist/fake-webview-session.js.map +1 -0
  15. package/dist/index.d.ts +4 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/locator.d.ts +8 -5
  20. package/dist/locator.d.ts.map +1 -1
  21. package/dist/locator.js +5 -6
  22. package/dist/locator.js.map +1 -1
  23. package/dist/locator.test.js +178 -0
  24. package/dist/locator.test.js.map +1 -1
  25. package/dist/page.d.ts +52 -0
  26. package/dist/page.d.ts.map +1 -0
  27. package/dist/page.js +226 -0
  28. package/dist/page.js.map +1 -0
  29. package/dist/page.test.d.ts +2 -0
  30. package/dist/page.test.d.ts.map +1 -0
  31. package/dist/page.test.js +263 -0
  32. package/dist/page.test.js.map +1 -0
  33. package/dist/playwright-engine.d.ts +23 -0
  34. package/dist/playwright-engine.d.ts.map +1 -0
  35. package/dist/playwright-engine.js +79 -0
  36. package/dist/playwright-engine.js.map +1 -0
  37. package/dist/playwright-engine.test.d.ts +2 -0
  38. package/dist/playwright-engine.test.d.ts.map +1 -0
  39. package/dist/playwright-engine.test.js +45 -0
  40. package/dist/playwright-engine.test.js.map +1 -0
  41. package/dist/query-engine.d.ts +4 -0
  42. package/dist/query-engine.d.ts.map +1 -1
  43. package/dist/query-engine.js +15 -0
  44. package/dist/query-engine.js.map +1 -1
  45. package/dist/query-engine.test.js +64 -1
  46. package/dist/query-engine.test.js.map +1 -1
  47. package/dist/screen.d.ts +7 -0
  48. package/dist/screen.d.ts.map +1 -1
  49. package/dist/screen.js +7 -0
  50. package/dist/screen.js.map +1 -1
  51. package/dist/stackTrace.d.ts +3 -0
  52. package/dist/stackTrace.d.ts.map +1 -1
  53. package/dist/stackTrace.js +10 -0
  54. package/dist/stackTrace.js.map +1 -1
  55. package/dist/stackTrace.test.d.ts +2 -0
  56. package/dist/stackTrace.test.d.ts.map +1 -0
  57. package/dist/stackTrace.test.js +43 -0
  58. package/dist/stackTrace.test.js.map +1 -0
  59. package/dist/web-expect-matcher.d.ts +29 -0
  60. package/dist/web-expect-matcher.d.ts.map +1 -0
  61. package/dist/web-expect-matcher.js +23 -0
  62. package/dist/web-expect-matcher.js.map +1 -0
  63. package/dist/web-expect-matcher.test.d.ts +2 -0
  64. package/dist/web-expect-matcher.test.d.ts.map +1 -0
  65. package/dist/web-expect-matcher.test.js +21 -0
  66. package/dist/web-expect-matcher.test.js.map +1 -0
  67. package/dist/web-expect.test.d.ts +2 -0
  68. package/dist/web-expect.test.d.ts.map +1 -0
  69. package/dist/web-expect.test.js +93 -0
  70. package/dist/web-expect.test.js.map +1 -0
  71. package/dist/web-locator-pwexpect.test.d.ts +2 -0
  72. package/dist/web-locator-pwexpect.test.d.ts.map +1 -0
  73. package/dist/web-locator-pwexpect.test.js +36 -0
  74. package/dist/web-locator-pwexpect.test.js.map +1 -0
  75. package/dist/web-locator-reinjection.test.d.ts +2 -0
  76. package/dist/web-locator-reinjection.test.d.ts.map +1 -0
  77. package/dist/web-locator-reinjection.test.js +83 -0
  78. package/dist/web-locator-reinjection.test.js.map +1 -0
  79. package/dist/web-locator.d.ts +120 -0
  80. package/dist/web-locator.d.ts.map +1 -0
  81. package/dist/web-locator.js +332 -0
  82. package/dist/web-locator.js.map +1 -0
  83. package/dist/web-locator.test.d.ts +2 -0
  84. package/dist/web-locator.test.d.ts.map +1 -0
  85. package/dist/web-locator.test.js +424 -0
  86. package/dist/web-locator.test.js.map +1 -0
  87. package/dist/webview-locator.d.ts +14 -0
  88. package/dist/webview-locator.d.ts.map +1 -0
  89. package/dist/webview-locator.js +95 -0
  90. package/dist/webview-locator.js.map +1 -0
  91. package/dist/webview-locator.test.d.ts +2 -0
  92. package/dist/webview-locator.test.d.ts.map +1 -0
  93. package/dist/webview-locator.test.js +203 -0
  94. package/dist/webview-locator.test.js.map +1 -0
  95. package/package.json +3 -2
package/dist/device.d.ts CHANGED
@@ -3,6 +3,10 @@ import { Screen } from './screen.js';
3
3
  import type { LocatorOptions } from './locator.js';
4
4
  export interface DeviceOptions {
5
5
  locatorDefaults?: LocatorOptions;
6
+ /** Timeout waiting for app to reach foreground after launch, in ms. Default: 20000. */
7
+ appLaunchTimeout?: number;
8
+ /** Timeout for app installation in ms. Default: none (no limit). */
9
+ installTimeout?: number;
6
10
  }
7
11
  export declare class Device {
8
12
  readonly driver: MobilewrightDriver;
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,qBAAa,MAAM;IACjB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;gBAEzB,MAAM,EAAE,kBAAkB,EAAE,IAAI,GAAE,aAAkB;IAKhE,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAMtC,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAInD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,uEAAuE;IACjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,IAAI,MAAM,IAAI,MAAM,CAGnB;IAIK,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAItC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,4DAA4D;IACtD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;CAGhD"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOnD,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAYD,qBAAa,MAAM;IACjB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;gBAEzB,MAAM,EAAE,kBAAkB,EAAE,IAAI,GAAE,aAAkB;IAKhE,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAMtC,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAInD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,uEAAuE;IACjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,IAAI,MAAM,IAAI,MAAM,CAGnB;IAIK,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAItC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,4DAA4D;IACtD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;CAGhD"}
package/dist/device.js CHANGED
@@ -3,6 +3,12 @@ import { Screen } from './screen.js';
3
3
  import { retryUntil } from './poll.js';
4
4
  const debug = createDebug('mw:device');
5
5
  const LAUNCH_APP_TIMEOUT = 20_000;
6
+ function raceWithTimeout(promise, ms, message) {
7
+ return new Promise((resolve, reject) => {
8
+ const timer = setTimeout(() => reject(new Error(message)), ms);
9
+ promise.then((value) => { clearTimeout(timer); resolve(value); }, (err) => { clearTimeout(timer); reject(err); });
10
+ });
11
+ }
6
12
  export class Device {
7
13
  constructor(driver, opts = {}) {
8
14
  this.cleanupCallbacks = [];
@@ -53,9 +59,10 @@ export class Device {
53
59
  if (opts?.noWaitAfter) {
54
60
  return;
55
61
  }
62
+ const timeout = this.opts.appLaunchTimeout ?? LAUNCH_APP_TIMEOUT;
56
63
  debug('waiting for %s to reach foreground', bundleId);
57
64
  try {
58
- await retryUntil(() => this.getForegroundApp(), (app) => app.bundleId === bundleId, LAUNCH_APP_TIMEOUT, `launchApp: timed out waiting for "${bundleId}" to be in foreground`);
65
+ await retryUntil(() => this.getForegroundApp(), (app) => app.bundleId === bundleId, timeout, `launchApp: timed out waiting for "${bundleId}" to be in foreground`);
59
66
  debug('%s is in foreground', bundleId);
60
67
  }
61
68
  catch (err) {
@@ -80,7 +87,11 @@ export class Device {
80
87
  return this.driver.getForegroundApp();
81
88
  }
82
89
  async installApp(path) {
83
- return this.driver.installApp(path);
90
+ const { installTimeout } = this.opts;
91
+ if (installTimeout === undefined) {
92
+ return this.driver.installApp(path);
93
+ }
94
+ return raceWithTimeout(this.driver.installApp(path), installTimeout, `installApp timed out after ${installTimeout}ms`);
84
95
  }
85
96
  async uninstallApp(bundleId) {
86
97
  return this.driver.uninstallApp(bundleId);
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
package/dist/expect.d.ts CHANGED
@@ -1,24 +1,55 @@
1
- import type { Locator } from './locator.js';
1
+ import type { Locator, StepFn } from './locator.js';
2
+ import { Page } from './page.js';
3
+ import { WebLocator } from './web-locator.js';
2
4
  export interface ExpectOptions {
3
5
  timeout?: number;
4
6
  }
5
7
  /**
6
- * Playwright-style expect for mobile locators and plain values.
8
+ * Playwright-style expect for mobile locators, web locators, pages, and plain values.
7
9
  *
8
10
  * Usage:
9
11
  * expect(locator).toBeVisible()
10
- * expect(locator).not.toBeVisible()
11
- * expect(locator).toHaveText('Hello')
12
+ * expect(page).toHaveURL(/dashboard/)
13
+ * expect(webLocator).toHaveText('Hello')
12
14
  * expect(42).toBe(42)
13
15
  */
16
+ export declare function expect(actual: Page): PageAssertions;
17
+ export declare function expect(actual: WebLocator): WebLocatorAssertions;
14
18
  export declare function expect(actual: Locator): LocatorAssertions;
15
19
  export declare function expect<T>(actual: T): ValueAssertions<T>;
20
+ interface LocatorLike {
21
+ isVisible(opts?: {
22
+ timeout?: number;
23
+ }): Promise<boolean>;
24
+ isEnabled(opts?: {
25
+ timeout?: number;
26
+ }): Promise<boolean>;
27
+ isChecked(opts?: {
28
+ timeout?: number;
29
+ }): Promise<boolean>;
30
+ isSelected?(opts?: {
31
+ timeout?: number;
32
+ }): Promise<boolean>;
33
+ isFocused?(opts?: {
34
+ timeout?: number;
35
+ }): Promise<boolean>;
36
+ getText(opts?: {
37
+ timeout?: number;
38
+ }): Promise<string>;
39
+ getValue(opts?: {
40
+ timeout?: number;
41
+ }): Promise<string>;
42
+ count(): Promise<number>;
43
+ expectTimeout?: number;
44
+ _stepFn?: StepFn | null;
45
+ }
16
46
  declare class LocatorAssertions {
17
- private readonly locator;
18
- private readonly negated;
19
- constructor(locator: Locator, negated: boolean);
47
+ protected readonly locator: LocatorLike;
48
+ protected readonly negated: boolean;
49
+ constructor(locator: LocatorLike, negated: boolean);
20
50
  get not(): LocatorAssertions;
21
- private _wrapAssertion;
51
+ private assertionTimeout;
52
+ protected _wrapAssertion<T>(method: string, fn: () => Promise<T>): Promise<T>;
22
53
  toBeVisible(opts?: ExpectOptions): Promise<void>;
23
54
  toBeHidden(opts?: ExpectOptions): Promise<void>;
24
55
  toBeEnabled(opts?: ExpectOptions): Promise<void>;
@@ -31,9 +62,9 @@ declare class LocatorAssertions {
31
62
  toHaveCount(expected: number, opts?: ExpectOptions): Promise<void>;
32
63
  toBeEmpty(opts?: ExpectOptions): Promise<void>;
33
64
  toHaveValue(expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
34
- private assertBoolean;
35
- private assertText;
36
- private retryAssertion;
65
+ protected assertBoolean(name: string, poll: () => Promise<boolean>, opts?: ExpectOptions): Promise<void>;
66
+ protected assertText(predicate: (text: string) => boolean, expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
67
+ protected retryAssertion<T>(poll: () => Promise<T>, predicate: (value: T) => boolean, timeout: number, failMessage: string | (() => string)): Promise<void>;
37
68
  }
38
69
  declare class ValueAssertions<T> {
39
70
  private readonly actual;
@@ -64,6 +95,46 @@ declare class ValueAssertions<T> {
64
95
  toThrow(expected?: string | RegExp): void;
65
96
  private assert;
66
97
  }
98
+ declare class PageAssertions {
99
+ private readonly page;
100
+ private readonly negated;
101
+ constructor(page: Page, negated: boolean);
102
+ get not(): PageAssertions;
103
+ private _wrapAssertion;
104
+ private matches;
105
+ toHaveURL(url: string | RegExp, opts?: ExpectOptions): Promise<void>;
106
+ toHaveTitle(title: string | RegExp, opts?: ExpectOptions): Promise<void>;
107
+ }
108
+ declare class WebLocatorAssertions {
109
+ private readonly webLocator;
110
+ private readonly negated;
111
+ constructor(webLocator: WebLocator, negated: boolean);
112
+ get not(): WebLocatorAssertions;
113
+ private assertionTimeout;
114
+ private runMatcher;
115
+ toBeVisible(opts?: ExpectOptions): Promise<void>;
116
+ toBeHidden(opts?: ExpectOptions): Promise<void>;
117
+ toBeEnabled(opts?: ExpectOptions): Promise<void>;
118
+ toBeDisabled(opts?: ExpectOptions): Promise<void>;
119
+ toBeEditable(opts?: ExpectOptions): Promise<void>;
120
+ toBeFocused(opts?: ExpectOptions): Promise<void>;
121
+ toBeAttached(opts?: ExpectOptions): Promise<void>;
122
+ toBeInViewport(opts?: ExpectOptions & {
123
+ ratio?: number;
124
+ }): Promise<void>;
125
+ toBeChecked(opts?: ExpectOptions): Promise<void>;
126
+ toBeEmpty(opts?: ExpectOptions): Promise<void>;
127
+ toHaveText(expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
128
+ toContainText(expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
129
+ toHaveValue(expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
130
+ toHaveCount(expected: number, opts?: ExpectOptions): Promise<void>;
131
+ toHaveAttribute(name: string, expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
132
+ toHaveClass(expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
133
+ toContainClass(expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
134
+ toHaveCSS(name: string, expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
135
+ toHaveId(expected: string | RegExp, opts?: ExpectOptions): Promise<void>;
136
+ toHaveJSProperty(name: string, expected: unknown, opts?: ExpectOptions): Promise<void>;
137
+ }
67
138
  export declare class ExpectError extends Error {
68
139
  constructor(message: string);
69
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,CAAC;AAC3D,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAQzD,cAAM,iBAAiB;IAEnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO;IAGnC,IAAI,GAAG,IAAI,iBAAiB,CAE3B;IAED,OAAO,CAAC,cAAc;IAUhB,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,UAAU,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1E,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBlE,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B9C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YA8BnE,aAAa;YAeb,UAAU;YAgCV,cAAc;CAY7B;AAED,cAAM,eAAe,CAAC,CAAC;IAEnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,OAAO;IAGnC,IAAI,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAE5B;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IAKvB,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IAK1B,UAAU,IAAI,IAAI;IAIlB,SAAS,IAAI,IAAI;IAIjB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIvC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIpC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,IAAI;IAMlD,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQlC,QAAQ,IAAI,IAAI;IAIhB,aAAa,IAAI,IAAI;IAIrB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMvC,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKxC,WAAW,IAAI,IAAI;IAInB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3C,OAAO,IAAI,IAAI;IAIf,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAMvC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMpC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAOlD,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMtD,aAAa,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IAMhC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAsBzC,OAAO,CAAC,MAAM;CAMf;AAMD,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAK5B"}
1
+ {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}
package/dist/expect.js CHANGED
@@ -1,13 +1,38 @@
1
1
  import { LocatorError } from './locator.js';
2
+ import { Page } from './page.js';
3
+ import { WebLocator } from './web-locator.js';
2
4
  import { retryUntil } from './poll.js';
3
- import { filterStack, captureLocation } from './stackTrace.js';
5
+ import { filterStack, runStep } from './stackTrace.js';
6
+ import { textValue } from './web-expect-matcher.js';
4
7
  const DEFAULT_TIMEOUT = 5_000;
5
8
  export function expect(actual) {
9
+ if (actual instanceof Page) {
10
+ return new PageAssertions(actual, false);
11
+ }
12
+ if (actual instanceof WebLocator) {
13
+ return new WebLocatorAssertions(actual, false);
14
+ }
6
15
  if (actual && typeof actual === 'object' && 'tap' in actual && 'getText' in actual) {
7
16
  return new LocatorAssertions(actual, false);
8
17
  }
9
18
  return new ValueAssertions(actual, false);
10
19
  }
20
+ // Wrap an assertion body as a reporter step titled after the matcher, shared by
21
+ // all assertion classes so the title/negation convention lives in one place.
22
+ function wrapAssertion(stepFn, negated, method, fn) {
23
+ const title = negated ? `expect.not.${method}()` : `expect.${method}()`;
24
+ return runStep(stepFn, title, fn);
25
+ }
26
+ // Poll until `predicate` holds (or the timeout elapses), re-raising any failure
27
+ // as an ExpectError. The predicate must already account for negation.
28
+ async function retryAssertion(poll, predicate, timeout, failMessage) {
29
+ try {
30
+ await retryUntil(poll, predicate, timeout, failMessage);
31
+ }
32
+ catch (e) {
33
+ throw new ExpectError(e instanceof Error ? e.message : String(e));
34
+ }
35
+ }
11
36
  class LocatorAssertions {
12
37
  constructor(locator, negated) {
13
38
  this.locator = locator;
@@ -16,14 +41,11 @@ class LocatorAssertions {
16
41
  get not() {
17
42
  return new LocatorAssertions(this.locator, !this.negated);
18
43
  }
44
+ assertionTimeout(opts) {
45
+ return opts?.timeout ?? this.locator.expectTimeout ?? DEFAULT_TIMEOUT;
46
+ }
19
47
  _wrapAssertion(method, fn) {
20
- const stepFn = this.locator._stepFn;
21
- const title = this.negated ? `expect.not.${method}()` : `expect.${method}()`;
22
- if (stepFn) {
23
- const location = captureLocation();
24
- return stepFn(title, fn, location);
25
- }
26
- return fn();
48
+ return wrapAssertion(this.locator._stepFn, this.negated, method, fn);
27
49
  }
28
50
  async toBeVisible(opts) {
29
51
  return this._wrapAssertion('toBeVisible', async () => {
@@ -53,12 +75,20 @@ class LocatorAssertions {
53
75
  }
54
76
  async toBeSelected(opts) {
55
77
  return this._wrapAssertion('toBeSelected', async () => {
56
- await this.assertBoolean('selected', () => this.locator.isSelected({ timeout: 0 }), opts);
78
+ const isSelected = this.locator.isSelected?.bind(this.locator);
79
+ if (!isSelected) {
80
+ throw new ExpectError('toBeSelected() is not supported for this locator');
81
+ }
82
+ await this.assertBoolean('selected', () => isSelected({ timeout: 0 }), opts);
57
83
  });
58
84
  }
59
85
  async toBeFocused(opts) {
60
86
  return this._wrapAssertion('toBeFocused', async () => {
61
- await this.assertBoolean('focused', () => this.locator.isFocused({ timeout: 0 }), opts);
87
+ const isFocused = this.locator.isFocused?.bind(this.locator);
88
+ if (!isFocused) {
89
+ throw new ExpectError('toBeFocused() is not supported for this locator');
90
+ }
91
+ await this.assertBoolean('focused', () => isFocused({ timeout: 0 }), opts);
62
92
  });
63
93
  }
64
94
  async toBeChecked(opts) {
@@ -82,7 +112,7 @@ class LocatorAssertions {
82
112
  await this.retryAssertion(async () => { lastCount = await this.locator.count(); return lastCount; }, (count) => {
83
113
  const matches = count === expected;
84
114
  return this.negated ? !matches : matches;
85
- }, opts?.timeout ?? DEFAULT_TIMEOUT, () => this.negated
115
+ }, this.assertionTimeout(opts), () => this.negated
86
116
  ? `Expected element count NOT to be ${expected}, but got ${lastCount}`
87
117
  : `Expected element count to be ${expected}, but got ${lastCount}`);
88
118
  });
@@ -107,7 +137,7 @@ class LocatorAssertions {
107
137
  }
108
138
  const isEmpty = value === '';
109
139
  return this.negated ? !isEmpty : isEmpty;
110
- }, opts?.timeout ?? DEFAULT_TIMEOUT, () => this.negated
140
+ }, this.assertionTimeout(opts), () => this.negated
111
141
  ? 'Expected element NOT to be empty, but it was'
112
142
  : `Expected element to be empty, but got "${lastValue}"`);
113
143
  });
@@ -132,13 +162,13 @@ class LocatorAssertions {
132
162
  }
133
163
  const matches = expected instanceof RegExp ? expected.test(value) : value === expected;
134
164
  return this.negated ? !matches : matches;
135
- }, opts?.timeout ?? DEFAULT_TIMEOUT, () => this.negated
165
+ }, this.assertionTimeout(opts), () => this.negated
136
166
  ? `Expected element NOT to have value "${expected}", but got "${lastValue}"`
137
167
  : `Expected element to have value "${expected}", but got "${lastValue}"`);
138
168
  });
139
169
  }
140
170
  async assertBoolean(name, poll, opts) {
141
- await this.retryAssertion(poll, (result) => (this.negated ? !result : result), opts?.timeout ?? DEFAULT_TIMEOUT, this.negated
171
+ await this.retryAssertion(poll, (result) => (this.negated ? !result : result), this.assertionTimeout(opts), this.negated
142
172
  ? `Expected element to NOT be ${name}, but it was`
143
173
  : `Expected element to be ${name}, but it was not`);
144
174
  }
@@ -161,17 +191,12 @@ class LocatorAssertions {
161
191
  }
162
192
  const matches = predicate(text);
163
193
  return this.negated ? !matches : matches;
164
- }, opts?.timeout ?? DEFAULT_TIMEOUT, () => this.negated
194
+ }, this.assertionTimeout(opts), () => this.negated
165
195
  ? `Expected element NOT to have text "${expected}", but got "${lastText}"`
166
196
  : `Expected element to have text "${expected}", but got "${lastText}"`);
167
197
  }
168
- async retryAssertion(poll, predicate, timeout, failMessage) {
169
- try {
170
- await retryUntil(poll, predicate, timeout, failMessage);
171
- }
172
- catch (e) {
173
- throw new ExpectError(e instanceof Error ? e.message : String(e));
174
- }
198
+ retryAssertion(poll, predicate, timeout, failMessage) {
199
+ return retryAssertion(poll, predicate, timeout, failMessage);
175
200
  }
176
201
  }
177
202
  class ValueAssertions {
@@ -297,6 +322,140 @@ class ValueAssertions {
297
322
  }
298
323
  }
299
324
  }
325
+ // ─── PageAssertions ───────────────────────────────────────────
326
+ class PageAssertions {
327
+ constructor(page, negated) {
328
+ this.page = page;
329
+ this.negated = negated;
330
+ }
331
+ get not() {
332
+ return new PageAssertions(this.page, !this.negated);
333
+ }
334
+ _wrapAssertion(method, fn) {
335
+ return wrapAssertion(this.page._stepFn, this.negated, method, fn);
336
+ }
337
+ // Applies negation so callers pass the plain "does it match?" predicate.
338
+ matches(pass) {
339
+ return this.negated ? !pass : pass;
340
+ }
341
+ async toHaveURL(url, opts) {
342
+ return this._wrapAssertion('toHaveURL', async () => {
343
+ let last = '';
344
+ await retryAssertion(async () => { try {
345
+ last = await this.page.url();
346
+ }
347
+ catch {
348
+ last = '';
349
+ } return last; }, (current) => this.matches(url instanceof RegExp ? url.test(current) : current === url), opts?.timeout ?? DEFAULT_TIMEOUT, () => `Expected page URL to ${this.negated ? 'not ' : ''}match "${url}", but got "${last}"`);
350
+ });
351
+ }
352
+ async toHaveTitle(title, opts) {
353
+ return this._wrapAssertion('toHaveTitle', async () => {
354
+ let last = '';
355
+ await retryAssertion(async () => { try {
356
+ last = await this.page.title();
357
+ }
358
+ catch {
359
+ last = '';
360
+ } return last; }, (current) => this.matches(title instanceof RegExp ? title.test(current) : current === title), opts?.timeout ?? DEFAULT_TIMEOUT, () => `Expected page title to ${this.negated ? 'not ' : ''}match "${title}", but got "${last}"`);
361
+ });
362
+ }
363
+ }
364
+ // ─── WebLocatorAssertions ─────────────────────────────────────
365
+ // Standalone: every web matcher routes through Playwright's injected expect()
366
+ // (window.__mwInjected.expect) for byte-exact matcher semantics. Native
367
+ // LocatorAssertions and PageAssertions are unaffected.
368
+ class WebLocatorAssertions {
369
+ constructor(webLocator, negated) {
370
+ this.webLocator = webLocator;
371
+ this.negated = negated;
372
+ }
373
+ get not() {
374
+ return new WebLocatorAssertions(this.webLocator, !this.negated);
375
+ }
376
+ assertionTimeout(opts) {
377
+ return opts?.timeout ?? this.webLocator.expectTimeout ?? DEFAULT_TIMEOUT;
378
+ }
379
+ // Poll the injected matcher until matches !== isNot, or throw ExpectError.
380
+ runMatcher(method, params, opts) {
381
+ return wrapAssertion(this.webLocator._stepFn, this.negated, method, async () => {
382
+ const isNot = this.negated;
383
+ let received;
384
+ let missingReceived = false;
385
+ await retryAssertion(async () => {
386
+ const result = await this.webLocator._runInjectedExpect({ ...params, isNot, timeout: 0 });
387
+ received = result.received;
388
+ missingReceived = result.missingReceived ?? false;
389
+ return result.matches;
390
+ }, (matches) => matches !== isNot, this.assertionTimeout(opts), () => {
391
+ const got = missingReceived ? 'no element' : fmt(received);
392
+ return isNot
393
+ ? `Expected ${method} NOT to match, but it did (received ${got})`
394
+ : `Expected ${method} to match, but it did not (received ${got})`;
395
+ });
396
+ });
397
+ }
398
+ toBeVisible(opts) {
399
+ return this.runMatcher('toBeVisible', { expression: 'to.be.visible' }, opts);
400
+ }
401
+ toBeHidden(opts) {
402
+ return this.runMatcher('toBeHidden', { expression: 'to.be.hidden' }, opts);
403
+ }
404
+ toBeEnabled(opts) {
405
+ return this.runMatcher('toBeEnabled', { expression: 'to.be.enabled' }, opts);
406
+ }
407
+ toBeDisabled(opts) {
408
+ return this.runMatcher('toBeDisabled', { expression: 'to.be.disabled' }, opts);
409
+ }
410
+ toBeEditable(opts) {
411
+ return this.runMatcher('toBeEditable', { expression: 'to.be.editable' }, opts);
412
+ }
413
+ toBeFocused(opts) {
414
+ return this.runMatcher('toBeFocused', { expression: 'to.be.focused' }, opts);
415
+ }
416
+ toBeAttached(opts) {
417
+ return this.runMatcher('toBeAttached', { expression: 'to.be.attached' }, opts);
418
+ }
419
+ toBeInViewport(opts) {
420
+ return this.runMatcher('toBeInViewport', { expression: 'to.be.in.viewport', expectedNumber: opts?.ratio }, opts);
421
+ }
422
+ toBeChecked(opts) {
423
+ return this.runMatcher('toBeChecked', { expression: 'to.be.checked', expectedValue: { checked: true, indeterminate: false } }, opts);
424
+ }
425
+ toBeEmpty(opts) {
426
+ return this.runMatcher('toBeEmpty', { expression: 'to.be.empty' }, opts);
427
+ }
428
+ toHaveText(expected, opts) {
429
+ return this.runMatcher('toHaveText', { expression: 'to.have.text', expectedText: [textValue(expected, { normalizeWhiteSpace: true })] }, opts);
430
+ }
431
+ toContainText(expected, opts) {
432
+ return this.runMatcher('toContainText', { expression: 'to.have.text', expectedText: [textValue(expected, { normalizeWhiteSpace: true, matchSubstring: true })] }, opts);
433
+ }
434
+ toHaveValue(expected, opts) {
435
+ return this.runMatcher('toHaveValue', { expression: 'to.have.value', expectedText: [textValue(expected)] }, opts);
436
+ }
437
+ toHaveCount(expected, opts) {
438
+ return this.runMatcher('toHaveCount', { expression: 'to.have.count', expectedNumber: expected }, opts);
439
+ }
440
+ toHaveAttribute(name, expected, opts) {
441
+ return this.runMatcher('toHaveAttribute', { expression: 'to.have.attribute.value', expressionArg: name, expectedText: [textValue(expected)] }, opts);
442
+ }
443
+ toHaveClass(expected, opts) {
444
+ return this.runMatcher('toHaveClass', { expression: 'to.have.class', expectedText: [textValue(expected)] }, opts);
445
+ }
446
+ toContainClass(expected, opts) {
447
+ return this.runMatcher('toContainClass', { expression: 'to.contain.class', expectedText: [textValue(expected)] }, opts);
448
+ }
449
+ toHaveCSS(name, expected, opts) {
450
+ return this.runMatcher('toHaveCSS', { expression: 'to.have.css', expressionArg: name, expectedText: [textValue(expected)] }, opts);
451
+ }
452
+ toHaveId(expected, opts) {
453
+ return this.runMatcher('toHaveId', { expression: 'to.have.id', expectedText: [textValue(expected)] }, opts);
454
+ }
455
+ toHaveJSProperty(name, expected, opts) {
456
+ return this.runMatcher('toHaveJSProperty', { expression: 'to.have.property', expressionArg: name, expectedValue: expected }, opts);
457
+ }
458
+ }
300
459
  function fmt(value) {
301
460
  return typeof value === 'string' ? `"${value}"` : String(value);
302
461
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expect.js","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}
@@ -628,4 +628,21 @@ test.describe('expect', () => {
628
628
  });
629
629
  });
630
630
  });
631
+ test('toBeVisible uses expectTimeout from locator options as default', async () => {
632
+ const driver = createMockDriver([node({ type: 'Button', label: 'Submit', isVisible: false })]);
633
+ const locator = Locator.root(driver, { expectTimeout: 100 }).getByLabel('Submit');
634
+ const start = Date.now();
635
+ await expect(mwExpect(locator).toBeVisible()).rejects.toThrow();
636
+ const elapsed = Date.now() - start;
637
+ expect(elapsed).toBeGreaterThanOrEqual(90);
638
+ expect(elapsed).toBeLessThan(1_000);
639
+ });
640
+ test('per-call timeout overrides expectTimeout from locator options', async () => {
641
+ const driver = createMockDriver([node({ type: 'Button', label: 'Submit', isVisible: false })]);
642
+ const locator = Locator.root(driver, { expectTimeout: 5_000 }).getByLabel('Submit');
643
+ const start = Date.now();
644
+ await expect(mwExpect(locator).toBeVisible({ timeout: 100 })).rejects.toThrow();
645
+ const elapsed = Date.now() - start;
646
+ expect(elapsed).toBeLessThan(1_000);
647
+ });
631
648
  //# sourceMappingURL=expect.test.js.map