playwright
Advanced tools
Comparing version 1.48.0-alpha-2024-09-10 to 1.48.0-alpha-2024-09-11
@@ -48,2 +48,3 @@ "use strict"; | ||
this.cliFailOnFlakyTests = void 0; | ||
this.cliLastFailed = void 0; | ||
this.testIdMatcher = void 0; | ||
@@ -50,0 +51,0 @@ this.defineConfigWasUsed = false; |
@@ -59,2 +59,3 @@ "use strict"; | ||
this._lastRunReceiver = new _teleReceiver.TeleReporterReceiver({ | ||
version: () => 'v2', | ||
onBegin: suite => { | ||
@@ -100,10 +101,3 @@ this._lastRunTestCount = suite.allTests().length; | ||
onError: error => this._handleOnError(error), | ||
printsToStdio: () => { | ||
return false; | ||
}, | ||
onStdOut: () => {}, | ||
onStdErr: () => {}, | ||
onExit: () => {}, | ||
onStepBegin: () => {}, | ||
onStepEnd: () => {} | ||
printsToStdio: () => false | ||
}; | ||
@@ -113,2 +107,3 @@ } | ||
const receiver = new _teleReceiver.TeleReporterReceiver({ | ||
version: () => 'v2', | ||
onConfigure: c => { | ||
@@ -115,0 +110,0 @@ this.config = c; |
@@ -210,6 +210,2 @@ "use strict"; | ||
if (!config) return; | ||
if (opts.lastFailed) { | ||
const lastRunInfo = await (0, _runner.readLastRunInfo)(config); | ||
config.testIdMatcher = id => lastRunInfo.failedTests.includes(id); | ||
} | ||
config.cliArgs = args; | ||
@@ -223,2 +219,3 @@ config.cliGrep = opts.grep; | ||
config.cliFailOnFlakyTests = !!opts.failOnFlakyTests; | ||
config.cliLastFailed = !!opts.lastFailed; | ||
const runner = new _runner.Runner(config); | ||
@@ -225,0 +222,0 @@ const status = await runner.runAllTests(); |
@@ -119,3 +119,2 @@ "use strict"; | ||
} | ||
onTestBegin(test, result) {} | ||
onTestEnd(test, result) { | ||
@@ -140,8 +139,2 @@ if (result.status !== 'skipped' && result.status !== test.expectedStatus) ++this._failureCount; | ||
} | ||
onStepBegin(test, result, step) {} | ||
onStepEnd(test, result, step) {} | ||
async onExit() {} | ||
printsToStdio() { | ||
return true; | ||
} | ||
fitToScreen(line, prefix) { | ||
@@ -148,0 +141,0 @@ if (!ttyWidth) { |
@@ -29,5 +29,2 @@ "use strict"; | ||
} | ||
printsToStdio() { | ||
return true; | ||
} | ||
onBegin(suite) { | ||
@@ -34,0 +31,0 @@ super.onBegin(suite); |
@@ -24,20 +24,9 @@ "use strict"; | ||
class EmptyReporter { | ||
onConfigure(config) {} | ||
onBegin(suite) {} | ||
onTestBegin(test, result) {} | ||
onStdOut(chunk, test, result) {} | ||
onStdErr(chunk, test, result) {} | ||
onTestEnd(test, result) {} | ||
async onEnd(result) {} | ||
async onExit() {} | ||
onError(error) {} | ||
onStepBegin(test, result, step) {} | ||
onStepEnd(test, result, step) {} | ||
version() { | ||
return 'v2'; | ||
} | ||
printsToStdio() { | ||
return false; | ||
} | ||
version() { | ||
return 'v2'; | ||
} | ||
} | ||
var _default = exports.default = EmptyReporter; |
@@ -18,3 +18,2 @@ "use strict"; | ||
var _zipBundle = require("playwright-core/lib/zipBundle"); | ||
var _empty = _interopRequireDefault(require("./empty")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -41,5 +40,4 @@ /** | ||
}; | ||
class HtmlReporter extends _empty.default { | ||
class HtmlReporter { | ||
constructor(options) { | ||
super(); | ||
this.config = void 0; | ||
@@ -57,2 +55,5 @@ this.suite = void 0; | ||
} | ||
version() { | ||
return 'v2'; | ||
} | ||
printsToStdio() { | ||
@@ -59,0 +60,0 @@ return false; |
@@ -43,25 +43,32 @@ "use strict"; | ||
onConfigure(config) { | ||
var _this$_reporter$onCon, _this$_reporter; | ||
this._config = config; | ||
this._startTime = new Date(); | ||
this._monotonicStartTime = (0, _utils.monotonicTime)(); | ||
this._reporter.onConfigure(config); | ||
(_this$_reporter$onCon = (_this$_reporter = this._reporter).onConfigure) === null || _this$_reporter$onCon === void 0 || _this$_reporter$onCon.call(_this$_reporter, config); | ||
} | ||
onBegin(suite) { | ||
var _this$_reporter$onBeg, _this$_reporter2; | ||
this._didBegin = true; | ||
this._reporter.onBegin(suite); | ||
(_this$_reporter$onBeg = (_this$_reporter2 = this._reporter).onBegin) === null || _this$_reporter$onBeg === void 0 || _this$_reporter$onBeg.call(_this$_reporter2, suite); | ||
} | ||
onTestBegin(test, result) { | ||
this._reporter.onTestBegin(test, result); | ||
var _this$_reporter$onTes, _this$_reporter3; | ||
(_this$_reporter$onTes = (_this$_reporter3 = this._reporter).onTestBegin) === null || _this$_reporter$onTes === void 0 || _this$_reporter$onTes.call(_this$_reporter3, test, result); | ||
} | ||
onStdOut(chunk, test, result) { | ||
this._reporter.onStdOut(chunk, test, result); | ||
var _this$_reporter$onStd, _this$_reporter4; | ||
(_this$_reporter$onStd = (_this$_reporter4 = this._reporter).onStdOut) === null || _this$_reporter$onStd === void 0 || _this$_reporter$onStd.call(_this$_reporter4, chunk, test, result); | ||
} | ||
onStdErr(chunk, test, result) { | ||
this._reporter.onStdErr(chunk, test, result); | ||
var _this$_reporter$onStd2, _this$_reporter5; | ||
(_this$_reporter$onStd2 = (_this$_reporter5 = this._reporter).onStdErr) === null || _this$_reporter$onStd2 === void 0 || _this$_reporter$onStd2.call(_this$_reporter5, chunk, test, result); | ||
} | ||
onTestEnd(test, result) { | ||
var _this$_reporter$onTes2, _this$_reporter6; | ||
this._addSnippetToTestErrors(test, result); | ||
this._reporter.onTestEnd(test, result); | ||
(_this$_reporter$onTes2 = (_this$_reporter6 = this._reporter).onTestEnd) === null || _this$_reporter$onTes2 === void 0 || _this$_reporter$onTes2.call(_this$_reporter6, test, result); | ||
} | ||
async onEnd(result) { | ||
var _this$_reporter$onEnd, _this$_reporter7; | ||
if (!this._didBegin) { | ||
@@ -71,24 +78,28 @@ // onBegin was not reported, emit it. | ||
} | ||
return await this._reporter.onEnd({ | ||
return await ((_this$_reporter$onEnd = (_this$_reporter7 = this._reporter).onEnd) === null || _this$_reporter$onEnd === void 0 ? void 0 : _this$_reporter$onEnd.call(_this$_reporter7, { | ||
...result, | ||
startTime: this._startTime, | ||
duration: (0, _utils.monotonicTime)() - this._monotonicStartTime | ||
}); | ||
})); | ||
} | ||
async onExit() { | ||
await this._reporter.onExit(); | ||
var _this$_reporter$onExi, _this$_reporter8; | ||
await ((_this$_reporter$onExi = (_this$_reporter8 = this._reporter).onExit) === null || _this$_reporter$onExi === void 0 ? void 0 : _this$_reporter$onExi.call(_this$_reporter8)); | ||
} | ||
onError(error) { | ||
var _this$_reporter$onErr, _this$_reporter9; | ||
addLocationAndSnippetToError(this._config, error); | ||
this._reporter.onError(error); | ||
(_this$_reporter$onErr = (_this$_reporter9 = this._reporter).onError) === null || _this$_reporter$onErr === void 0 || _this$_reporter$onErr.call(_this$_reporter9, error); | ||
} | ||
onStepBegin(test, result, step) { | ||
this._reporter.onStepBegin(test, result, step); | ||
var _this$_reporter$onSte, _this$_reporter10; | ||
(_this$_reporter$onSte = (_this$_reporter10 = this._reporter).onStepBegin) === null || _this$_reporter$onSte === void 0 || _this$_reporter$onSte.call(_this$_reporter10, test, result, step); | ||
} | ||
onStepEnd(test, result, step) { | ||
var _this$_reporter$onSte2, _this$_reporter11; | ||
this._addSnippetToStepError(test, step); | ||
this._reporter.onStepEnd(test, result, step); | ||
(_this$_reporter$onSte2 = (_this$_reporter11 = this._reporter).onStepEnd) === null || _this$_reporter$onSte2 === void 0 || _this$_reporter$onSte2.call(_this$_reporter11, test, result, step); | ||
} | ||
printsToStdio() { | ||
return this._reporter.printsToStdio(); | ||
return this._reporter.printsToStdio ? this._reporter.printsToStdio() : true; | ||
} | ||
@@ -95,0 +106,0 @@ _addSnippetToTestErrors(test, result) { |
@@ -13,3 +13,2 @@ "use strict"; | ||
var _config = require("../common/config"); | ||
var _empty = _interopRequireDefault(require("./empty")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -32,6 +31,5 @@ /** | ||
class JSONReporter extends _empty.default { | ||
class JSONReporter { | ||
constructor(options) { | ||
var _resolveOutputFile; | ||
super(); | ||
this.config = void 0; | ||
@@ -43,2 +41,5 @@ this.suite = void 0; | ||
} | ||
version() { | ||
return 'v2'; | ||
} | ||
printsToStdio() { | ||
@@ -45,0 +46,0 @@ return !this._resolvedOutputFile; |
@@ -10,3 +10,2 @@ "use strict"; | ||
var _base = require("./base"); | ||
var _empty = _interopRequireDefault(require("./empty")); | ||
var _utils = require("playwright-core/lib/utils"); | ||
@@ -30,6 +29,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
class JUnitReporter extends _empty.default { | ||
class JUnitReporter { | ||
constructor(options) { | ||
var _resolveOutputFile; | ||
super(); | ||
this.config = void 0; | ||
@@ -50,2 +48,5 @@ this.configDir = void 0; | ||
} | ||
version() { | ||
return 'v2'; | ||
} | ||
printsToStdio() { | ||
@@ -52,0 +53,0 @@ return !this.resolvedOutputFile; |
@@ -32,5 +32,2 @@ "use strict"; | ||
} | ||
printsToStdio() { | ||
return true; | ||
} | ||
onBegin(suite) { | ||
@@ -67,3 +64,2 @@ super.onBegin(suite); | ||
onTestBegin(test, result) { | ||
super.onTestBegin(test, result); | ||
++this._current; | ||
@@ -73,7 +69,5 @@ this._updateLine(test, result, undefined); | ||
onStepBegin(test, result, step) { | ||
super.onStepBegin(test, result, step); | ||
if (step.category === 'test.step') this._updateLine(test, result, step); | ||
} | ||
onStepEnd(test, result, step) { | ||
super.onStepEnd(test, result, step); | ||
if (step.category === 'test.step') this._updateLine(test, result, step.parent); | ||
@@ -80,0 +74,0 @@ } |
@@ -43,5 +43,2 @@ "use strict"; | ||
} | ||
printsToStdio() { | ||
return true; | ||
} | ||
onBegin(suite) { | ||
@@ -56,3 +53,2 @@ super.onBegin(suite); | ||
onTestBegin(test, result) { | ||
super.onTestBegin(test, result); | ||
const index = String(this._resultIndex.size + 1); | ||
@@ -84,3 +80,2 @@ this._resultIndex.set(result, index); | ||
onStepBegin(test, result, step) { | ||
super.onStepBegin(test, result, step); | ||
if (step.category !== 'test.step') return; | ||
@@ -100,3 +95,2 @@ const testIndex = this._resultIndex.get(result) || ''; | ||
onStepEnd(test, result, step) { | ||
super.onStepEnd(test, result, step); | ||
if (step.category !== 'test.step') return; | ||
@@ -103,0 +97,0 @@ const testIndex = this._resultIndex.get(result) || ''; |
@@ -32,22 +32,43 @@ "use strict"; | ||
onConfigure(config) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onConfigure(config)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onConfigure; | ||
return (_reporter$onConfigure = reporter.onConfigure) === null || _reporter$onConfigure === void 0 ? void 0 : _reporter$onConfigure.call(reporter, config); | ||
}); | ||
} | ||
onBegin(suite) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onBegin(suite)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onBegin; | ||
return (_reporter$onBegin = reporter.onBegin) === null || _reporter$onBegin === void 0 ? void 0 : _reporter$onBegin.call(reporter, suite); | ||
}); | ||
} | ||
onTestBegin(test, result) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onTestBegin(test, result)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onTestBegin; | ||
return (_reporter$onTestBegin = reporter.onTestBegin) === null || _reporter$onTestBegin === void 0 ? void 0 : _reporter$onTestBegin.call(reporter, test, result); | ||
}); | ||
} | ||
onStdOut(chunk, test, result) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onStdOut(chunk, test, result)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onStdOut; | ||
return (_reporter$onStdOut = reporter.onStdOut) === null || _reporter$onStdOut === void 0 ? void 0 : _reporter$onStdOut.call(reporter, chunk, test, result); | ||
}); | ||
} | ||
onStdErr(chunk, test, result) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onStdErr(chunk, test, result)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onStdErr; | ||
return (_reporter$onStdErr = reporter.onStdErr) === null || _reporter$onStdErr === void 0 ? void 0 : _reporter$onStdErr.call(reporter, chunk, test, result); | ||
}); | ||
} | ||
onTestEnd(test, result) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onTestEnd(test, result)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onTestEnd; | ||
return (_reporter$onTestEnd = reporter.onTestEnd) === null || _reporter$onTestEnd === void 0 ? void 0 : _reporter$onTestEnd.call(reporter, test, result); | ||
}); | ||
} | ||
async onEnd(result) { | ||
for (const reporter of this._reporters) { | ||
const outResult = await wrapAsync(() => reporter.onEnd(result)); | ||
const outResult = await wrapAsync(() => { | ||
var _reporter$onEnd; | ||
return (_reporter$onEnd = reporter.onEnd) === null || _reporter$onEnd === void 0 ? void 0 : _reporter$onEnd.call(reporter, result); | ||
}); | ||
if (outResult !== null && outResult !== void 0 && outResult.status) result.status = outResult.status; | ||
@@ -58,17 +79,29 @@ } | ||
async onExit() { | ||
for (const reporter of this._reporters) await wrapAsync(() => reporter.onExit()); | ||
for (const reporter of this._reporters) await wrapAsync(() => { | ||
var _reporter$onExit; | ||
return (_reporter$onExit = reporter.onExit) === null || _reporter$onExit === void 0 ? void 0 : _reporter$onExit.call(reporter); | ||
}); | ||
} | ||
onError(error) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onError(error)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onError; | ||
return (_reporter$onError = reporter.onError) === null || _reporter$onError === void 0 ? void 0 : _reporter$onError.call(reporter, error); | ||
}); | ||
} | ||
onStepBegin(test, result, step) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onStepBegin(test, result, step)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onStepBegin; | ||
return (_reporter$onStepBegin = reporter.onStepBegin) === null || _reporter$onStepBegin === void 0 ? void 0 : _reporter$onStepBegin.call(reporter, test, result, step); | ||
}); | ||
} | ||
onStepEnd(test, result, step) { | ||
for (const reporter of this._reporters) wrap(() => reporter.onStepEnd(test, result, step)); | ||
for (const reporter of this._reporters) wrap(() => { | ||
var _reporter$onStepEnd; | ||
return (_reporter$onStepEnd = reporter.onStepEnd) === null || _reporter$onStepEnd === void 0 ? void 0 : _reporter$onStepEnd.call(reporter, test, result, step); | ||
}); | ||
} | ||
printsToStdio() { | ||
return this._reporters.some(r => { | ||
let prints = true; | ||
wrap(() => prints = r.printsToStdio()); | ||
let prints = false; | ||
wrap(() => prints = r.printsToStdio ? r.printsToStdio() : true); | ||
return prints; | ||
@@ -75,0 +108,0 @@ }); |
@@ -151,3 +151,2 @@ "use strict"; | ||
} | ||
async onExit() {} | ||
printsToStdio() { | ||
@@ -154,0 +153,0 @@ return false; |
@@ -175,2 +175,3 @@ "use strict"; | ||
worker.on('stdOut', params => { | ||
var _this$_reporter$onStd, _this$_reporter; | ||
const { | ||
@@ -182,5 +183,6 @@ chunk, | ||
result === null || result === void 0 || result.stdout.push(chunk); | ||
this._reporter.onStdOut(chunk, test, result); | ||
(_this$_reporter$onStd = (_this$_reporter = this._reporter).onStdOut) === null || _this$_reporter$onStd === void 0 || _this$_reporter$onStd.call(_this$_reporter, chunk, test, result); | ||
}); | ||
worker.on('stdErr', params => { | ||
var _this$_reporter$onStd2, _this$_reporter2; | ||
const { | ||
@@ -192,7 +194,10 @@ chunk, | ||
result === null || result === void 0 || result.stderr.push(chunk); | ||
this._reporter.onStdErr(chunk, test, result); | ||
(_this$_reporter$onStd2 = (_this$_reporter2 = this._reporter).onStdErr) === null || _this$_reporter$onStd2 === void 0 || _this$_reporter$onStd2.call(_this$_reporter2, chunk, test, result); | ||
}); | ||
worker.on('teardownErrors', params => { | ||
this._failureTracker.onWorkerError(); | ||
for (const error of params.fatalErrors) this._reporter.onError(error); | ||
for (const error of params.fatalErrors) { | ||
var _this$_reporter$onErr, _this$_reporter3; | ||
(_this$_reporter$onErr = (_this$_reporter3 = this._reporter).onError) === null || _this$_reporter$onErr === void 0 || _this$_reporter$onErr.call(_this$_reporter3, error); | ||
} | ||
}); | ||
@@ -239,2 +244,3 @@ worker.on('exit', () => { | ||
_onTestBegin(params) { | ||
var _this$_reporter$onTes, _this$_reporter4; | ||
const test = this._remainingByTestId.get(params.testId); | ||
@@ -254,3 +260,3 @@ if (!test) { | ||
result.startTime = new Date(params.startWallTime); | ||
this._reporter.onTestBegin(test, result); | ||
(_this$_reporter$onTes = (_this$_reporter4 = this._reporter).onTestBegin) === null || _this$_reporter$onTes === void 0 || _this$_reporter$onTes.call(_this$_reporter4, test, result); | ||
this._currentlyRunning = { | ||
@@ -299,2 +305,3 @@ test, | ||
_onStepBegin(params) { | ||
var _this$_reporter$onSte, _this$_reporter5; | ||
const data = this._dataByTestId.get(params.testId); | ||
@@ -326,5 +333,6 @@ if (!data) { | ||
(parentStep || result).steps.push(step); | ||
this._reporter.onStepBegin(test, result, step); | ||
(_this$_reporter$onSte = (_this$_reporter5 = this._reporter).onStepBegin) === null || _this$_reporter$onSte === void 0 || _this$_reporter$onSte.call(_this$_reporter5, test, result, step); | ||
} | ||
_onStepEnd(params) { | ||
var _this$_reporter$onSte2, _this$_reporter7; | ||
const data = this._dataByTestId.get(params.testId); | ||
@@ -342,3 +350,4 @@ if (!data) { | ||
if (!step) { | ||
this._reporter.onStdErr('Internal error: step end without step begin: ' + params.stepId, test, result); | ||
var _this$_reporter$onStd3, _this$_reporter6; | ||
(_this$_reporter$onStd3 = (_this$_reporter6 = this._reporter).onStdErr) === null || _this$_reporter$onStd3 === void 0 || _this$_reporter$onStd3.call(_this$_reporter6, 'Internal error: step end without step begin: ' + params.stepId, test, result); | ||
return; | ||
@@ -349,3 +358,3 @@ } | ||
steps.delete(params.stepId); | ||
this._reporter.onStepEnd(test, result, step); | ||
(_this$_reporter$onSte2 = (_this$_reporter7 = this._reporter).onStepEnd) === null || _this$_reporter$onSte2 === void 0 || _this$_reporter$onSte2.call(_this$_reporter7, test, result, step); | ||
} | ||
@@ -373,4 +382,5 @@ _onAttach(params) { | ||
} else { | ||
var _this$_reporter$onTes2, _this$_reporter8; | ||
result = test._appendTestResult(); | ||
this._reporter.onTestBegin(test, result); | ||
(_this$_reporter$onTes2 = (_this$_reporter8 = this._reporter).onTestBegin) === null || _this$_reporter$onTes2 === void 0 || _this$_reporter$onTes2.call(_this$_reporter8, test, result); | ||
} | ||
@@ -396,3 +406,6 @@ result.errors = [...errors]; | ||
this._failureTracker.onWorkerError(); | ||
for (const error of errors) this._reporter.onError(error); | ||
for (const error of errors) { | ||
var _this$_reporter$onErr2, _this$_reporter9; | ||
(_this$_reporter$onErr2 = (_this$_reporter9 = this._reporter).onError) === null || _this$_reporter$onErr2 === void 0 || _this$_reporter$onErr2.call(_this$_reporter9, error); | ||
} | ||
} | ||
@@ -516,4 +529,5 @@ } | ||
for (const test of this._job.tests) { | ||
var _this$_reporter$onTes3, _this$_reporter10; | ||
const result = test._appendTestResult(); | ||
this._reporter.onTestBegin(test, result); | ||
(_this$_reporter$onTes3 = (_this$_reporter10 = this._reporter).onTestBegin) === null || _this$_reporter$onTes3 === void 0 || _this$_reporter$onTes3.call(_this$_reporter10, test, result); | ||
result.status = 'skipped'; | ||
@@ -530,8 +544,10 @@ this._reportTestEnd(test, result); | ||
_reportTestEnd(test, result) { | ||
this._reporter.onTestEnd(test, result); | ||
var _this$_reporter$onTes4, _this$_reporter11; | ||
(_this$_reporter$onTes4 = (_this$_reporter11 = this._reporter).onTestEnd) === null || _this$_reporter$onTes4 === void 0 || _this$_reporter$onTes4.call(_this$_reporter11, test, result); | ||
const hadMaxFailures = this._failureTracker.hasReachedMaxFailures(); | ||
this._failureTracker.onTestEnd(test, result); | ||
if (this._failureTracker.hasReachedMaxFailures()) { | ||
var _this$_reporter$onErr3, _this$_reporter12; | ||
this._stopCallback(); | ||
if (!hadMaxFailures) this._reporter.onError({ | ||
if (!hadMaxFailures) (_this$_reporter$onErr3 = (_this$_reporter12 = this._reporter).onError) === null || _this$_reporter$onErr3 === void 0 || _this$_reporter$onErr3.call(_this$_reporter12, { | ||
message: _utilsBundle.colors.red(`Testing stopped early after ${this._failureTracker.maxFailures()} maximum allowed failures.`) | ||
@@ -538,0 +554,0 @@ }); |
@@ -76,3 +76,3 @@ "use strict"; | ||
} | ||
const someReporterPrintsToStdio = reporters.some(r => r.printsToStdio()); | ||
const someReporterPrintsToStdio = reporters.some(r => r.printsToStdio ? r.printsToStdio() : true); | ||
if (reporters.length && !someReporterPrintsToStdio) { | ||
@@ -95,11 +95,10 @@ // Add a line/dot/list-mode reporter for convenience. | ||
const errors = []; | ||
const reporterV2 = (0, _reporterV.wrapReporterAsV2)({ | ||
return { | ||
version: () => 'v2', | ||
onError(error) { | ||
errors.push(error); | ||
if (writeToConsole) process.stdout.write((0, _base.formatError)(error, _base.colors.enabled).message + '\n'); | ||
} | ||
}); | ||
const reporter = reporterV2; | ||
reporter.errors = () => errors; | ||
return reporter; | ||
}, | ||
errors: () => errors | ||
}; | ||
} | ||
@@ -126,7 +125,9 @@ function reporterOptions(config, mode, isTestServer) { | ||
} | ||
class ListModeReporter extends _empty.default { | ||
constructor(...args) { | ||
super(...args); | ||
class ListModeReporter { | ||
constructor() { | ||
this.config = void 0; | ||
} | ||
version() { | ||
return 'v2'; | ||
} | ||
onConfigure(config) { | ||
@@ -156,5 +157,2 @@ this.config = config; | ||
} | ||
printsToStdio() { | ||
return true; | ||
} | ||
} |
@@ -7,5 +7,2 @@ "use strict"; | ||
exports.Runner = void 0; | ||
exports.readLastRunInfo = readLastRunInfo; | ||
var _fs = _interopRequireDefault(require("fs")); | ||
var _path = _interopRequireDefault(require("path")); | ||
var _utils = require("playwright-core/lib/utils"); | ||
@@ -18,3 +15,3 @@ var _webServerPlugin = require("../plugins/webServerPlugin"); | ||
var _internalReporter = require("../reporters/internalReporter"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _lastRun = require("./lastRun"); | ||
/** | ||
@@ -69,3 +66,5 @@ * Copyright 2019 Google Inc. All rights reserved. | ||
const reporters = await (0, _reporters.createReporters)(config, listOnly ? 'list' : 'test', false); | ||
const reporter = new _internalReporter.InternalReporter(reporters); | ||
const lastRun = new _lastRun.LastRunReporter(config); | ||
if (config.cliLastFailed) await lastRun.filterLastFailed(); | ||
const reporter = new _internalReporter.InternalReporter([...reporters, lastRun]); | ||
const taskRunner = listOnly ? (0, _tasks.createTaskRunnerForList)(config, reporter, 'in-process', { | ||
@@ -83,3 +82,2 @@ failOnLoadErrors: true | ||
if (modifiedResult && modifiedResult.status) status = modifiedResult.status; | ||
if (!listOnly) await writeLastRunInfo(testRun, status); | ||
await reporter.onExit(); | ||
@@ -142,34 +140,2 @@ | ||
} | ||
exports.Runner = Runner; | ||
async function writeLastRunInfo(testRun, status) { | ||
var _testRun$rootSuite; | ||
const [project] = (0, _projectUtils.filterProjects)(testRun.config.projects, testRun.config.cliProjectFilter); | ||
if (!project) return; | ||
const outputDir = project.project.outputDir; | ||
await _fs.default.promises.mkdir(outputDir, { | ||
recursive: true | ||
}); | ||
const lastRunReportFile = _path.default.join(outputDir, '.last-run.json'); | ||
const failedTests = (_testRun$rootSuite = testRun.rootSuite) === null || _testRun$rootSuite === void 0 ? void 0 : _testRun$rootSuite.allTests().filter(t => !t.ok()).map(t => t.id); | ||
const lastRunReport = JSON.stringify({ | ||
status, | ||
failedTests | ||
}, undefined, 2); | ||
await _fs.default.promises.writeFile(lastRunReportFile, lastRunReport); | ||
} | ||
async function readLastRunInfo(config) { | ||
const [project] = (0, _projectUtils.filterProjects)(config.projects, config.cliProjectFilter); | ||
if (!project) return { | ||
status: 'passed', | ||
failedTests: [] | ||
}; | ||
const outputDir = project.project.outputDir; | ||
try { | ||
const lastRunReportFile = _path.default.join(outputDir, '.last-run.json'); | ||
return JSON.parse(await _fs.default.promises.readFile(lastRunReportFile, 'utf8')); | ||
} catch {} | ||
return { | ||
status: 'passed', | ||
failedTests: [] | ||
}; | ||
} | ||
exports.Runner = Runner; |
@@ -163,3 +163,4 @@ "use strict"; | ||
}) => { | ||
reporter.onBegin(rootSuite); | ||
var _reporter$onBegin; | ||
(_reporter$onBegin = reporter.onBegin) === null || _reporter$onBegin === void 0 || _reporter$onBegin.call(reporter, rootSuite); | ||
}, | ||
@@ -166,0 +167,0 @@ teardown: async ({}) => {} |
{ | ||
"name": "playwright", | ||
"version": "1.48.0-alpha-2024-09-10", | ||
"version": "1.48.0-alpha-2024-09-11", | ||
"description": "A high-level API to automate web browsers", | ||
@@ -59,3 +59,3 @@ "repository": { | ||
"dependencies": { | ||
"playwright-core": "1.48.0-alpha-2024-09-10" | ||
"playwright-core": "1.48.0-alpha-2024-09-11" | ||
}, | ||
@@ -62,0 +62,0 @@ "optionalDependencies": { |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3083732
105
34306
+ Addedplaywright-core@1.48.0-alpha-2024-09-11(transitive)
- Removedplaywright-core@1.48.0-alpha-2024-09-10(transitive)