qualiteer/tests/assets/suite/runner.js

65 lines
1.8 KiB
JavaScript
Raw Normal View History

2022-07-07 21:45:38 +00:00
import axios from "axios";
import primary from "./primary.js";
import secondary from "./secondary.js";
2022-08-06 13:13:44 +00:00
import tertiary from "./tertiary.js";
2022-07-07 21:45:38 +00:00
import single from "./single.js";
import failing from "./failing.js";
// Constants
2022-08-06 13:13:44 +00:00
const liveUpdateDelay = 100;
const endLiveCount = 20;
2022-07-07 21:45:38 +00:00
const reportingUrl = `${process.env.QUALITEER_URL}/api/dev/rabbit/TestResults`;
// Pull args
const args = process.argv.slice(2);
2022-07-12 22:07:44 +00:00
const test = (args.find((v) => v.includes("test=")) ?? "").replace("test=", "");
const pipelineData = (
args.find((v) => v.includes("pipelineData=")) ?? ""
).replace("pipelineData=", "");
const pipelineTriggers = (
args.find((v) => v.includes("pipelineTriggers=")) ?? ""
).replace("pipelineTriggers=", "");
const pipelineDashboardSocket =
(args.find((v) => v.includes("pipelineDashboardSocket=")) ?? "").replace(
"pipelineDashboardSocket=",
""
) || undefined;
2022-07-07 21:45:38 +00:00
const logNow = () => console.log(Date.now());
const liveIndicator = () => {
2022-08-06 13:15:06 +00:00
for (var i = 0; i < endLiveCount; i++) setTimeout(logNow, i * liveUpdateDelay);
2022-07-12 22:07:44 +00:00
};
2022-07-07 21:45:38 +00:00
const runTests = () => {
switch (test) {
case "primary":
return primary();
2022-07-12 22:07:44 +00:00
case "secondary":
2022-07-07 21:45:38 +00:00
return secondary(pipelineData);
2022-08-06 13:13:44 +00:00
case "tertiary":
return tertiary(pipelineData);
2022-07-07 21:45:38 +00:00
case "single":
return single();
case "failing":
return failing();
default:
return single();
}
2022-07-12 22:07:44 +00:00
};
2022-07-07 21:45:38 +00:00
// Run
liveIndicator();
2022-07-12 22:07:44 +00:00
setTimeout(() => {
const status = runTests();
const testResult = {
...status,
name: test,
pipelineTriggers: pipelineTriggers ? pipelineTriggers : undefined,
pipelineDashboardSocket,
};
axios.post(reportingUrl, { testResult }).catch((e) => {
console.log(e.response.status);
2022-08-05 13:03:48 +00:00
}).then(()=>{
if(status.status === 1) process.exit(1);
2022-07-12 22:07:44 +00:00
});
2022-08-06 13:13:44 +00:00
}, endLiveCount * liveUpdateDelay);