qualiteer/tests/assets/suite/runner.js

95 lines
2.5 KiB
JavaScript
Raw Normal View History

2022-07-07 21:45:38 +00:00
import axios from "axios";
2022-10-08 17:47:46 +00:00
import Rabbiteer from "rabbiteer";
2022-07-07 21:45:38 +00:00
import primary from "./primary.js";
2022-08-09 04:29:10 +00:00
import secondary1 from "./secondary1.js";
import secondary2 from "./secondary2.js";
import tertiary1 from "./tertiary1.js";
import tertiary2 from "./tertiary2.js";
import tertiary3 from "./tertiary3.js";
2022-07-07 21:45:38 +00:00
import single from "./single.js";
2022-08-21 20:58:51 +00:00
import singleAlt from "./single-alt.js";
2022-07-07 21:45:38 +00:00
import failing from "./failing.js";
// Constants
2022-08-06 13:13:44 +00:00
const liveUpdateDelay = 100;
2022-10-08 17:47:46 +00:00
const endLiveCount = 200;
const reportingUrl = `${process.env.QUALITEER_EXECUTOR_URL}/api/dev/rabbit/TestResults`;
2022-07-07 21:45:38 +00:00
// 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=", "");
2022-10-08 17:47:46 +00:00
const isTriage = (args.find((v) => v.includes("isTriage=")) ?? "").replace(
"isTriage=",
""
);
2022-08-09 04:29:10 +00:00
var pipeline = (args.find((v) => v.includes("pipeline=")) ?? "").replace(
"pipeline=",
""
);
if (pipeline)
pipeline = JSON.parse(Buffer.from(pipeline, "base64").toString("utf8"));
2022-07-07 21:45:38 +00:00
const logNow = () => console.log(Date.now());
const liveIndicator = () => {
2022-08-09 04:29:10 +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-08-09 04:29:10 +00:00
case "secondary1":
return secondary1(pipeline.testData);
case "secondary2":
return secondary2(pipeline.testData);
case "tertiary1":
return tertiary1(pipeline.testData);
case "tertiary2":
return tertiary2(pipeline.testData);
case "tertiary3":
return tertiary3(pipeline.testData);
2022-07-07 21:45:38 +00:00
case "single":
return single();
2022-08-21 20:58:51 +00:00
case "single-alt":
return singleAlt();
2022-07-07 21:45:38 +00:00
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-10-08 17:47:46 +00:00
setTimeout(async () => {
2022-07-12 22:07:44 +00:00
const status = runTests();
2022-08-09 17:59:36 +00:00
if (pipeline) pipeline.testData = status.pipelineData;
2022-07-12 22:07:44 +00:00
const testResult = {
...status,
2022-10-08 17:47:46 +00:00
failed: status.status !== 0,
2022-07-12 22:07:44 +00:00
name: test,
2022-08-09 04:29:10 +00:00
pipeline,
2022-10-08 17:47:46 +00:00
triage: isTriage === "true",
2022-07-12 22:07:44 +00:00
};
2022-10-08 17:47:46 +00:00
/*const rbt = new Rabbiteer(null, [], {
autoRabbit: { user: "guest", pass: "guest" },
});
await rbt.connect();
const data = JSON.stringify(testResult);
await rbt.publishMessageWithTimeout("TestResults", data);
rbt.disconnect();
if (status.status === 1) process.exit(1);*/
2022-08-09 04:29:10 +00:00
axios
.post(reportingUrl, { testResult })
.catch((e) => {
console.log(e.response.status);
})
.then(() => {
if (status.status === 1) process.exit(1);
});
2022-08-06 13:13:44 +00:00
}, endLiveCount * liveUpdateDelay);