fork from https://github.com/mozilla/pdf.js.git
This commit is contained in:
104
test/reporter.js
Normal file
104
test/reporter.js
Normal file
@@ -0,0 +1,104 @@
|
||||
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) {};
|
||||
|
||||
this.specStarted = function (result) {};
|
||||
|
||||
this.specDone = function (result) {
|
||||
// Ignore excluded (fit/xit) or skipped (pending) tests.
|
||||
if (["excluded", "pending"].includes(result.status)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Report on passed or failed tests.
|
||||
if (result.status === "passed") {
|
||||
sendResult("TEST-PASS", 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) {
|
||||
// Ignore excluded (fdescribe/xdescribe) or skipped (pending) suites.
|
||||
if (["excluded", "pending"].includes(result.status)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Report on failed suites only (indicates problems in setup/teardown).
|
||||
if (result.status === "failed") {
|
||||
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 };
|
||||
Reference in New Issue
Block a user