fix(peerDependency): now correctly finds bin of tsrun peer Dependency
This commit is contained in:
		
							
								
								
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -105,9 +105,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartshell": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.4.tgz", | ||||
|       "integrity": "sha512-yGVfp0i474nBUL44ufx5AQchFs5gAYBHiVAupDcG5H0f0KmnR2RKK1EIqKmdfmK7CIqLf8IAvv9FlhetmSrUhw==", | ||||
|       "version": "2.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.5.tgz", | ||||
|       "integrity": "sha512-bMmh46jfJxQ7F46bdujmBR8BqPeEFxBqdXab7885v0kaXASIf9+1BMPKfXiPsDrrR8z/2j2cG/Wgh/0+DDD9hQ==", | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5", | ||||
|         "@types/which": "^1.3.1", | ||||
|   | ||||
| @@ -28,6 +28,6 @@ | ||||
|     "@pushrocks/smartfile": "^6.0.3", | ||||
|     "@pushrocks/smartlog": "^2.0.1", | ||||
|     "@pushrocks/smartpromise": "^2.0.5", | ||||
|     "@pushrocks/smartshell": "^2.0.4" | ||||
|     "@pushrocks/smartshell": "^2.0.5" | ||||
|   } | ||||
| } | ||||
| } | ||||
| @@ -1,9 +1,10 @@ | ||||
| import * as plugins from "./tstest.plugins"; | ||||
| import * as plugins from './tstest.plugins'; | ||||
| import * as paths from './tstest.paths'; | ||||
| import { coloredString as cs } from '@pushrocks/consolecolor'; | ||||
|  | ||||
| import { TestDirectory } from "./tstest.classes.testdirectory"; | ||||
| import { TapCombinator } from "./tstest.tap.combinator"; | ||||
| import { TapParser } from "./tstest.tap.parser"; | ||||
| import { TestDirectory } from './tstest.classes.testdirectory'; | ||||
| import { TapCombinator } from './tstest.tap.combinator'; | ||||
| import { TapParser } from './tstest.tap.parser'; | ||||
|  | ||||
| export class TsTest { | ||||
|   testDir: TestDirectory; | ||||
| @@ -16,21 +17,20 @@ export class TsTest { | ||||
|     const fileNamesToRun: string[] = await this.testDir.getTestFilePathArray(); | ||||
|     console.log(`Found ${fileNamesToRun.length} Testfile(s):`); | ||||
|     for (const fileName of fileNamesToRun) { | ||||
|       console.log(cs(fileName, "orange")); | ||||
|       console.log(cs(fileName, 'orange')); | ||||
|     } | ||||
|     console.log("-".repeat(16)); | ||||
|     console.log('-'.repeat(16)); | ||||
|     const smartshellInstance = new plugins.smartshell.Smartshell({ | ||||
|       executor: "bash", | ||||
|       executor: 'bash', | ||||
|       pathDirectories: [paths.binDirectory], | ||||
|       sourceFilePaths: [] | ||||
|     }); | ||||
|     const tapCombinator = new TapCombinator(); // lets create the TapCombinator | ||||
|     for (const fileName of fileNamesToRun) { | ||||
|       console.log(`${cs("=> ", "blue")} Running ${cs(fileName, "orange")}`); | ||||
|       console.log(`${cs('=> ', 'blue')} Running ${cs(fileName, 'orange')}`); | ||||
|       console.log(`=`.repeat(16)); | ||||
|       const tapParser = new TapParser(); | ||||
|       const execResultStreaming = await smartshellInstance.execStreamingSilent( | ||||
|         `tsrun ${fileName}` | ||||
|       ); | ||||
|       const execResultStreaming = await smartshellInstance.execStreamingSilent(`tsrun ${fileName}`); | ||||
|       await tapParser.handleTapProcess(execResultStreaming.childProcess); | ||||
|       tapCombinator.addTapParser(tapParser); | ||||
|     } | ||||
|   | ||||
| @@ -1,7 +1,3 @@ | ||||
| import * as plugins from './tstest.plugins'; | ||||
|  | ||||
| export const TapPrefix = plugins.consolecolor.coloredString( | ||||
|   `:::TAP:::`, | ||||
|   'green', | ||||
|   'black' | ||||
| ) | ||||
| export const TapPrefix = plugins.consolecolor.coloredString(`:::TAP:::`, 'green', 'black'); | ||||
|   | ||||
| @@ -2,3 +2,4 @@ import * as plugins from './tstest.plugins'; | ||||
|  | ||||
| export const cwd = process.cwd(); | ||||
| export const testDir = plugins.path.join(cwd, './test/'); | ||||
| export const binDirectory = plugins.path.join(cwd, 'node_modules/.bin'); | ||||
|   | ||||
| @@ -15,7 +15,6 @@ export class TapCombinator { | ||||
|   evaluate() { | ||||
|     console.log(`Ran ${this.tapParserStore.length} Testfiles!`); | ||||
|     for (const tapParser of this.tapParserStore) { | ||||
|  | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| import { ChildProcess } from "child_process"; | ||||
| import { ChildProcess } from 'child_process'; | ||||
| import { coloredString as cs } from '@pushrocks/consolecolor'; | ||||
|  | ||||
| // ============ | ||||
| // combines different tap test files to an overall result | ||||
| // ============ | ||||
| import * as plugins from "./tstest.plugins"; | ||||
| import { TapTestResult } from "./tstest.tap.testresult"; | ||||
| import * as plugins from './tstest.plugins'; | ||||
| import { TapTestResult } from './tstest.tap.testresult'; | ||||
|  | ||||
| export class TapParser { | ||||
|   resultStore: TapTestResult[] = []; | ||||
| @@ -16,18 +16,16 @@ export class TapParser { | ||||
|   testStatusRegex = /(ok|not\sok)\s([0-9]+)\s-\s/; | ||||
|   activeTapTestResult: TapTestResult; | ||||
|  | ||||
|   private _getNewTapTestResult () { | ||||
|     this.activeTapTestResult = new TapTestResult( | ||||
|       this.resultStore.length + 1 | ||||
|     ); | ||||
|   private _getNewTapTestResult() { | ||||
|     this.activeTapTestResult = new TapTestResult(this.resultStore.length + 1); | ||||
|   } | ||||
|  | ||||
|   private _processLog(logChunk: Buffer | string) { | ||||
|     if (Buffer.isBuffer(logChunk)) { | ||||
|       logChunk = logChunk.toString(); | ||||
|     } | ||||
|     const logLineArray = logChunk.split("\n"); | ||||
|     if (logLineArray[logLineArray.length - 1] === "") { | ||||
|     const logLineArray = logChunk.split('\n'); | ||||
|     if (logLineArray[logLineArray.length - 1] === '') { | ||||
|       logLineArray.pop(); | ||||
|     } | ||||
|  | ||||
| @@ -42,38 +40,27 @@ export class TapParser { | ||||
|  | ||||
|         // initiating first TapResult | ||||
|         this._getNewTapTestResult(); | ||||
|          | ||||
|       } else if (this.testStatusRegex.test(logLine)) { | ||||
|         logLineIsTapProtocol = true; | ||||
|         const regexResult = this.testStatusRegex.exec(logLine); | ||||
|         const testId = parseInt(regexResult[2]); | ||||
|         const testOk = (() => { | ||||
|           if (regexResult[1] === "ok") { | ||||
|           if (regexResult[1] === 'ok') { | ||||
|             return true; | ||||
|           } | ||||
|           return false; | ||||
|         })(); | ||||
|  | ||||
|         // test for protocol error | ||||
|         if(testId !== this.activeTapTestResult.id) { | ||||
|           console.log(`:::TAP PROTOCOL ERROR::: Something is strange! Test Ids are not equal!`) | ||||
|         if (testId !== this.activeTapTestResult.id) { | ||||
|           console.log(`:::TAP PROTOCOL ERROR::: Something is strange! Test Ids are not equal!`); | ||||
|         } | ||||
|         this.activeTapTestResult.setTestResult(testOk); | ||||
|  | ||||
|         if(testOk) { | ||||
|           console.log( | ||||
|             cs( | ||||
|               `:::TAP::: Success: Test ${testId} is ok!`, | ||||
|               'green', | ||||
|               'black' | ||||
|           )); | ||||
|         if (testOk) { | ||||
|           console.log(cs(`:::TAP::: Success: Test ${testId} is ok!`, 'green', 'black')); | ||||
|         } else { | ||||
|           console.log( | ||||
|             cs( | ||||
|               `:::TAP::: Error: Test ${testId} is NOT ok!`, | ||||
|               'green', | ||||
|               'black' | ||||
|           )); | ||||
|           console.log(cs(`:::TAP::: Error: Test ${testId} is NOT ok!`, 'green', 'black')); | ||||
|         } | ||||
|       } | ||||
|  | ||||
| @@ -84,7 +71,7 @@ export class TapParser { | ||||
|         console.log(logLine); | ||||
|       } | ||||
|  | ||||
|       if(this.activeTapTestResult && this.activeTapTestResult.testSettled) { | ||||
|       if (this.activeTapTestResult && this.activeTapTestResult.testSettled) { | ||||
|         this.resultStore.push(this.activeTapTestResult); | ||||
|         this._getNewTapTestResult(); | ||||
|       } | ||||
| @@ -93,13 +80,13 @@ export class TapParser { | ||||
|  | ||||
|   async handleTapProcess(childProcessArg: ChildProcess) { | ||||
|     const done = plugins.smartpromise.defer(); | ||||
|     childProcessArg.stdout.on("data", data => { | ||||
|     childProcessArg.stdout.on('data', data => { | ||||
|       this._processLog(data); | ||||
|     }); | ||||
|     childProcessArg.stderr.on("data", data => { | ||||
|     childProcessArg.stderr.on('data', data => { | ||||
|       this._processLog(data); | ||||
|     }); | ||||
|     childProcessArg.on("exit", () => { | ||||
|     childProcessArg.on('exit', () => { | ||||
|       done.resolve(); | ||||
|     }); | ||||
|     await done.promise; | ||||
|   | ||||
| @@ -7,9 +7,7 @@ export class TapTestResult { | ||||
|   testLogBuffer = Buffer.from(''); | ||||
|   testOk: boolean = false; | ||||
|   testSettled: boolean = false; | ||||
|   constructor(public id: number) { | ||||
|      | ||||
|   } | ||||
|   constructor(public id: number) {} | ||||
|  | ||||
|   /** | ||||
|    * adds a logLine to the log buffer of the test | ||||
|   | ||||
		Reference in New Issue
	
	Block a user