// 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); } }