@travetto/test
Version:
Declarative test framework
46 lines (38 loc) • 1.11 kB
text/typescript
import { Env, JSONUtil, RuntimeIndex } from '@travetto/runtime';
import { CliCommand, CliUtil } from '@travetto/cli';
import { IsPrivate } from '@travetto/schema';
import { runTests, selectConsumer } from './bin/run.ts';
import type { TestDiffSource } from '../src/model/test.ts';
/** Direct test invocation */
()
()
export class TestDiffCommand {
format: string = 'tap';
/**
* Format options
* @alias o
*/
formatOptions?: string[];
async preValidate(): Promise<void> {
await selectConsumer(this);
}
preMain(): void {
Env.TRV_ROLE.set('test');
Env.TRV_LOG_PLAIN.set(true);
Env.TRV_LOG_TIME.clear();
}
async main(importOrFile: string, diff: string): Promise<void> {
const diffSource: TestDiffSource = await JSONUtil.readFile(diff);
const importPath = RuntimeIndex.getFromImportOrSource(importOrFile)?.import!;
return runTests(
{
consumer: this.format,
consumerOptions: CliUtil.readExtendedOptions(this.formatOptions),
},
{
import: importPath,
diffSource
}
);
}
}