44 lines
1,009 B
JavaScript
44 lines
1,009 B
JavaScript
function test(condition) {
|
|
var duration = 0;
|
|
var start = 0;
|
|
var result = true
|
|
if (performance.now) {
|
|
start = performance.now();
|
|
}
|
|
try {if (!condition()) throw new Error}
|
|
catch (e) {result = false;console.error(e);test.failures.push(condition)}
|
|
if (performance.now) {
|
|
duration = performance.now() - start;
|
|
}
|
|
|
|
test.total++
|
|
|
|
test_obj = {
|
|
name: "" + test.total,
|
|
result: result,
|
|
duration: duration
|
|
}
|
|
if (!result) {
|
|
message: "failed: " + condition,
|
|
window.global_test_results.tests.push(test_obj)
|
|
}
|
|
|
|
window.global_test_results.duration += duration;
|
|
if (result) {
|
|
window.global_test_results.passed++;
|
|
} else {
|
|
window.global_test_results.failed++;
|
|
}
|
|
}
|
|
test.total = 0
|
|
test.failures = []
|
|
test.print = function(print) {
|
|
for (var i = 0; i < test.failures.length; i++) {
|
|
print(test.failures[i].toString())
|
|
}
|
|
print("tests: " + test.total + "\nfailures: " + test.failures.length)
|
|
|
|
if (test.failures.length > 0) {
|
|
throw new Error(test.failures.length + " tests did not pass")
|
|
}
|
|
}
|