This commit is contained in:
@@ -19,12 +19,30 @@
|
|||||||
const RESULT_PREFIX = 'TSAMURAI_RESULT ';
|
const RESULT_PREFIX = 'TSAMURAI_RESULT ';
|
||||||
|
|
||||||
export default class TestSamuraiVitestReporter {
|
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) {
|
onTestCaseResult(testCase) {
|
||||||
const name = buildListingName(testCase);
|
const name = buildListingName(testCase);
|
||||||
const status = mapStatus(testCase.task);
|
const status = mapStatus(testCase.task);
|
||||||
if (!status) return;
|
if (!status) return;
|
||||||
|
|
||||||
const output = buildOutput(testCase.task);
|
const consoleLogs = this._consoleLogs.get(testCase.task?.id) ?? [];
|
||||||
|
const output = buildOutput(testCase.task, consoleLogs);
|
||||||
|
|
||||||
const payload = {
|
const payload = {
|
||||||
name,
|
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) {
|
function buildOutput(task, consoleLogs = []) {
|
||||||
const lines = [];
|
const lines = [...consoleLogs];
|
||||||
if (!task) return lines;
|
if (!task) return lines;
|
||||||
const errors = task.result?.errors ?? [];
|
const errors = task.result?.errors ?? [];
|
||||||
for (const err of errors) {
|
for (const err of errors) {
|
||||||
|
|||||||
Reference in New Issue
Block a user