45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
// Imports
|
|
import { Worker } from "rabbiteer";
|
|
import { VERB } from "../../util/logging.js";
|
|
import { insertTestResult } from "../../database/queries/results.js";
|
|
import evt from "../../../common/sockets/events.js";
|
|
// Class
|
|
export default class TestResultsWorker extends Worker {
|
|
constructor(skio) {
|
|
super("TestResults");
|
|
this.skio = skio;
|
|
}
|
|
|
|
/* Example Test Result
|
|
{
|
|
testName: “SomeTest”,
|
|
testClass: “SomeClass”,
|
|
testMethod: “SomeMethod”,
|
|
testType: “API/UI”,
|
|
testTimestamp: 123893024,
|
|
origin: “TestSuite”,
|
|
failed: true,
|
|
failedMessage: “Some Failure”,
|
|
screenshotUrl: “https://screenshot”,
|
|
expectedScreenshotUrl: “https://expected”
|
|
consoleLogUrl: “https://consolelog”
|
|
}
|
|
*/
|
|
async onMessage(testResult) {
|
|
const { pipeline } = testResult;
|
|
await this.handleReporting(testResult);
|
|
// Alter to start next test
|
|
// TODO the delay should be autopopulated either by the suite, or filled in by the server
|
|
if (pipeline) return this.pipelineTrigger(pipeline);
|
|
}
|
|
|
|
pipelineTrigger(pipeline) {
|
|
const { dashboardSocketId: dsi } = pipeline;
|
|
this.skio.to(dsi).emit(evt.PPL_TRG, pipeline);
|
|
}
|
|
|
|
handleReporting(result) {
|
|
VERB("TestResults", result.name);
|
|
insertTestResult(result);
|
|
}
|
|
}
|