import * as Context from "@terrencecrowley/context";
import * as LogClient from "@terrencecrowley/logclient";
import * as LogAbstract from "@terrencecrowley/logabstract";

interface TestEnv { log: LogAbstract.ILog, context: Context.IContext };

let env: TestEnv = { log: null, context: null };
env.context = Context.create();
env.log = LogClient.create(env);

// Imports
import { test as test_compose } from './compose'
import { test as test_transform } from './transform'
import { test as test_server } from './servertest'

// Run compose tests
let tests: Array<(env: TestEnv) => void> = test_compose.tests();
for (let i: number = 0; i < tests.length; i++)
	tests[i](env);

// Run transform tests
tests = test_transform.tests();
for (let i: number = 0; i < tests.length; i++)
	tests[i](env);

// Run server tests
tests = test_server.tests();
for (let i: number = 0; i < tests.length; i++)
	tests[i](env);
