1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-18 14:18:23 +02:00
pdf.js/test/reporter.js
Tim van der Meij 22ad864cc7
Move the reporter file to the test root folder
The reporter is used in both the unit and the font tests, so this commit
moves it to the test root folder to more clearly indicate that this is a
shared resource and so the font tests don't have to reach into the unit
tests folder to import it (which improves separation).
2024-12-22 14:08:56 +01:00

103 lines
2.7 KiB
JavaScript

const TestReporter = function (browser) {
function send(action, json) {
return new Promise(resolve => {
json.browser = browser;
fetch(action, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(json),
})
.then(response => {
// Retry until successful.
if (!response.ok || response.status !== 200) {
throw new Error(response.statusText);
}
resolve();
})
.catch(reason => {
console.warn(`TestReporter - send failed (${action}):`, reason);
resolve();
send(action, json);
});
});
}
function sendInfo(message) {
send("/info", { message });
}
function sendResult(status, description, error) {
const message = {
status,
description,
};
if (error !== undefined) {
message.error = error;
}
send("/submit_task_results", message);
}
function sendQuitRequest() {
send(`/tellMeToQuit?browser=${escape(browser)}`, {});
}
this.now = function () {
return Date.now();
};
this.jasmineStarted = function (suiteInfo) {
this.runnerStartTime = this.now();
const total = suiteInfo.totalSpecsDefined;
const seed = suiteInfo.order.seed;
sendInfo(`Started ${total} tests for ${browser} with seed ${seed}.`);
};
this.suiteStarted = function (result) {
// Report on the result of `beforeAll` invocations.
if (result.failedExpectations.length > 0) {
let failedMessages = "";
for (const item of result.failedExpectations) {
failedMessages += `${item.message} `;
}
sendResult("TEST-UNEXPECTED-FAIL", result.description, failedMessages);
}
};
this.specStarted = function (result) {};
this.specDone = function (result) {
// Report on the result of individual tests.
if (result.failedExpectations.length === 0) {
sendResult("TEST-PASSED", result.description);
} else {
let failedMessages = "";
for (const item of result.failedExpectations) {
failedMessages += `${item.message} `;
}
sendResult("TEST-UNEXPECTED-FAIL", result.description, failedMessages);
}
};
this.suiteDone = function (result) {
// Report on the result of `afterAll` invocations.
if (result.failedExpectations.length > 0) {
let failedMessages = "";
for (const item of result.failedExpectations) {
failedMessages += `${item.message} `;
}
sendResult("TEST-UNEXPECTED-FAIL", result.description, failedMessages);
}
};
this.jasmineDone = function () {
// Give the test runner some time process any queued requests.
setTimeout(sendQuitRequest, 500);
};
};
export { TestReporter };