More work on splitting roads, WIP; refactoring tests

This commit is contained in:
Pieter Vander Vennet 2021-09-22 05:02:09 +02:00
parent e374bb355c
commit 1f93923820
62 changed files with 1163 additions and 823 deletions

View file

@ -1,36 +1,16 @@
import {Utils} from "../Utils";
Utils.runningFromConsole = true;
import TagSpec from "./Tag.spec";
import ImageAttributionSpec from "./ImageAttribution.spec";
import GeoOperationsSpec from "./GeoOperations.spec";
import ImageSearcherSpec from "./ImageSearcher.spec";
import ThemeSpec from "./Theme.spec";
import UtilsSpec from "./Utils.spec";
import OsmConnectionSpec from "./OsmConnection.spec";
import T from "./TestHelper";
import {FixedUiElement} from "../UI/Base/FixedUiElement";
import Combine from "../UI/Base/Combine";
import OsmObjectSpec from "./OsmObject.spec";
import ScriptUtils from "../scripts/ScriptUtils";
import UnitsSpec from "./Units.spec";
import RelationSplitHandlerSpec from "./RelationSplitHandler.spec";
export default class TestAll {
private needsBrowserTests: T[] = [new OsmConnectionSpec()]
public testAll(): void {
Utils.runningFromConsole = false
for (const test of this.needsBrowserTests.concat(allTests)) {
if (test.failures.length > 0) {
new Combine([new FixedUiElement("TEST FAILED: " + test.name).SetStyle("background: red"),
...test.failures])
.AttachTo("maindiv")
throw "Some test failed"
}
}
}
}
ScriptUtils.fixUtils()
const allTests = [
new OsmObjectSpec(),
@ -40,12 +20,34 @@ const allTests = [
new ImageSearcherSpec(),
new ThemeSpec(),
new UtilsSpec(),
new UnitsSpec()
new UnitsSpec(),
new RelationSplitHandlerSpec()
]
let args = [...process.argv]
args.splice(0, 2)
args = args.map(a => a.toLowerCase())
for (const test of allTests) {
if (test.failures.length > 0) {
throw "Some test failed: " + test.failures.join(", ")
const allFailures: { testsuite: string, name: string, msg: string } [] = []
let testsToRun = allTests
if (args.length > 0) {
testsToRun = allTests.filter(t => args.indexOf(t.name) >= 0)
}
if(testsToRun.length == 0){
throw "No tests found"
}
for (let i = 0; i < testsToRun.length; i++){
const test = testsToRun[i];
ScriptUtils.erasableLog(" Running test", i, "/", allTests.length)
allFailures.push(...(test.Run() ?? []))
}
if (allFailures.length > 0) {
for (const failure of allFailures) {
console.error(" !! " + failure.testsuite + "." + failure.name + " failed due to: " + failure.msg)
}
}
throw "Some test failed"
}
console.log("All tests successful: ", allTests.map(t => t.name).join(", "))