This commit is contained in:
@@ -19,12 +19,30 @@
|
||||
const RESULT_PREFIX = 'TSAMURAI_RESULT ';
|
||||
|
||||
export default class TestSamuraiVitestReporter {
|
||||
constructor() {
|
||||
this._consoleLogs = new Map();
|
||||
}
|
||||
|
||||
onUserConsoleLog(log) {
|
||||
if (!log.taskId) return;
|
||||
if (!this._consoleLogs.has(log.taskId)) {
|
||||
this._consoleLogs.set(log.taskId, []);
|
||||
}
|
||||
const lines = log.content.split('\n');
|
||||
for (const line of lines) {
|
||||
if (line !== '') {
|
||||
this._consoleLogs.get(log.taskId).push(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onTestCaseResult(testCase) {
|
||||
const name = buildListingName(testCase);
|
||||
const status = mapStatus(testCase.task);
|
||||
if (!status) return;
|
||||
|
||||
const output = buildOutput(testCase.task);
|
||||
const consoleLogs = this._consoleLogs.get(testCase.task?.id) ?? [];
|
||||
const output = buildOutput(testCase.task, consoleLogs);
|
||||
|
||||
const payload = {
|
||||
name,
|
||||
@@ -69,10 +87,11 @@ function mapStatus(task) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Collects error messages and stack traces for failed tests.
|
||||
* Collects console logs and error messages/stack traces for tests.
|
||||
* Console logs appear first, then error details.
|
||||
*/
|
||||
function buildOutput(task) {
|
||||
const lines = [];
|
||||
function buildOutput(task, consoleLogs = []) {
|
||||
const lines = [...consoleLogs];
|
||||
if (!task) return lines;
|
||||
const errors = task.result?.errors ?? [];
|
||||
for (const err of errors) {
|
||||
|
||||
Reference in New Issue
Block a user