2018-08-03 17:18:42 +00:00
|
|
|
// ============
|
|
|
|
// combines different tap test files to an overall result
|
|
|
|
// ============
|
|
|
|
import * as plugins from './tstest.plugins';
|
2018-08-04 12:23:07 +00:00
|
|
|
import { coloredString as cs } from '@pushrocks/consolecolor';
|
|
|
|
|
2018-08-13 21:58:50 +00:00
|
|
|
import { TapParser } from './tstest.classes.tap.parser';
|
2018-08-05 20:58:52 +00:00
|
|
|
import * as logPrefixes from './tstest.logprefixes';
|
2018-08-03 17:18:42 +00:00
|
|
|
|
|
|
|
export class TapCombinator {
|
2018-08-04 12:23:07 +00:00
|
|
|
tapParserStore: TapParser[] = [];
|
2018-08-03 17:18:42 +00:00
|
|
|
addTapParser(tapParserArg: TapParser) {
|
2018-08-04 12:23:07 +00:00
|
|
|
this.tapParserStore.push(tapParserArg);
|
|
|
|
}
|
|
|
|
|
|
|
|
evaluate() {
|
2018-08-13 21:58:50 +00:00
|
|
|
console.log(`${logPrefixes.TsTestPrefix} RESULTS FOR ${this.tapParserStore.length} TESTFILE(S):`);
|
|
|
|
|
2018-08-05 20:58:52 +00:00
|
|
|
let failGlobal = false; // determine wether tstest should fail
|
2018-08-04 12:23:07 +00:00
|
|
|
for (const tapParser of this.tapParserStore) {
|
2018-08-13 21:58:50 +00:00
|
|
|
if (tapParser.getErrorTests().length === 0) {
|
|
|
|
let overviewString =
|
2018-08-05 20:58:52 +00:00
|
|
|
logPrefixes.TsTestPrefix +
|
|
|
|
cs(` ${tapParser.fileName} ${plugins.figures.tick}`, 'green') +
|
2018-08-13 21:58:50 +00:00
|
|
|
` ${plugins.figures.pointer} ` +
|
|
|
|
tapParser.getTestOverviewAsString();
|
|
|
|
console.log(overviewString);
|
2018-08-05 20:58:52 +00:00
|
|
|
} else {
|
2018-08-13 21:58:50 +00:00
|
|
|
let overviewString =
|
2018-08-05 20:58:52 +00:00
|
|
|
logPrefixes.TsTestPrefix +
|
|
|
|
cs(` ${tapParser.fileName} ${plugins.figures.cross}`, 'red') +
|
2018-08-13 21:58:50 +00:00
|
|
|
` ${plugins.figures.pointer} ` +
|
|
|
|
tapParser.getTestOverviewAsString();
|
|
|
|
console.log(overviewString);
|
2018-08-05 20:58:52 +00:00
|
|
|
failGlobal = true;
|
|
|
|
}
|
|
|
|
}
|
2018-08-13 21:58:50 +00:00
|
|
|
console.log(cs(plugins.figures.hamburger.repeat(48), 'cyan'));
|
|
|
|
if (!failGlobal) {
|
|
|
|
console.log(cs('FINAL RESULT: SUCCESS!', 'green'));
|
2018-08-05 20:58:52 +00:00
|
|
|
} else {
|
2018-08-13 21:58:50 +00:00
|
|
|
console.log(cs('FINAL RESULT: FAIL!', 'red'));
|
|
|
|
process.exit(1);
|
2018-08-04 12:23:07 +00:00
|
|
|
}
|
2018-08-03 17:18:42 +00:00
|
|
|
}
|
|
|
|
}
|