1namespace ts.tscWatch { 2 describe("unittests:: tsbuildWatch:: watchMode:: with noEmitOnError", () => { 3 function change(caption: string, content: string): TscWatchCompileChange { 4 return { 5 caption, 6 change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, content), 7 // build project 8 timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout, 9 }; 10 } 11 12 const noChange: TscWatchCompileChange = { 13 caption: "No change", 14 change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, sys.readFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`)!), 15 // build project 16 timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout, 17 }; 18 verifyTscWatch({ 19 scenario: "noEmitOnError", 20 subScenario: "does not emit any files on error", 21 commandLineArgs: ["-b", "-w", "-verbose"], 22 sys: () => createWatchedSystem( 23 [ 24 ...["tsconfig.json", "shared/types/db.ts", "src/main.ts", "src/other.ts"] 25 .map(f => TestFSWithWatch.getTsBuildProjectFile("noEmitOnError", f)), 26 { path: libFile.path, content: libContent } 27 ], 28 { currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError` } 29 ), 30 changes: [ 31 noChange, 32 change("Fix Syntax error", `import { A } from "../shared/types/db"; 33const a = { 34 lastName: 'sdsd' 35};`), 36 change("Semantic Error", `import { A } from "../shared/types/db"; 37const a: string = 10;`), 38 noChange, 39 change("Fix Semantic Error", `import { A } from "../shared/types/db"; 40const a: string = "hello";`), 41 noChange, 42 ], 43 baselineIncremental: true 44 }); 45 }); 46}