72 lines
No EOL
1.7 KiB
TypeScript
72 lines
No EOL
1.7 KiB
TypeScript
//
|
|
// test_runner.ts
|
|
//
|
|
// Written by: Oliver Akins (2019/11/17 - 2020/07/21)
|
|
//
|
|
|
|
|
|
import { TEST_CHANNEL, TEST_USER } from "../constants";
|
|
import { HANDLE_MESSAGE } from "../cmd_handler";
|
|
import { LOAD_CONFIG } from "../utils/Config";
|
|
import { tests } from "../utils/tests";
|
|
|
|
|
|
const config = LOAD_CONFIG();
|
|
var fail_count = 0;
|
|
|
|
|
|
export const run_tests = (silent: boolean): number => {
|
|
|
|
// Run through each test
|
|
for (var test of tests) {
|
|
|
|
|
|
let response = HANDLE_MESSAGE({
|
|
message: test.msg_meta.message,
|
|
level: test.msg_meta.level,
|
|
user: TEST_USER,
|
|
cooldown: false,
|
|
source: test.msg_meta.source,
|
|
channel: test.msg_meta.channel || TEST_CHANNEL,
|
|
test: true
|
|
});
|
|
|
|
|
|
// If the confirmation message is defined, trigger a confirmation
|
|
if (test.confirm_msg) {
|
|
response = HANDLE_MESSAGE({
|
|
message: test.confirm_msg.message,
|
|
level: test.confirm_msg.level,
|
|
user: TEST_USER,
|
|
cooldown: false,
|
|
source: test.confirm_msg.source,
|
|
channel: test.msg_meta.channel || TEST_CHANNEL,
|
|
test: true
|
|
});
|
|
};
|
|
|
|
|
|
// Compare outputs
|
|
if (test.expected_return != response) {
|
|
fail_count++;
|
|
if (!silent) {
|
|
console.log("=====================================================");
|
|
console.log(`Test ${test.id} failed`);
|
|
console.log(` Expected: "${test.expected_return}"`);
|
|
console.log(` Received: "${response}"`);
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
// Check if we are being silent
|
|
if (!silent && fail_count > 0) {
|
|
console.log("=====================================================");
|
|
};
|
|
|
|
|
|
// Output summary
|
|
console.log(`Tests: ${fail_count} tests failed out of ${tests.length} tests.`);
|
|
console.log(` ${Math.round(((tests.length - fail_count) / tests.length) * 100)}% passed`);
|
|
return fail_count;
|
|
}; |