From a17c6aaec3b25624111c3fcd8026b5af2340c471 Mon Sep 17 00:00:00 2001 From: Basarat Syed Date: Fri, 15 May 2015 20:15:15 +1000 Subject: [PATCH] allow test harness to provide a mock fileExists function --- src/harness/harnessLanguageService.ts | 2 ++ src/services/services.ts | 5 ++++- src/services/shims.ts | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 0e0b8d829183d..caac75187a680 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -190,6 +190,7 @@ module Harness.LanguageService { log(s: string): void { } trace(s: string): void { } error(s: string): void { } + fileExists = (fn: string) => this.getFilenames().some(serviceAdaptorFileName=> serviceAdaptorFileName === fn); } export class NativeLanugageServiceAdapter implements LanguageServiceAdapter { @@ -236,6 +237,7 @@ module Harness.LanguageService { log(s: string): void { this.nativeHost.log(s); } trace(s: string): void { this.nativeHost.trace(s); } error(s: string): void { this.nativeHost.error(s); } + fileExists(fn: string) { return this.nativeHost.fileExists(fn); } } class ClassifierShimProxy implements ts.Classifier { diff --git a/src/services/services.ts b/src/services/services.ts index e63f182d1285a..24684b6db8d02 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -960,6 +960,9 @@ module ts { log? (s: string): void; trace? (s: string): void; error? (s: string): void; + + // Needed for mocking support + fileExists? (s: string): boolean; } // @@ -2436,7 +2439,7 @@ module ts { getDefaultLibFileName: (options) => host.getDefaultLibFileName(options), writeFile: (fileName, data, writeByteOrderMark) => { }, readFile: (fileName) => sys.readFile(fileName), - fileExists: (fileName) => !!hostCache.getOrCreateEntry(fileName), + fileExists: host.fileExists ? (fn) => host.fileExists(fn) : sys.fileExists, getCurrentDirectory: () => host.getCurrentDirectory(), }); diff --git a/src/services/shims.ts b/src/services/shims.ts index 27c70ddc878a4..633e4871c0267 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -56,6 +56,7 @@ module ts { getDefaultLibFileName(options: string): string; getNewLine?(): string; getProjectVersion?(): string; + fileExists(fileName: string): boolean; } /** Public interface of the the of a config service shim instance.*/ @@ -260,6 +261,10 @@ module ts { public error(s: string): void { this.shimHost.error(s); } + + public fileExists(fn: string): boolean { + return this.shimHost.fileExists(fn); + } public getProjectVersion(): string { if (!this.shimHost.getProjectVersion) {