1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
"use strict";
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var __defProp = Object.defineProperty;
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var __getOwnPropNames = Object.getOwnPropertyNames;
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var __hasOwnProp = Object.prototype.hasOwnProperty;
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var __export = (target, all) => {
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
for (var name in all)
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
__defProp(target, name, { get: all[name], enumerable: true });
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
};
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var __copyProps = (to, from, except, desc) => {
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (from && typeof from === "object" || typeof from === "function") {
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
for (let key of __getOwnPropNames(from))
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (!__hasOwnProp.call(to, key) && key !== except)
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
return to;
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
};
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var taskRunner_exports = {};
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
__export(taskRunner_exports, {
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
TaskRunner: () => TaskRunner
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
});
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
module.exports = __toCommonJS(taskRunner_exports);
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var import_utils = require("playwright-core/lib/utils");
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var import_utils2 = require("playwright-core/lib/utils");
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var import_utilsBundle = require("playwright-core/lib/utilsBundle");
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var import_sigIntWatcher = require("./sigIntWatcher");
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
var import_util = require("../util");
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
class TaskRunner {
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
constructor(reporter, globalTimeoutForError) {
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._tasks = [];
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._hasErrors = false;
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._interrupted = false;
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._isTearDown = false;
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._reporter = reporter;
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._globalTimeoutForError = globalTimeoutForError;
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
addTask(task) {
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._tasks.push(task);
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
async run(context, deadline, cancelPromise) {
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const { status, cleanup } = await this.runDeferCleanup(context, deadline, cancelPromise);
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const teardownStatus = await cleanup();
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
return status === "passed" ? teardownStatus : status;
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
async runDeferCleanup(context, deadline, cancelPromise = new import_utils.ManualPromise()) {
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const sigintWatcher = new import_sigIntWatcher.SigIntWatcher();
48
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const timeoutWatcher = new TimeoutWatcher(deadline);
49
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const teardownRunner = new TaskRunner(this._reporter, this._globalTimeoutForError);
50
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
teardownRunner._isTearDown = true;
51
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
let currentTaskName;
52
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const taskLoop = async () => {
53
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
for (const task of this._tasks) {
54
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
currentTaskName = task.title;
55
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (this._interrupted)
56
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
break;
57
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
(0, import_utilsBundle.debug)("pw:test:task")(`"${task.title}" started`);
58
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const errors = [];
59
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const softErrors = [];
60
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
try {
61
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
teardownRunner._tasks.unshift({ title: `teardown for ${task.title}`, setup: task.teardown });
62
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
await task.setup?.(context, errors, softErrors);
63
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
} catch (e) {
64
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
(0, import_utilsBundle.debug)("pw:test:task")(`error in "${task.title}": `, e);
65
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
errors.push((0, import_util.serializeError)(e));
66
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
} finally {
67
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
for (const error of [...softErrors, ...errors])
68
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._reporter.onError?.(error);
69
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (errors.length) {
70
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (!this._isTearDown)
71
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._interrupted = true;
72
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._hasErrors = true;
73
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
74
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
75
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
(0, import_utilsBundle.debug)("pw:test:task")(`"${task.title}" finished`);
76
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
77
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
};
78
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
await Promise.race([
79
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
taskLoop(),
80
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
cancelPromise,
81
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
sigintWatcher.promise(),
82
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
timeoutWatcher.promise
83
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
]);
84
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
sigintWatcher.disarm();
85
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
timeoutWatcher.disarm();
86
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._interrupted = true;
87
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
let status = "passed";
88
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (sigintWatcher.hadSignal() || cancelPromise?.isDone()) {
89
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
status = "interrupted";
90
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
} else if (timeoutWatcher.timedOut()) {
91
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._reporter.onError?.({ message: import_utils2.colors.red(`Timed out waiting ${this._globalTimeoutForError / 1e3}s for the ${currentTaskName} to run`) });
92
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
status = "timedout";
93
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
} else if (this._hasErrors) {
94
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
status = "failed";
95
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
96
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
cancelPromise?.resolve();
97
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
const cleanup = () => teardownRunner.runDeferCleanup(context, deadline).then((r) => r.status);
98
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
return { status, cleanup };
99
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
100
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
101
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
class TimeoutWatcher {
102
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
constructor(deadline) {
103
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._timedOut = false;
104
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this.promise = new import_utils.ManualPromise();
105
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (!deadline)
106
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
return;
107
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
if (deadline - (0, import_utils.monotonicTime)() <= 0) {
108
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._timedOut = true;
109
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this.promise.resolve();
110
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
return;
111
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
112
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._timer = setTimeout(() => {
113
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this._timedOut = true;
114
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
this.promise.resolve();
115
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}, deadline - (0, import_utils.monotonicTime)());
116
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
117
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
timedOut() {
118
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
return this._timedOut;
119
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
120
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
disarm() {
121
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
clearTimeout(this._timer);
122
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
123
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
124
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
// Annotate the CommonJS export names for ESM import in node:
125
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
0 && (module.exports = {
126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
TaskRunner
127
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
});
128
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!