@empiricalrun/playwright-utils 0.60.0 → 0.60.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/api-worker-client.d.ts +2 -0
- package/dist/api-worker-client.d.ts.map +1 -1
- package/dist/api-worker-client.js +4 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -22
- package/dist/email.d.ts +7 -2
- package/dist/email.d.ts.map +1 -1
- package/dist/email.js +2 -2
- package/dist/generated/api-worker-openapi.d.ts +2015 -2548
- package/dist/generated/api-worker-openapi.d.ts.map +1 -1
- package/dist/inbox-client.d.ts +2 -7
- package/dist/inbox-client.d.ts.map +1 -1
- package/dist/inbox-client.js +7 -45
- package/dist/mailosaur-client.d.ts +2 -5
- package/dist/mailosaur-client.d.ts.map +1 -1
- package/dist/mailosaur-client.js +7 -7
- package/dist/reporter/util.d.ts.map +1 -1
- package/dist/reporter/util.js +9 -24
- package/dist/test/scripts/pw-locator-patch/dismiss-overlays/index.js +1 -1
- package/docs/email.md +19 -0
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @empiricalrun/playwright-utils
|
|
2
2
|
|
|
3
|
+
## 0.60.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 185182e: refactor: route test-execution api-worker requests through openapi-fetch.
|
|
8
|
+
|
|
9
|
+
## 0.60.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 1a9be2c: feat: allow waitForEmail callers to set the earliest received time
|
|
14
|
+
- c77aae6: Use the incremental blob reporter as the only blob reporter for sharded runs.
|
|
15
|
+
- 3497d85: refactor: source Inbox message parsing from the provider API
|
|
16
|
+
- @empiricalrun/cua@0.4.2
|
|
17
|
+
- @empiricalrun/llm@0.27.1
|
|
18
|
+
- @empiricalrun/reporter@0.30.0
|
|
19
|
+
|
|
3
20
|
## 0.60.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
|
@@ -9,6 +9,7 @@ export type TwoCaptchaProxyResponse = components["schemas"]["TwoCaptchaProxyResp
|
|
|
9
9
|
export type ProjectKvGetResponse = components["schemas"]["ProjectKvGetResponse"];
|
|
10
10
|
export type ProjectKvSetRequest = NonNullable<paths["/api/projects/kv"]["post"]["requestBody"]>["content"]["application/json"];
|
|
11
11
|
export type ProjectKvSetResponse = components["schemas"]["ProjectKvSetResponse"];
|
|
12
|
+
export type TestCaseRunEndEventRequest = NonNullable<paths["/api/test-runs/events"]["put"]["requestBody"]>["content"]["application/json"];
|
|
12
13
|
/**
|
|
13
14
|
* OpenAI client config for the LLM calls playwright-utils makes from inside a
|
|
14
15
|
* test run — the overlay-dismissal browser agent and the toLookRight visual
|
|
@@ -45,6 +46,7 @@ export declare class ApiWorkerClient {
|
|
|
45
46
|
getProjectKv(key: string): Promise<ProjectKvGetResponse>;
|
|
46
47
|
setProjectKv(body: ProjectKvSetRequest): Promise<ProjectKvSetResponse>;
|
|
47
48
|
postProviderProxy(path: ProviderProxyPath, body: ProviderProxyRequest): Promise<ProviderProxyResponse>;
|
|
49
|
+
putTestCaseRunEndEvent(body: TestCaseRunEndEventRequest): Promise<void>;
|
|
48
50
|
unwrap<T>(result: {
|
|
49
51
|
data?: unknown;
|
|
50
52
|
error?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-worker-client.d.ts","sourceRoot":"","sources":["../src/api-worker-client.ts"],"names":[],"mappings":"AACA,OAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAExE,KAAK,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAEzC,KAAK,iBAAiB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,6BAA6B,CAAC,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAC/B,UAAU,CAAC,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAChC,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAClD,MAAM,MAAM,uBAAuB,GACjC,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACnD,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC3C,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CACjD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjC,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"api-worker-client.d.ts","sourceRoot":"","sources":["../src/api-worker-client.ts"],"names":[],"mappings":"AACA,OAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAExE,KAAK,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAEzC,KAAK,iBAAiB,GAClB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,6BAA6B,CAAC,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAC/B,UAAU,CAAC,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAChC,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAClD,MAAM,MAAM,uBAAuB,GACjC,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACnD,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC3C,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CACjD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjC,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAChD,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAClD,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CACrD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAQjC;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAChC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC,SAAS,CAgBZ;AAED,qBAAa,SAAU,SAAQ,KAAK;IAClC,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAG1C;CACF;AAED,qBAAa,qBAAsB,SAAQ,SAAS;CAAG;AACvD,qBAAa,kBAAmB,SAAQ,SAAS;CAAG;AA+CpD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAErC,YAAY,EACV,aAAa,EACb,OAAO,GACR,GAAE;QACD,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,EAgBL;IAED,UAAU,IAAI,MAAM,CAEnB;IAEK,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAK7D;IAEK,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAK3E;IAEK,iBAAiB,CACrB,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CAKhC;IAEK,sBAAsB,CAC1B,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAGf;IAED,MAAM,CAAC,CAAC,EACN,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,QAAQ,CAAC;KACpB,EACD,KAAK,EAAE,MAAM,GACZ,CAAC,CAUH;CACF"}
|
|
@@ -131,6 +131,10 @@ class ApiWorkerClient {
|
|
|
131
131
|
});
|
|
132
132
|
return this.unwrap(result, `POST ${path}`);
|
|
133
133
|
}
|
|
134
|
+
async putTestCaseRunEndEvent(body) {
|
|
135
|
+
const result = await this.client.PUT("/api/test-runs/events", { body });
|
|
136
|
+
this.unwrap(result, "PUT /api/test-runs/events");
|
|
137
|
+
}
|
|
134
138
|
unwrap(result, label) {
|
|
135
139
|
if (result.data !== undefined) {
|
|
136
140
|
return result.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAgBzD,wBAAgB,gBAAgB,IAAI,MAAM,CAazC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAgBzD,wBAAgB,gBAAgB,IAAI,MAAM,CAazC;AA6BD,eAAO,MAAM,UAAU,EAAE,oBA+BxB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,iBAarB,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -39,30 +39,12 @@ function getReporters() {
|
|
|
39
39
|
if (process.env.HAS_SHARDING && !process.env.SHARD_INDEX) {
|
|
40
40
|
throw new Error("Invalid env variables: HAS_SHARDING needs SHARD_INDEX");
|
|
41
41
|
}
|
|
42
|
-
// Set from the ibr_only_blob_reporter feature flag by test-run-worker: the
|
|
43
|
-
// incremental blob reporter's clean-finish upload (with its completeness
|
|
44
|
-
// marker) is the merge input, so the native blob reporter would only write
|
|
45
|
-
// a zip the merge step discards as superseded.
|
|
46
|
-
const ibrOnly = process.env.IBR_ONLY_BLOB_REPORTER === "true";
|
|
47
|
-
const nativeBlob = ibrOnly
|
|
48
|
-
? []
|
|
49
|
-
: [
|
|
50
|
-
[
|
|
51
|
-
"blob",
|
|
52
|
-
{
|
|
53
|
-
outputDir: "blob-report",
|
|
54
|
-
fileName: `report-${process.env.SHARD_INDEX}.zip`,
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
];
|
|
58
42
|
const middle = process.env.HAS_SHARDING
|
|
59
43
|
? [
|
|
60
|
-
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
// to consume its zip, which is exactly where the blob reporter runs -
|
|
65
|
-
// so it is gated on sharding rather than on the run being on spot.
|
|
44
|
+
// The incremental reporter's clean-finish upload (with its completeness
|
|
45
|
+
// marker) is the merge input. It also salvages interrupted runs because
|
|
46
|
+
// it streams events to disk instead of writing the report only on end.
|
|
47
|
+
// It is useful where a merge step exists, so it is gated on sharding.
|
|
66
48
|
[
|
|
67
49
|
"./node_modules/@empiricalrun/playwright-utils/dist/reporter/incremental-blob-reporter.js",
|
|
68
50
|
],
|
package/dist/email.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { type InboxEmail } from "./inbox-client";
|
|
2
2
|
import { type MailosaurEmail } from "./mailosaur-client";
|
|
3
3
|
export type Email = MailosaurEmail | InboxEmail;
|
|
4
|
-
type
|
|
4
|
+
export type WaitForEmailOptions = {
|
|
5
5
|
from?: string;
|
|
6
6
|
subject?: string;
|
|
7
7
|
body?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Only return emails received at or after this time.
|
|
10
|
+
* Defaults to five seconds before waitForEmail is called.
|
|
11
|
+
*/
|
|
12
|
+
receivedAfter?: Date;
|
|
8
13
|
};
|
|
9
14
|
type EmailProvider = "inbox" | "mailosaur";
|
|
10
15
|
type EmailClientOptions = {
|
|
@@ -18,7 +23,7 @@ export declare class EmailClient {
|
|
|
18
23
|
private client;
|
|
19
24
|
constructor(opts?: EmailClientOptions);
|
|
20
25
|
getAddress(): string;
|
|
21
|
-
waitForEmail(
|
|
26
|
+
waitForEmail(options?: WaitForEmailOptions): Promise<Email>;
|
|
22
27
|
}
|
|
23
28
|
export {};
|
|
24
29
|
//# sourceMappingURL=email.d.ts.map
|
package/dist/email.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../src/email.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,MAAM,KAAK,GAAG,cAAc,GAAG,UAAU,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../src/email.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,MAAM,KAAK,GAAG,cAAc,GAAG,UAAU,CAAC;AAEhD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB,CAAC;AAMF,KAAK,aAAa,GAAG,OAAO,GAAG,WAAW,CAAC;AAM3C,KAAK,kBAAkB,GAAG;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,MAAM,CAAsB;IAEpC,YAAY,IAAI,GAAE,kBAAuB,EA2BxC;IAED,UAAU,IAAI,MAAM,CAEnB;IAEK,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,CAEhE;CACF"}
|
package/dist/email.js
CHANGED
|
@@ -38,8 +38,8 @@ class EmailClient {
|
|
|
38
38
|
getAddress() {
|
|
39
39
|
return this.address;
|
|
40
40
|
}
|
|
41
|
-
async waitForEmail(
|
|
42
|
-
return this.client.waitForEmail(this.address,
|
|
41
|
+
async waitForEmail(options) {
|
|
42
|
+
return this.client.waitForEmail(this.address, options);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
exports.EmailClient = EmailClient;
|