mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
rename vfs namespace + update API baseline
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
namespace ts.TestFSWithWatch {
|
||||
namespace ts.VirtualFS {
|
||||
export const libFile: File = {
|
||||
path: "/a/lib/lib.d.ts",
|
||||
content: `/// <reference no-default-lib="true"/>
|
||||
|
||||
@@ -3702,7 +3702,7 @@ namespace ts.server {
|
||||
/* @internal */
|
||||
updateFileSystem(updatedFiles: protocol.FileSystemRequestArgs[] | undefined, deletedFiles?: string[]) {
|
||||
Debug.assert(this.fshost);
|
||||
const fs = this.fshost as TestFSWithWatch.VirtualServerHost;
|
||||
const fs = this.fshost as VirtualFS.VirtualServerHost;
|
||||
if (updatedFiles) {
|
||||
for (const { file, fileContent } of updatedFiles) {
|
||||
if (fs.fileExists(file)) {
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
const vfsys = new vfs.FileSystem(false, { files: { "/lib.d.ts": TestFSWithWatch.libFile.content } });
|
||||
const vfsys = new vfs.FileSystem(false, { files: { "/lib.d.ts": VirtualFS.libFile.content } });
|
||||
files.forEach((v, k) => {
|
||||
vfsys.mkdirpSync(getDirectoryPath(k));
|
||||
vfsys.writeFileSync(k, v);
|
||||
|
||||
@@ -921,9 +921,9 @@ namespace ts {
|
||||
});
|
||||
});
|
||||
|
||||
type File = TestFSWithWatch.File;
|
||||
import createTestSystem = TestFSWithWatch.createWatchedSystem;
|
||||
import libFile = TestFSWithWatch.libFile;
|
||||
type File = VirtualFS.File;
|
||||
import createTestSystem = VirtualFS.createWatchedSystem;
|
||||
import libFile = VirtualFS.libFile;
|
||||
|
||||
describe("unittests:: Reuse program structure:: isProgramUptoDate", () => {
|
||||
function getWhetherProgramIsUptoDate(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
namespace ts {
|
||||
const libFile: TestFSWithWatch.File = {
|
||||
const libFile: VirtualFS.File = {
|
||||
path: "/a/lib/lib.d.ts",
|
||||
content: `/// <reference no-default-lib="true"/>
|
||||
interface Boolean {}
|
||||
@@ -262,7 +262,7 @@ interface String { charAt: any; }
|
||||
interface Array<T> {}`
|
||||
};
|
||||
|
||||
const moduleFile: TestFSWithWatch.File = {
|
||||
const moduleFile: VirtualFS.File = {
|
||||
path: "/module.ts",
|
||||
content:
|
||||
`export function fn(res: any): any {
|
||||
@@ -393,7 +393,7 @@ interface Array<T> {}`
|
||||
}
|
||||
}
|
||||
|
||||
function makeLanguageService(file: TestFSWithWatch.File, includeLib?: boolean, includeModule?: boolean) {
|
||||
function makeLanguageService(file: VirtualFS.File, includeLib?: boolean, includeModule?: boolean) {
|
||||
const files = [file];
|
||||
if (includeLib) {
|
||||
files.push(libFile); // libFile is expensive to parse repeatedly - only test when required
|
||||
|
||||
@@ -144,7 +144,7 @@ export function Component(x: Config): any;`
|
||||
|
||||
describe("detects program upto date when new file is added to the referenced project", () => {
|
||||
function setup(useSourceOfProjectReferenceRedirect: (() => boolean) | undefined) {
|
||||
const config1: TestFSWithWatch.File = {
|
||||
const config1: VirtualFS.File = {
|
||||
path: `${tscWatch.projectRoot}/projects/project1/tsconfig.json`,
|
||||
content: JSON.stringify({
|
||||
compilerOptions: {
|
||||
@@ -154,15 +154,15 @@ export function Component(x: Config): any;`
|
||||
exclude: ["temp"]
|
||||
})
|
||||
};
|
||||
const class1: TestFSWithWatch.File = {
|
||||
const class1: VirtualFS.File = {
|
||||
path: `${tscWatch.projectRoot}/projects/project1/class1.ts`,
|
||||
content: `class class1 {}`
|
||||
};
|
||||
const class1Dts: TestFSWithWatch.File = {
|
||||
const class1Dts: VirtualFS.File = {
|
||||
path: `${tscWatch.projectRoot}/projects/project1/class1.d.ts`,
|
||||
content: `declare class class1 {}`
|
||||
};
|
||||
const config2: TestFSWithWatch.File = {
|
||||
const config2: VirtualFS.File = {
|
||||
path: `${tscWatch.projectRoot}/projects/project2/tsconfig.json`,
|
||||
content: JSON.stringify({
|
||||
compilerOptions: {
|
||||
@@ -174,7 +174,7 @@ export function Component(x: Config): any;`
|
||||
]
|
||||
})
|
||||
};
|
||||
const class2: TestFSWithWatch.File = {
|
||||
const class2: VirtualFS.File = {
|
||||
path: `${tscWatch.projectRoot}/projects/project2/class2.ts`,
|
||||
content: `class class2 {}`
|
||||
};
|
||||
|
||||
@@ -1002,15 +1002,15 @@ export * from "lib";
|
||||
libFile);
|
||||
});
|
||||
|
||||
function testOrganizeExports(testName: string, testFile: TestFSWithWatch.File, ...otherFiles: TestFSWithWatch.File[]) {
|
||||
function testOrganizeExports(testName: string, testFile: VirtualFS.File, ...otherFiles: VirtualFS.File[]) {
|
||||
testOrganizeImports(`${testName}.exports`, /*skipDestructiveCodeActions*/ true, testFile, ...otherFiles);
|
||||
}
|
||||
|
||||
function testOrganizeImports(testName: string, skipDestructiveCodeActions: boolean, testFile: TestFSWithWatch.File, ...otherFiles: TestFSWithWatch.File[]) {
|
||||
function testOrganizeImports(testName: string, skipDestructiveCodeActions: boolean, testFile: VirtualFS.File, ...otherFiles: VirtualFS.File[]) {
|
||||
it(testName, () => runBaseline(`organizeImports/${testName}.ts`, skipDestructiveCodeActions, testFile, ...otherFiles));
|
||||
}
|
||||
|
||||
function runBaseline(baselinePath: string, skipDestructiveCodeActions: boolean, testFile: TestFSWithWatch.File, ...otherFiles: TestFSWithWatch.File[]) {
|
||||
function runBaseline(baselinePath: string, skipDestructiveCodeActions: boolean, testFile: VirtualFS.File, ...otherFiles: VirtualFS.File[]) {
|
||||
const { path: testPath, content: testContent } = testFile;
|
||||
const languageService = makeLanguageService(testFile, ...otherFiles);
|
||||
const changes = languageService.organizeImports({ skipDestructiveCodeActions, type: "file", fileName: testPath }, testFormatSettings, emptyOptions);
|
||||
@@ -1026,7 +1026,7 @@ export * from "lib";
|
||||
].join(newLineCharacter));
|
||||
}
|
||||
|
||||
function makeLanguageService(...files: TestFSWithWatch.File[]) {
|
||||
function makeLanguageService(...files: VirtualFS.File[]) {
|
||||
const host = projectSystem.createServerHost(files);
|
||||
const projectService = projectSystem.createProjectService(host, { useSingleInferredProject: true });
|
||||
projectService.setCompilerOptionsForInferredProjects({ jsx: files.some(f => f.path.endsWith("x")) ? JsxEmit.React : JsxEmit.None });
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
export const libContent = `${TestFSWithWatch.libFile.content}
|
||||
export const libContent = `${VirtualFS.libFile.content}
|
||||
interface ReadonlyArray<T> {}
|
||||
declare const console: { log(msg: any): void; };`;
|
||||
|
||||
@@ -447,7 +447,7 @@ interface Symbol {
|
||||
if (!incremental) return;
|
||||
const incrementalMap = new Map(getEntries(incremental));
|
||||
const cleanMap = new Map(getEntries(clean!));
|
||||
assert.equal(incrementalMap.size, cleanMap.size, `Incremental and clean size of map should match:: ${message}, Incremental keys: ${arrayFrom(incrementalMap.keys())} Clean: ${arrayFrom(cleanMap.keys())}${TestFSWithWatch.getDiffInKeys(incrementalMap, arrayFrom(cleanMap.keys()))}`);
|
||||
assert.equal(incrementalMap.size, cleanMap.size, `Incremental and clean size of map should match:: ${message}, Incremental keys: ${arrayFrom(incrementalMap.keys())} Clean: ${arrayFrom(cleanMap.keys())}${VirtualFS.getDiffInKeys(incrementalMap, arrayFrom(cleanMap.keys()))}`);
|
||||
cleanMap.forEach((cleanValue, key) => {
|
||||
assert.isTrue(incrementalMap.has(key), `Expected to contain ${key} in incremental map:: ${message}, Incremental keys: ${arrayFrom(incrementalMap.keys())}`);
|
||||
verifyValue(key, incrementalMap.get(key)!, cleanValue);
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace ts {
|
||||
|
||||
function getTsBuildProjectFile(project: string, file: string): tscWatch.File {
|
||||
return {
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath(project, file),
|
||||
path: VirtualFS.getTsBuildProjectFilePath(project, file),
|
||||
content: projFs.readFileSync(`/src/${project}/${file}`, "utf8")!
|
||||
};
|
||||
}
|
||||
@@ -233,8 +233,8 @@ namespace ts {
|
||||
const testsConfig = getTsBuildProjectFile("tests", "tsconfig.json");
|
||||
const testsIndex = getTsBuildProjectFile("tests", "index.ts");
|
||||
const baseline: string[] = [];
|
||||
let oldSnap: ReturnType<TestFSWithWatch.TestServerHost["snap"]> | undefined;
|
||||
const system = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
let oldSnap: ReturnType<VirtualFS.TestServerHost["snap"]> | undefined;
|
||||
const system = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
fakes.patchHostForBuildInfoReadWrite(
|
||||
tscWatch.createWatchedSystem([
|
||||
coreConfig, coreIndex, coreDecl, coreAnotherModule,
|
||||
@@ -304,8 +304,8 @@ namespace ts {
|
||||
const testsConfig = getTsBuildProjectFile("tests", "tsconfig.json");
|
||||
const testsIndex = getTsBuildProjectFile("tests", "index.ts");
|
||||
const baseline: string[] = [];
|
||||
let oldSnap: ReturnType<TestFSWithWatch.TestServerHost["snap"]> | undefined;
|
||||
const system = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
let oldSnap: ReturnType<VirtualFS.TestServerHost["snap"]> | undefined;
|
||||
const system = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
fakes.patchHostForBuildInfoReadWrite(
|
||||
tscWatch.createWatchedSystem([
|
||||
coreConfig, coreIndex, coreDecl, coreAnotherModule,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace ts.tscWatch {
|
||||
describe("unittests:: tsbuildWatch:: watchMode:: with demo project", () => {
|
||||
const projectLocation = `${TestFSWithWatch.tsbuildProjectsLocation}/demo`;
|
||||
const projectLocation = `${VirtualFS.tsbuildProjectsLocation}/demo`;
|
||||
let coreFiles: File[];
|
||||
let animalFiles: File[];
|
||||
let zooFiles: File[];
|
||||
@@ -84,7 +84,7 @@ ${coreFiles[1].content}`),
|
||||
}
|
||||
|
||||
function projectFile(fileName: string): File {
|
||||
return TestFSWithWatch.getTsBuildProjectFile("demo", fileName);
|
||||
return VirtualFS.getTsBuildProjectFile("demo", fileName);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ namespace ts.tscWatch {
|
||||
function change(caption: string, content: string): TscWatchCompileChange {
|
||||
return {
|
||||
caption,
|
||||
change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, content),
|
||||
change: sys => sys.writeFile(`${VirtualFS.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, content),
|
||||
// build project
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout,
|
||||
};
|
||||
@@ -11,7 +11,7 @@ namespace ts.tscWatch {
|
||||
|
||||
const noChange: TscWatchCompileChange = {
|
||||
caption: "No change",
|
||||
change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, sys.readFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`)!),
|
||||
change: sys => sys.writeFile(`${VirtualFS.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, sys.readFile(`${VirtualFS.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`)!),
|
||||
// build project
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout,
|
||||
};
|
||||
@@ -22,10 +22,10 @@ namespace ts.tscWatch {
|
||||
sys: () => createWatchedSystem(
|
||||
[
|
||||
...["tsconfig.json", "shared/types/db.ts", "src/main.ts", "src/other.ts"]
|
||||
.map(f => TestFSWithWatch.getTsBuildProjectFile("noEmitOnError", f)),
|
||||
.map(f => VirtualFS.getTsBuildProjectFile("noEmitOnError", f)),
|
||||
{ path: libFile.path, content: libContent }
|
||||
],
|
||||
{ currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError` }
|
||||
{ currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/noEmitOnError` }
|
||||
),
|
||||
changes: [
|
||||
noChange,
|
||||
@@ -43,4 +43,4 @@ const a: string = "hello";`),
|
||||
baselineIncremental: true
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
namespace ts.tscWatch {
|
||||
import projectsLocation = TestFSWithWatch.tsbuildProjectsLocation;
|
||||
import projectsLocation = VirtualFS.tsbuildProjectsLocation;
|
||||
describe("unittests:: tsbuildWatch:: watchMode:: program updates", () => {
|
||||
const enum SubProject {
|
||||
core = "core",
|
||||
@@ -11,11 +11,11 @@ namespace ts.tscWatch {
|
||||
/** [tsconfig, index] | [tsconfig, index, anotherModule, someDecl] */
|
||||
type SubProjectFiles = [tsconfig: ReadonlyFile, index: ReadonlyFile] | [tsconfig: ReadonlyFile, index: ReadonlyFile, anotherModule: ReadonlyFile, someDecl: ReadonlyFile];
|
||||
function projectFilePath(subProject: SubProject, baseFileName: string) {
|
||||
return `${TestFSWithWatch.getTsBuildProjectFilePath("sample1", subProject)}/${baseFileName.toLowerCase()}`;
|
||||
return `${VirtualFS.getTsBuildProjectFilePath("sample1", subProject)}/${baseFileName.toLowerCase()}`;
|
||||
}
|
||||
|
||||
function projectFile(subProject: SubProject, baseFileName: string): File {
|
||||
return TestFSWithWatch.getTsBuildProjectFile("sample1", `${subProject}/${baseFileName}`);
|
||||
return VirtualFS.getTsBuildProjectFile("sample1", `${subProject}/${baseFileName}`);
|
||||
}
|
||||
|
||||
function subProjectFiles(subProject: SubProject, anotherModuleAndSomeDecl?: true): SubProjectFiles {
|
||||
@@ -739,4 +739,4 @@ export function someFn() { }`),
|
||||
]
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,23 +17,23 @@ namespace ts.tscWatch {
|
||||
"src/main/tsconfig.json", "src/main/index.ts",
|
||||
"src/pure/tsconfig.json", "src/pure/index.ts", "src/pure/session.ts"
|
||||
]
|
||||
.map(f => TestFSWithWatch.getTsBuildProjectFile("reexport", f)),
|
||||
.map(f => VirtualFS.getTsBuildProjectFile("reexport", f)),
|
||||
{ path: libFile.path, content: libContent }
|
||||
],
|
||||
{ currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/reexport` }
|
||||
{ currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/reexport` }
|
||||
),
|
||||
changes: [
|
||||
{
|
||||
caption: "Introduce error",
|
||||
change: sys => replaceFileText(sys, `${TestFSWithWatch.tsbuildProjectsLocation}/reexport/src/pure/session.ts`, "// ", ""),
|
||||
change: sys => replaceFileText(sys, `${VirtualFS.tsbuildProjectsLocation}/reexport/src/pure/session.ts`, "// ", ""),
|
||||
timeouts: build,
|
||||
},
|
||||
{
|
||||
caption: "Fix error",
|
||||
change: sys => replaceFileText(sys, `${TestFSWithWatch.tsbuildProjectsLocation}/reexport/src/pure/session.ts`, "bar: ", "// bar: "),
|
||||
change: sys => replaceFileText(sys, `${VirtualFS.tsbuildProjectsLocation}/reexport/src/pure/session.ts`, "bar: ", "// bar: "),
|
||||
timeouts: build
|
||||
}
|
||||
]
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,13 +7,13 @@ namespace ts.tscWatch {
|
||||
describe("when watchFile is single watcher per file", () => {
|
||||
verifyWatchFileOnMultipleProjects(
|
||||
/*singleWatchPerFile*/ true,
|
||||
arrayToMap(["TSC_WATCHFILE"], identity, () => TestFSWithWatch.Tsc_WatchFile.SingleFileWatcherPerName)
|
||||
arrayToMap(["TSC_WATCHFILE"], identity, () => VirtualFS.Tsc_WatchFile.SingleFileWatcherPerName)
|
||||
);
|
||||
});
|
||||
|
||||
function verifyWatchFileOnMultipleProjects(singleWatchPerFile: boolean, environmentVariables?: ESMap<string, string>) {
|
||||
it("watchFile on same file multiple times because file is part of multiple projects", () => {
|
||||
const project = `${TestFSWithWatch.tsbuildProjectsLocation}/myproject`;
|
||||
const project = `${VirtualFS.tsbuildProjectsLocation}/myproject`;
|
||||
let maxPkgs = 4;
|
||||
const configPath = `${project}/tsconfig.json`;
|
||||
const typing: File = {
|
||||
@@ -105,7 +105,7 @@ namespace ts.tscWatch {
|
||||
}
|
||||
];
|
||||
}
|
||||
function writePkgReferences(system: TestFSWithWatch.TestServerHost) {
|
||||
function writePkgReferences(system: VirtualFS.TestServerHost) {
|
||||
system.writeFile(configPath, JSON.stringify({
|
||||
files: [],
|
||||
include: [],
|
||||
|
||||
@@ -2,13 +2,13 @@ namespace ts {
|
||||
describe("unittests:: tsc:: declarationEmit::", () => {
|
||||
interface VerifyDeclarationEmitInput {
|
||||
subScenario: string;
|
||||
files: TestFSWithWatch.FileOrFolderOrSymLink[];
|
||||
files: VirtualFS.FileOrFolderOrSymLink[];
|
||||
rootProject: string;
|
||||
changeCaseFileTestPath: (path: string) => boolean;
|
||||
}
|
||||
|
||||
function changeCaseFile(file: TestFSWithWatch.FileOrFolderOrSymLink, testPath: (path: string) => boolean, replacePath: (path: string) => string): TestFSWithWatch.FileOrFolderOrSymLink {
|
||||
return !TestFSWithWatch.isSymLink(file) || !testPath(file.symLink) ?
|
||||
function changeCaseFile(file: VirtualFS.FileOrFolderOrSymLink, testPath: (path: string) => boolean, replacePath: (path: string) => string): VirtualFS.FileOrFolderOrSymLink {
|
||||
return !VirtualFS.isSymLink(file) || !testPath(file.symLink) ?
|
||||
testPath(file.path) ? { ...file, path: replacePath(file.path) } : file :
|
||||
{ path: testPath(file.path) ? replacePath(file.path) : file.path, symLink: replacePath(file.symLink) };
|
||||
}
|
||||
|
||||
@@ -343,24 +343,24 @@ export class Data2 {
|
||||
function change(caption: string, content: string): TscWatchCompileChange {
|
||||
return {
|
||||
caption,
|
||||
change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, content),
|
||||
change: sys => sys.writeFile(`${VirtualFS.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, content),
|
||||
// build project
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
};
|
||||
}
|
||||
const noChange: TscWatchCompileChange = {
|
||||
caption: "No change",
|
||||
change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, sys.readFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`)!),
|
||||
change: sys => sys.writeFile(`${VirtualFS.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, sys.readFile(`${VirtualFS.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`)!),
|
||||
// build project
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun,
|
||||
};
|
||||
verifyEmitAndErrorUpdates({
|
||||
subScenario: "with noEmitOnError",
|
||||
currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError`,
|
||||
currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/noEmitOnError`,
|
||||
files: () => ["shared/types/db.ts", "src/main.ts", "src/other.ts"]
|
||||
.map(f => TestFSWithWatch.getTsBuildProjectFile("noEmitOnError", f)),
|
||||
.map(f => VirtualFS.getTsBuildProjectFile("noEmitOnError", f)),
|
||||
lib: () => ({ path: libFile.path, content: libContent }),
|
||||
configFile: () => TestFSWithWatch.getTsBuildProjectFile("noEmitOnError", "tsconfig.json"),
|
||||
configFile: () => VirtualFS.getTsBuildProjectFile("noEmitOnError", "tsconfig.json"),
|
||||
changes: [
|
||||
noChange,
|
||||
change("Fix Syntax error", `import { A } from "../shared/types/db";
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
namespace ts.tscWatch {
|
||||
export const projects = `/user/username/projects`;
|
||||
export const projectRoot = `${projects}/myproject`;
|
||||
export import WatchedSystem = TestFSWithWatch.TestServerHost;
|
||||
export type File = TestFSWithWatch.File;
|
||||
export type SymLink = TestFSWithWatch.SymLink;
|
||||
export import libFile = TestFSWithWatch.libFile;
|
||||
export import createWatchedSystem = TestFSWithWatch.createWatchedSystem;
|
||||
export import checkArray = TestFSWithWatch.checkArray;
|
||||
export import checkWatchedFiles = TestFSWithWatch.checkWatchedFiles;
|
||||
export import checkWatchedFilesDetailed = TestFSWithWatch.checkWatchedFilesDetailed;
|
||||
export import checkWatchedDirectories = TestFSWithWatch.checkWatchedDirectories;
|
||||
export import checkWatchedDirectoriesDetailed = TestFSWithWatch.checkWatchedDirectoriesDetailed;
|
||||
export import checkOutputContains = TestFSWithWatch.checkOutputContains;
|
||||
export import checkOutputDoesNotContain = TestFSWithWatch.checkOutputDoesNotContain;
|
||||
export import WatchedSystem = VirtualFS.TestServerHost;
|
||||
export type File = VirtualFS.File;
|
||||
export type SymLink = VirtualFS.SymLink;
|
||||
export import libFile = VirtualFS.libFile;
|
||||
export import createWatchedSystem = VirtualFS.createWatchedSystem;
|
||||
export import checkArray = VirtualFS.checkArray;
|
||||
export import checkWatchedFiles = VirtualFS.checkWatchedFiles;
|
||||
export import checkWatchedFilesDetailed = VirtualFS.checkWatchedFilesDetailed;
|
||||
export import checkWatchedDirectories = VirtualFS.checkWatchedDirectories;
|
||||
export import checkWatchedDirectoriesDetailed = VirtualFS.checkWatchedDirectoriesDetailed;
|
||||
export import checkOutputContains = VirtualFS.checkOutputContains;
|
||||
export import checkOutputDoesNotContain = VirtualFS.checkOutputDoesNotContain;
|
||||
|
||||
export const commonFile1: File = {
|
||||
path: "/a/b/commonFile1.ts",
|
||||
@@ -102,9 +102,9 @@ namespace ts.tscWatch {
|
||||
export type WatchOrSolution<T extends BuilderProgram> = void | SolutionBuilder<T> | WatchOfConfigFile<T> | WatchOfFilesAndCompilerOptions<T>;
|
||||
export interface TscWatchCompileChange<T extends BuilderProgram = EmitAndSemanticDiagnosticsBuilderProgram> {
|
||||
caption: string;
|
||||
change: (sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles) => void;
|
||||
change: (sys: VirtualFS.TestServerHostTrackingWrittenFiles) => void;
|
||||
timeouts: (
|
||||
sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles,
|
||||
sys: VirtualFS.TestServerHostTrackingWrittenFiles,
|
||||
programs: readonly CommandLineProgram[],
|
||||
watchOrSolution: WatchOrSolution<T>
|
||||
) => void;
|
||||
@@ -164,7 +164,7 @@ namespace ts.tscWatch {
|
||||
|
||||
export interface BaselineBase {
|
||||
baseline: string[];
|
||||
sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles;
|
||||
sys: VirtualFS.TestServerHostTrackingWrittenFiles;
|
||||
oldSnap: SystemSnap;
|
||||
}
|
||||
|
||||
@@ -174,7 +174,7 @@ namespace ts.tscWatch {
|
||||
export function createBaseline(system: WatchedSystem, modifySystem?: (sys: WatchedSystem) => void): Baseline {
|
||||
const initialSys = fakes.patchHostForBuildInfoReadWrite(system);
|
||||
modifySystem?.(initialSys);
|
||||
const sys = TestFSWithWatch.changeToHostTrackingWrittenFiles(initialSys);
|
||||
const sys = VirtualFS.changeToHostTrackingWrittenFiles(initialSys);
|
||||
const baseline: string[] = [];
|
||||
baseline.push("Input::");
|
||||
sys.diff(baseline);
|
||||
@@ -246,7 +246,7 @@ namespace ts.tscWatch {
|
||||
}
|
||||
|
||||
export interface RunWatchBaseline<T extends BuilderProgram> extends BaselineBase, TscWatchCompileBase<T> {
|
||||
sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles;
|
||||
sys: VirtualFS.TestServerHostTrackingWrittenFiles;
|
||||
getPrograms: () => readonly CommandLineProgram[];
|
||||
watchOrSolution: WatchOrSolution<T>;
|
||||
}
|
||||
@@ -419,12 +419,12 @@ namespace ts.tscWatch {
|
||||
assert.equal(host.getOutput().length, 0, JSON.stringify(host.getOutput(), /*replacer*/ undefined, " "));
|
||||
}
|
||||
|
||||
export function createSystemWithSolutionBuild(solutionRoots: readonly string[], files: readonly TestFSWithWatch.FileOrFolderOrSymLink[], params?: TestFSWithWatch.TestServerHostCreationParameters) {
|
||||
export function createSystemWithSolutionBuild(solutionRoots: readonly string[], files: readonly VirtualFS.FileOrFolderOrSymLink[], params?: VirtualFS.TestServerHostCreationParameters) {
|
||||
const sys = createWatchedSystem(files, params);
|
||||
const originalReadFile = sys.readFile;
|
||||
const originalWrite = sys.write;
|
||||
const originalWriteFile = sys.writeFile;
|
||||
const solutionBuilder = createSolutionBuilder(TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const solutionBuilder = createSolutionBuilder(VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
fakes.patchHostForBuildInfoReadWrite(sys)
|
||||
), solutionRoots, {});
|
||||
solutionBuilder.build();
|
||||
|
||||
@@ -7,23 +7,23 @@ namespace ts.tscWatch {
|
||||
["tests"],
|
||||
[
|
||||
libFile,
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "core/tsconfig.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "core/index.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "core/anotherModule.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "core/some_decl.d.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "logic/tsconfig.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "logic/index.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "tests/tsconfig.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("sample1", "tests/index.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "core/tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "core/index.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "core/anotherModule.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "core/some_decl.d.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "logic/tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "logic/index.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "tests/tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFile("sample1", "tests/index.ts"),
|
||||
],
|
||||
{ currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/sample1` }
|
||||
{ currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/sample1` }
|
||||
),
|
||||
commandLineArgs: ["-w", "-p", "tests"],
|
||||
changes: [
|
||||
{
|
||||
caption: "local edit in logic ts, and build logic",
|
||||
change: sys => {
|
||||
sys.appendFile(TestFSWithWatch.getTsBuildProjectFilePath("sample1", "logic/index.ts"), `function foo() { }`);
|
||||
sys.appendFile(VirtualFS.getTsBuildProjectFilePath("sample1", "logic/index.ts"), `function foo() { }`);
|
||||
const solutionBuilder = createSolutionBuilder(sys, ["logic"]);
|
||||
solutionBuilder.build();
|
||||
},
|
||||
@@ -34,7 +34,7 @@ namespace ts.tscWatch {
|
||||
{
|
||||
caption: "non local edit in logic ts, and build logic",
|
||||
change: sys => {
|
||||
sys.appendFile(TestFSWithWatch.getTsBuildProjectFilePath("sample1", "logic/index.ts"), `export function gfoo() { }`);
|
||||
sys.appendFile(VirtualFS.getTsBuildProjectFilePath("sample1", "logic/index.ts"), `export function gfoo() { }`);
|
||||
const solutionBuilder = createSolutionBuilder(sys, ["logic"]);
|
||||
solutionBuilder.build();
|
||||
},
|
||||
@@ -43,7 +43,7 @@ namespace ts.tscWatch {
|
||||
{
|
||||
caption: "change in project reference config file builds correctly",
|
||||
change: sys => {
|
||||
sys.writeFile(TestFSWithWatch.getTsBuildProjectFilePath("sample1", "logic/tsconfig.json"), JSON.stringify({
|
||||
sys.writeFile(VirtualFS.getTsBuildProjectFilePath("sample1", "logic/tsconfig.json"), JSON.stringify({
|
||||
compilerOptions: { composite: true, declaration: true, declarationDir: "decls" },
|
||||
references: [{ path: "../core" }]
|
||||
}));
|
||||
@@ -69,22 +69,22 @@ namespace ts.tscWatch {
|
||||
["tsconfig.c.json"],
|
||||
[
|
||||
libFile,
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "tsconfig.a.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "tsconfig.b.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "tsconfig.c.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "a.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "b.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "c.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "tsconfig.a.json"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "tsconfig.b.json"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "tsconfig.c.json"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "a.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "b.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "c.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
],
|
||||
{ currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
{ currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
),
|
||||
commandLineArgs: ["-w", "-p", "tsconfig.c.json"],
|
||||
changes: [
|
||||
{
|
||||
caption: "non local edit b ts, and build b",
|
||||
change: sys => {
|
||||
sys.appendFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b.ts"), `export function gfoo() { }`);
|
||||
sys.appendFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b.ts"), `export function gfoo() { }`);
|
||||
const solutionBuilder = createSolutionBuilder(sys, ["tsconfig.b.json"]);
|
||||
solutionBuilder.build();
|
||||
},
|
||||
@@ -94,46 +94,46 @@ namespace ts.tscWatch {
|
||||
caption: "edit on config file",
|
||||
change: sys => {
|
||||
sys.ensureFileOrFolder({
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "nrefs/a.d.ts"),
|
||||
content: sys.readFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "refs/a.d.ts"))!
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "nrefs/a.d.ts"),
|
||||
content: sys.readFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "refs/a.d.ts"))!
|
||||
});
|
||||
changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.c.json"), { "@ref/*": ["./nrefs/*"] });
|
||||
changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.c.json"), { "@ref/*": ["./nrefs/*"] });
|
||||
},
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert config file edit",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.c.json"), { "@ref/*": ["./refs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.c.json"), { "@ref/*": ["./refs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "edit in referenced config file",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json"), { "@ref/*": ["./nrefs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json"), { "@ref/*": ["./nrefs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert referenced config file edit",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json"), { "@ref/*": ["./refs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json"), { "@ref/*": ["./refs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "deleting referenced config file",
|
||||
change: sys => sys.deleteFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json")),
|
||||
change: sys => sys.deleteFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json")),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert deleting referenced config file",
|
||||
change: sys => sys.ensureFileOrFolder(TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "tsconfig.b.json")),
|
||||
change: sys => sys.ensureFileOrFolder(VirtualFS.getTsBuildProjectFile("transitiveReferences", "tsconfig.b.json")),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "deleting transitively referenced config file",
|
||||
change: sys => sys.deleteFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.a.json")),
|
||||
change: sys => sys.deleteFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.a.json")),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert deleting transitively referenced config file",
|
||||
change: sys => sys.ensureFileOrFolder(TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "tsconfig.a.json")),
|
||||
change: sys => sys.ensureFileOrFolder(VirtualFS.getTsBuildProjectFile("transitiveReferences", "tsconfig.a.json")),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
],
|
||||
@@ -147,25 +147,25 @@ namespace ts.tscWatch {
|
||||
["tsconfig.c.json"],
|
||||
[
|
||||
libFile,
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "tsconfig.a.json"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "tsconfig.a.json"),
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "tsconfig.b.json"),
|
||||
content: JSON.stringify({
|
||||
compilerOptions: { composite: true, moduleResolution: "classic" },
|
||||
files: ["b.ts"],
|
||||
references: [{ path: "tsconfig.a.json" }]
|
||||
})
|
||||
},
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "tsconfig.c.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "a.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "tsconfig.c.json"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "a.ts"),
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b.ts"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b.ts"),
|
||||
content: `import {A} from "a";export const b = new A();`
|
||||
},
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "c.ts"),
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "c.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
],
|
||||
{ currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
{ currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
),
|
||||
commandLineArgs: ["-w", "-p", "tsconfig.c.json"],
|
||||
changes: emptyArray,
|
||||
@@ -180,14 +180,14 @@ namespace ts.tscWatch {
|
||||
[
|
||||
libFile,
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
content: JSON.stringify({
|
||||
compilerOptions: { composite: true },
|
||||
files: ["index.ts"]
|
||||
}),
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
content: JSON.stringify({
|
||||
compilerOptions: { composite: true, baseUrl: "./", paths: { "@ref/*": ["../*"] } },
|
||||
files: ["index.ts"],
|
||||
@@ -195,7 +195,7 @@ namespace ts.tscWatch {
|
||||
}),
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"),
|
||||
content: JSON.stringify({
|
||||
compilerOptions: { baseUrl: "./", paths: { "@ref/*": ["../refs/*"] } },
|
||||
files: ["index.ts"],
|
||||
@@ -203,31 +203,31 @@ namespace ts.tscWatch {
|
||||
}),
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/index.ts"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/index.ts"),
|
||||
content: `export class A {}`,
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"),
|
||||
content: `import {A} from '@ref/a';
|
||||
export const b = new A();`,
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/index.ts"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/index.ts"),
|
||||
content: `import {b} from '../b';
|
||||
import {X} from "@ref/a";
|
||||
b;
|
||||
X;`,
|
||||
},
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
],
|
||||
{ currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
{ currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
),
|
||||
commandLineArgs: ["-w", "-p", "c"],
|
||||
changes: [
|
||||
{
|
||||
caption: "non local edit b ts, and build b",
|
||||
change: sys => {
|
||||
sys.appendFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"), `export function gfoo() { }`);
|
||||
sys.appendFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"), `export function gfoo() { }`);
|
||||
const solutionBuilder = createSolutionBuilder(sys, ["b"]);
|
||||
solutionBuilder.build();
|
||||
},
|
||||
@@ -237,37 +237,37 @@ X;`,
|
||||
caption: "edit on config file",
|
||||
change: sys => {
|
||||
sys.ensureFileOrFolder({
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "nrefs/a.d.ts"),
|
||||
content: sys.readFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "refs/a.d.ts"))!
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "nrefs/a.d.ts"),
|
||||
content: sys.readFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "refs/a.d.ts"))!
|
||||
});
|
||||
changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../nrefs/*"] });
|
||||
changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../nrefs/*"] });
|
||||
},
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert config file edit",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "edit in referenced config file",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../nrefs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../nrefs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert referenced config file edit",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "deleting referenced config file",
|
||||
change: sys => sys.deleteFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json")),
|
||||
change: sys => sys.deleteFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json")),
|
||||
timeouts: sys => sys.checkTimeoutQueueLengthAndRun(2)
|
||||
},
|
||||
{
|
||||
caption: "Revert deleting referenced config file",
|
||||
change: sys => sys.writeFile(
|
||||
TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
JSON.stringify({
|
||||
compilerOptions: { composite: true, baseUrl: "./", paths: { "@ref/*": ["../*"] } },
|
||||
files: ["index.ts"],
|
||||
@@ -278,13 +278,13 @@ X;`,
|
||||
},
|
||||
{
|
||||
caption: "deleting transitively referenced config file",
|
||||
change: sys => sys.deleteFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json")),
|
||||
change: sys => sys.deleteFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json")),
|
||||
timeouts: sys => sys.checkTimeoutQueueLengthAndRun(2)
|
||||
},
|
||||
{
|
||||
caption: "Revert deleting transitively referenced config file",
|
||||
change: sys => sys.writeFile(
|
||||
TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
JSON.stringify({
|
||||
compilerOptions: { composite: true },
|
||||
files: ["index.ts"]
|
||||
@@ -304,49 +304,49 @@ X;`,
|
||||
[
|
||||
libFile,
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
content: JSON.stringify({ compilerOptions: { composite: true } }),
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
content: JSON.stringify({
|
||||
compilerOptions: { composite: true, baseUrl: "./", paths: { "@ref/*": ["../*"] } },
|
||||
references: [{ path: `../a` }]
|
||||
}),
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"),
|
||||
content: JSON.stringify({
|
||||
compilerOptions: { baseUrl: "./", paths: { "@ref/*": ["../refs/*"] } },
|
||||
references: [{ path: `../b` }]
|
||||
}),
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/index.ts"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/index.ts"),
|
||||
content: `export class A {}`,
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"),
|
||||
content: `import {A} from '@ref/a';
|
||||
export const b = new A();`,
|
||||
},
|
||||
{
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/index.ts"),
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/index.ts"),
|
||||
content: `import {b} from '../b';
|
||||
import {X} from "@ref/a";
|
||||
b;
|
||||
X;`,
|
||||
},
|
||||
TestFSWithWatch.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
VirtualFS.getTsBuildProjectFile("transitiveReferences", "refs/a.d.ts"),
|
||||
],
|
||||
{ currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
{ currentDirectory: `${VirtualFS.tsbuildProjectsLocation}/transitiveReferences` }
|
||||
),
|
||||
commandLineArgs: ["-w", "-p", "c"],
|
||||
changes: [
|
||||
{
|
||||
caption: "non local edit b ts, and build b",
|
||||
change: sys => {
|
||||
sys.appendFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"), `export function gfoo() { }`);
|
||||
sys.appendFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/index.ts"), `export function gfoo() { }`);
|
||||
const solutionBuilder = createSolutionBuilder(sys, ["b"]);
|
||||
solutionBuilder.build();
|
||||
},
|
||||
@@ -356,37 +356,37 @@ X;`,
|
||||
caption: "edit on config file",
|
||||
change: sys => {
|
||||
sys.ensureFileOrFolder({
|
||||
path: TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "nrefs/a.d.ts"),
|
||||
content: sys.readFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "refs/a.d.ts"))!
|
||||
path: VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "nrefs/a.d.ts"),
|
||||
content: sys.readFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "refs/a.d.ts"))!
|
||||
});
|
||||
changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../nrefs/*"] });
|
||||
changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../nrefs/*"] });
|
||||
},
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert config file edit",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "c/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "edit in referenced config file",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../nrefs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../nrefs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "Revert referenced config file edit",
|
||||
change: sys => changeCompilerOpitonsPaths(sys, TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
change: sys => changeCompilerOpitonsPaths(sys, VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"), { "@ref/*": ["../refs/*"] }),
|
||||
timeouts: checkSingleTimeoutQueueLengthAndRun
|
||||
},
|
||||
{
|
||||
caption: "deleting referenced config file",
|
||||
change: sys => sys.deleteFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json")),
|
||||
change: sys => sys.deleteFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json")),
|
||||
timeouts: sys => sys.checkTimeoutQueueLengthAndRun(2)
|
||||
},
|
||||
{
|
||||
caption: "Revert deleting referenced config file",
|
||||
change: sys => sys.writeFile(
|
||||
TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "b/tsconfig.json"),
|
||||
JSON.stringify({
|
||||
compilerOptions: { composite: true, baseUrl: "./", paths: { "@ref/*": ["../*"] } },
|
||||
references: [{ path: `../a` }]
|
||||
@@ -396,13 +396,13 @@ X;`,
|
||||
},
|
||||
{
|
||||
caption: "deleting transitively referenced config file",
|
||||
change: sys => sys.deleteFile(TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json")),
|
||||
change: sys => sys.deleteFile(VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json")),
|
||||
timeouts: sys => sys.checkTimeoutQueueLengthAndRun(2)
|
||||
},
|
||||
{
|
||||
caption: "Revert deleting transitively referenced config file",
|
||||
change: sys => sys.writeFile(
|
||||
TestFSWithWatch.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFilePath("transitiveReferences", "a/tsconfig.json"),
|
||||
JSON.stringify({ compilerOptions: { composite: true } }),
|
||||
),
|
||||
timeouts: sys => sys.checkTimeoutQueueLengthAndRun(2)
|
||||
@@ -411,4 +411,4 @@ X;`,
|
||||
baselineDependencies: true,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
namespace ts.tscWatch {
|
||||
import getFileFromProject = TestFSWithWatch.getTsBuildProjectFile;
|
||||
import getFileFromProject = VirtualFS.getTsBuildProjectFile;
|
||||
describe("unittests:: tsc-watch:: watchAPI:: with sourceOfProjectReferenceRedirect", () => {
|
||||
interface VerifyWatchInput {
|
||||
files: readonly TestFSWithWatch.FileOrFolderOrSymLink[];
|
||||
files: readonly VirtualFS.FileOrFolderOrSymLink[];
|
||||
config: string;
|
||||
subScenario: string;
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ namespace ts.tscWatch {
|
||||
function createWatch<T extends BuilderProgram>(
|
||||
baseline: string[],
|
||||
config: File,
|
||||
sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles,
|
||||
sys: VirtualFS.TestServerHostTrackingWrittenFiles,
|
||||
createProgram: CreateProgram<T>,
|
||||
optionsToExtend?: CompilerOptions,
|
||||
) {
|
||||
@@ -246,9 +246,9 @@ namespace ts.tscWatch {
|
||||
function applyChangeForBuilderTest(
|
||||
baseline: string[],
|
||||
emitBaseline: string[],
|
||||
sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles,
|
||||
emitSys: TestFSWithWatch.TestServerHostTrackingWrittenFiles,
|
||||
change: (sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles) => void,
|
||||
sys: VirtualFS.TestServerHostTrackingWrittenFiles,
|
||||
emitSys: VirtualFS.TestServerHostTrackingWrittenFiles,
|
||||
change: (sys: VirtualFS.TestServerHostTrackingWrittenFiles) => void,
|
||||
caption: string
|
||||
) {
|
||||
// Change file
|
||||
@@ -260,8 +260,8 @@ namespace ts.tscWatch {
|
||||
baseline: string[],
|
||||
emitBaseline: string[],
|
||||
config: File,
|
||||
sys: TestFSWithWatch.TestServerHostTrackingWrittenFiles,
|
||||
emitSys: TestFSWithWatch.TestServerHostTrackingWrittenFiles,
|
||||
sys: VirtualFS.TestServerHostTrackingWrittenFiles,
|
||||
emitSys: VirtualFS.TestServerHostTrackingWrittenFiles,
|
||||
createProgram: CreateProgram<T>,
|
||||
optionsToExtend?: CompilerOptions) {
|
||||
createWatch(baseline, config, sys, createProgram, optionsToExtend);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
namespace ts.tscWatch {
|
||||
import Tsc_WatchDirectory = TestFSWithWatch.Tsc_WatchDirectory;
|
||||
import Tsc_WatchDirectory = VirtualFS.Tsc_WatchDirectory;
|
||||
describe("unittests:: tsc-watch:: watchEnvironment:: tsc-watch with different polling/non polling options", () => {
|
||||
const scenario = "watchEnvironment";
|
||||
verifyTscWatch({
|
||||
@@ -13,7 +13,7 @@ namespace ts.tscWatch {
|
||||
content: "var z = 10;"
|
||||
};
|
||||
const environmentVariables = new Map<string, string>();
|
||||
environmentVariables.set("TSC_WATCHFILE", TestFSWithWatch.Tsc_WatchFile.DynamicPolling);
|
||||
environmentVariables.set("TSC_WATCHFILE", VirtualFS.Tsc_WatchFile.DynamicPolling);
|
||||
return createWatchedSystem([file1, libFile], { environmentVariables });
|
||||
},
|
||||
changes: [
|
||||
|
||||
@@ -41,12 +41,12 @@ interface Array<T> { length: number; [n: number]: T; }`
|
||||
${file.fileContent}`;
|
||||
}
|
||||
// TODO: This is almost certainly in harness/virtualFileSystemHost.ts, or should be.
|
||||
function verifyFileSystem(host: TestFSWithWatch.VirtualServerHost | undefined, files: protocol.FileSystemRequestArgs[]) {
|
||||
function verifyFileSystem(host: VirtualFS.VirtualServerHost | undefined, files: protocol.FileSystemRequestArgs[]) {
|
||||
// 1. make sure that everything in files is there
|
||||
assert.isDefined(host);
|
||||
const fs = (host as any).fs as ESMap<string, TestFSWithWatch.FSEntry>;
|
||||
const fs = (host as any).fs as ESMap<string, VirtualFS.FSEntry>;
|
||||
// console.log(Array.from(fs.values() as any as Iterable<ts.TestFSWithWatch.FSEntry>).filter(ts.TestFSWithWatch.isFsFile))
|
||||
assert.equal(Array.from(fs.values() as any as Iterable<TestFSWithWatch.FSEntry>).filter(TestFSWithWatch.isFsFile).length, files.length);
|
||||
assert.equal(Array.from(fs.values() as any as Iterable<VirtualFS.FSEntry>).filter(VirtualFS.isFsFile).length, files.length);
|
||||
for (const { file, fileContent } of files) {
|
||||
assert(host?.fileExists(file));
|
||||
assert.equal(host!.readFile(file), fileContent);
|
||||
@@ -55,7 +55,7 @@ ${file.fileContent}`;
|
||||
}
|
||||
it("with updateFileSystem request", () => {
|
||||
// TODO: probably some other watcher tests, not sure what
|
||||
const host = TestFSWithWatch.createVirtualServerHost([], { executingFilePath: "/a/tsc.js" });
|
||||
const host = VirtualFS.createVirtualServerHost([], { executingFilePath: "/a/tsc.js" });
|
||||
const session = createVirtualFilesystemSession(host, host);
|
||||
const files = [app, file1, file2, file3, config, lib];
|
||||
session.executeCommandSeq<protocol.UpdateFileSystemRequest>({
|
||||
@@ -72,7 +72,7 @@ ${file.fileContent}`;
|
||||
});
|
||||
const service = session.getProjectService(); // session -> service -> project
|
||||
const project = service.configuredProjects.get(config.file)!;
|
||||
const fakehost = (session as any).host as TestFSWithWatch.VirtualServerHost;
|
||||
const fakehost = (session as any).host as VirtualFS.VirtualServerHost;
|
||||
assert.isDefined(project);
|
||||
assert.equal(fakehost.fsWatches.size, 0);
|
||||
assert.equal(fakehost.fsWatchesRecursive.size, 2);
|
||||
|
||||
@@ -66,11 +66,11 @@ namespace ts.projectSystem {
|
||||
}
|
||||
|
||||
function verifyCalledOnEachEntry(callback: CalledMaps, expectedKeys: ESMap<string, number>) {
|
||||
TestFSWithWatch.checkMap<true | CalledWithFiveArgs>(callback, calledMaps[callback], expectedKeys);
|
||||
VirtualFS.checkMap<true | CalledWithFiveArgs>(callback, calledMaps[callback], expectedKeys);
|
||||
}
|
||||
|
||||
function verifyCalledOnEachEntryNTimes(callback: CalledMaps, expectedKeys: readonly string[], nTimes: number) {
|
||||
TestFSWithWatch.checkMap<true | CalledWithFiveArgs>(callback, calledMaps[callback], expectedKeys, nTimes);
|
||||
VirtualFS.checkMap<true | CalledWithFiveArgs>(callback, calledMaps[callback], expectedKeys, nTimes);
|
||||
}
|
||||
|
||||
function verifyNoHostCalls() {
|
||||
|
||||
@@ -3,17 +3,17 @@ namespace ts.projectSystem {
|
||||
export import protocol = server.protocol;
|
||||
export import CommandNames = server.CommandNames;
|
||||
|
||||
export import TestServerHost = TestFSWithWatch.TestServerHost;
|
||||
export type File = TestFSWithWatch.File;
|
||||
export type SymLink = TestFSWithWatch.SymLink;
|
||||
export type Folder = TestFSWithWatch.Folder;
|
||||
export import createServerHost = TestFSWithWatch.createServerHost;
|
||||
export import checkArray = TestFSWithWatch.checkArray;
|
||||
export import libFile = TestFSWithWatch.libFile;
|
||||
export import checkWatchedFiles = TestFSWithWatch.checkWatchedFiles;
|
||||
export import checkWatchedFilesDetailed = TestFSWithWatch.checkWatchedFilesDetailed;
|
||||
export import checkWatchedDirectories = TestFSWithWatch.checkWatchedDirectories;
|
||||
export import checkWatchedDirectoriesDetailed = TestFSWithWatch.checkWatchedDirectoriesDetailed;
|
||||
export import TestServerHost = VirtualFS.TestServerHost;
|
||||
export type File = VirtualFS.File;
|
||||
export type SymLink = VirtualFS.SymLink;
|
||||
export type Folder = VirtualFS.Folder;
|
||||
export import createServerHost = VirtualFS.createServerHost;
|
||||
export import checkArray = VirtualFS.checkArray;
|
||||
export import libFile = VirtualFS.libFile;
|
||||
export import checkWatchedFiles = VirtualFS.checkWatchedFiles;
|
||||
export import checkWatchedFilesDetailed = VirtualFS.checkWatchedFilesDetailed;
|
||||
export import checkWatchedDirectories = VirtualFS.checkWatchedDirectories;
|
||||
export import checkWatchedDirectoriesDetailed = VirtualFS.checkWatchedDirectoriesDetailed;
|
||||
|
||||
export import commonFile1 = tscWatch.commonFile1;
|
||||
export import commonFile2 = tscWatch.commonFile2;
|
||||
@@ -138,7 +138,7 @@ namespace ts.projectSystem {
|
||||
installTypingHost: server.ServerHost,
|
||||
readonly typesRegistry = new Map<string, MapLike<string>>(),
|
||||
log?: TI.Log) {
|
||||
super(installTypingHost, globalTypingsCacheLocation, TestFSWithWatch.safeList.path, customTypesMap.path, throttleLimit, log);
|
||||
super(installTypingHost, globalTypingsCacheLocation, VirtualFS.safeList.path, customTypesMap.path, throttleLimit, log);
|
||||
}
|
||||
|
||||
protected postExecActions: PostExecAction[] = [];
|
||||
@@ -414,7 +414,7 @@ namespace ts.projectSystem {
|
||||
}
|
||||
}
|
||||
|
||||
export function createVirtualFilesystemSession(host: server.ServerHost, fshost: TestFSWithWatch.VirtualServerHost | undefined, opts: Partial<TestSessionOptions> = {}) {
|
||||
export function createVirtualFilesystemSession(host: server.ServerHost, fshost: VirtualFS.VirtualServerHost | undefined, opts: Partial<TestSessionOptions> = {}) {
|
||||
if (opts.typingsInstaller === undefined) {
|
||||
opts.typingsInstaller = new TestTypingsInstaller("/a/data/", /*throttleLimit*/ 5, host);
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ ${appendDts}`
|
||||
describe("when dependency project is not open", () => {
|
||||
describe("Of usageTs", () => {
|
||||
it("with initial file open, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -146,7 +146,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with initial file open, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -182,7 +182,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -225,7 +225,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -268,7 +268,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -322,7 +322,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -376,7 +376,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -419,7 +419,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -462,7 +462,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -516,7 +516,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -573,7 +573,7 @@ ${appendDts}`
|
||||
|
||||
describe("Of dependencyTs in usage project", () => {
|
||||
it("with initial file open, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -604,7 +604,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with initial file open, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -635,7 +635,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -673,7 +673,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -711,7 +711,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with local change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -760,7 +760,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with local change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -809,7 +809,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -847,7 +847,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -885,7 +885,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -934,7 +934,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -988,7 +988,7 @@ ${appendDts}`
|
||||
describe("when the depedency file is open", () => {
|
||||
describe("Of usageTs", () => {
|
||||
it("with initial file open, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1024,7 +1024,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with initial file open, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1060,7 +1060,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1114,7 +1114,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1168,7 +1168,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1222,7 +1222,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1276,7 +1276,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1330,7 +1330,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1384,7 +1384,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1438,7 +1438,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1495,7 +1495,7 @@ ${appendDts}`
|
||||
|
||||
describe("Of dependencyTs in usage project", () => {
|
||||
it("with initial file open, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1526,7 +1526,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1575,7 +1575,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with local change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1624,7 +1624,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1673,7 +1673,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, noEmitOutput(), "Emit output");
|
||||
});
|
||||
it("with change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1725,7 +1725,7 @@ ${appendDts}`
|
||||
|
||||
describe("Of dependencyTs", () => {
|
||||
it("with initial file open, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1762,7 +1762,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with initial file open, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1798,7 +1798,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1853,7 +1853,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1907,7 +1907,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -1962,7 +1962,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with local change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -2016,7 +2016,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to dependency, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -2071,7 +2071,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to dependency, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -2125,7 +2125,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to usage, without specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -2180,7 +2180,7 @@ ${appendDts}`
|
||||
assert.deepEqual(actualEmitOutput, expectedEmitOutput(expectedFiles), "Emit output");
|
||||
});
|
||||
it("with change to usage, with specifying project file", () => {
|
||||
const host = TestFSWithWatch.changeToHostTrackingWrittenFiles(
|
||||
const host = VirtualFS.changeToHostTrackingWrittenFiles(
|
||||
createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile])
|
||||
);
|
||||
const session = createSession(host);
|
||||
@@ -2313,4 +2313,4 @@ ${appendDts}`
|
||||
assert.equal(host.readFile(sourceJs), expectedSiblingJs);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
namespace ts.projectSystem {
|
||||
export function createHostWithSolutionBuild(files: readonly TestFSWithWatch.FileOrFolderOrSymLink[], rootNames: readonly string[]) {
|
||||
export function createHostWithSolutionBuild(files: readonly VirtualFS.FileOrFolderOrSymLink[], rootNames: readonly string[]) {
|
||||
const host = createServerHost(files);
|
||||
// ts build should succeed
|
||||
tscWatch.ensureErrorFreeBuild(host, rootNames);
|
||||
@@ -10,8 +10,8 @@ namespace ts.projectSystem {
|
||||
describe("with container project", () => {
|
||||
function getProjectFiles(project: string): [File, File] {
|
||||
return [
|
||||
TestFSWithWatch.getTsBuildProjectFile(project, "tsconfig.json"),
|
||||
TestFSWithWatch.getTsBuildProjectFile(project, "index.ts"),
|
||||
VirtualFS.getTsBuildProjectFile(project, "tsconfig.json"),
|
||||
VirtualFS.getTsBuildProjectFile(project, "index.ts"),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace ts.projectSystem {
|
||||
const containerLib = getProjectFiles("container/lib");
|
||||
const containerExec = getProjectFiles("container/exec");
|
||||
const containerCompositeExec = getProjectFiles("container/compositeExec");
|
||||
const containerConfig = TestFSWithWatch.getTsBuildProjectFile(project, "tsconfig.json");
|
||||
const containerConfig = VirtualFS.getTsBuildProjectFile(project, "tsconfig.json");
|
||||
const files = [libFile, ...containerLib, ...containerExec, ...containerCompositeExec, containerConfig];
|
||||
|
||||
it("does not error on container only project", () => {
|
||||
@@ -29,7 +29,7 @@ namespace ts.projectSystem {
|
||||
const session = createSession(host, { logger: createLoggerWithInMemoryLogs() });
|
||||
const service = session.getProjectService();
|
||||
service.openExternalProjects([{
|
||||
projectFileName: TestFSWithWatch.getTsBuildProjectFilePath(project, project),
|
||||
projectFileName: VirtualFS.getTsBuildProjectFilePath(project, project),
|
||||
rootFiles: files.map(f => ({ fileName: f.path })),
|
||||
options: {}
|
||||
}]);
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
namespace ts.projectSystem {
|
||||
describe("unittests:: tsserver:: projects with references: invoking when references are already built", () => {
|
||||
it("on sample project", () => {
|
||||
const coreConfig = TestFSWithWatch.getTsBuildProjectFile("sample1", "core/tsconfig.json");
|
||||
const coreIndex = TestFSWithWatch.getTsBuildProjectFile("sample1", "core/index.ts");
|
||||
const coreAnotherModule = TestFSWithWatch.getTsBuildProjectFile("sample1", "core/anotherModule.ts");
|
||||
const coreSomeDecl = TestFSWithWatch.getTsBuildProjectFile("sample1", "core/some_decl.d.ts");
|
||||
const logicConfig = TestFSWithWatch.getTsBuildProjectFile("sample1", "logic/tsconfig.json");
|
||||
const logicIndex = TestFSWithWatch.getTsBuildProjectFile("sample1", "logic/index.ts");
|
||||
const testsConfig = TestFSWithWatch.getTsBuildProjectFile("sample1", "tests/tsconfig.json");
|
||||
const testsIndex = TestFSWithWatch.getTsBuildProjectFile("sample1", "tests/index.ts");
|
||||
const coreConfig = VirtualFS.getTsBuildProjectFile("sample1", "core/tsconfig.json");
|
||||
const coreIndex = VirtualFS.getTsBuildProjectFile("sample1", "core/index.ts");
|
||||
const coreAnotherModule = VirtualFS.getTsBuildProjectFile("sample1", "core/anotherModule.ts");
|
||||
const coreSomeDecl = VirtualFS.getTsBuildProjectFile("sample1", "core/some_decl.d.ts");
|
||||
const logicConfig = VirtualFS.getTsBuildProjectFile("sample1", "logic/tsconfig.json");
|
||||
const logicIndex = VirtualFS.getTsBuildProjectFile("sample1", "logic/index.ts");
|
||||
const testsConfig = VirtualFS.getTsBuildProjectFile("sample1", "tests/tsconfig.json");
|
||||
const testsIndex = VirtualFS.getTsBuildProjectFile("sample1", "tests/index.ts");
|
||||
const host = createServerHost([libFile, coreConfig, coreIndex, coreAnotherModule, coreSomeDecl, logicConfig, logicIndex, testsConfig, testsIndex]);
|
||||
const service = createProjectService(host);
|
||||
service.openClientFile(testsIndex.path);
|
||||
@@ -16,9 +16,9 @@ namespace ts.projectSystem {
|
||||
checkWatchedFilesDetailed(host, [coreConfig, coreIndex, coreAnotherModule, logicConfig, logicIndex, testsConfig, libFile].map(f => f.path.toLowerCase()), 1);
|
||||
checkWatchedDirectoriesDetailed(host, emptyArray, 1, /*recursive*/ false);
|
||||
checkWatchedDirectoriesDetailed(host, [
|
||||
TestFSWithWatch.getTsBuildProjectFilePath("sample1", "core"),
|
||||
TestFSWithWatch.getTsBuildProjectFilePath("sample1", "logic"),
|
||||
...getTypeRootsFromLocation(TestFSWithWatch.getTsBuildProjectFilePath("sample1", "tests"))
|
||||
VirtualFS.getTsBuildProjectFilePath("sample1", "core"),
|
||||
VirtualFS.getTsBuildProjectFilePath("sample1", "logic"),
|
||||
...getTypeRootsFromLocation(VirtualFS.getTsBuildProjectFilePath("sample1", "tests"))
|
||||
], 1, /*recursive*/ true);
|
||||
|
||||
// local edit in ts file
|
||||
@@ -525,4 +525,4 @@ export class A {}`
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ namespace ts.projectSystem {
|
||||
});
|
||||
});
|
||||
|
||||
function assertUsageError(files: readonly TestFSWithWatch.File[], openFile: TestFSWithWatch.File, diagnostic: DiagnosticMessage) {
|
||||
function assertUsageError(files: readonly VirtualFS.File[], openFile: VirtualFS.File, diagnostic: DiagnosticMessage) {
|
||||
const host = createServerHost(files);
|
||||
const session = createSession(host);
|
||||
openFilesForSession([openFile], session);
|
||||
|
||||
@@ -1169,13 +1169,13 @@ namespace ts.projectSystem {
|
||||
});
|
||||
|
||||
it("should redo resolution that resolved to '.js' file after typings are installed", () => {
|
||||
const file: TestFSWithWatch.File = {
|
||||
const file: VirtualFS.File = {
|
||||
path: `${tscWatch.projects}/a/b/app.js`,
|
||||
content: `
|
||||
import * as commander from "commander";`
|
||||
};
|
||||
const cachePath = `${tscWatch.projects}/a/cache`;
|
||||
const commanderJS: TestFSWithWatch.File = {
|
||||
const commanderJS: VirtualFS.File = {
|
||||
path: `${tscWatch.projects}/node_modules/commander/index.js`,
|
||||
content: "module.exports = 0",
|
||||
};
|
||||
@@ -1189,7 +1189,7 @@ namespace ts.projectSystem {
|
||||
}
|
||||
installWorker(_requestId: number, _args: string[], _cwd: string, cb: TI.RequestCompletedAction) {
|
||||
const installedTypings = typeNames.map(name => `@types/${name}`);
|
||||
const typingFiles = typeNames.map((name): TestFSWithWatch.File => ({ path: typePath(name), content: "" }));
|
||||
const typingFiles = typeNames.map((name): VirtualFS.File => ({ path: typePath(name), content: "" }));
|
||||
executeCommand(this, host, installedTypings, typingFiles, cb);
|
||||
}
|
||||
})();
|
||||
@@ -2031,14 +2031,14 @@ namespace ts.projectSystem {
|
||||
});
|
||||
|
||||
it("should handle node core modules", () => {
|
||||
const file: TestFSWithWatch.File = {
|
||||
const file: VirtualFS.File = {
|
||||
path: "/a/b/app.js",
|
||||
content: `// @ts-check
|
||||
|
||||
const net = require("net");
|
||||
const stream = require("stream");`
|
||||
};
|
||||
const nodeTyping: TestFSWithWatch.File = {
|
||||
const nodeTyping: VirtualFS.File = {
|
||||
path: `${globalTypingsCacheLocation}/node_modules/node/index.d.ts`,
|
||||
content: `
|
||||
declare module "net" {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
namespace ts.projectSystem {
|
||||
import Tsc_WatchDirectory = TestFSWithWatch.Tsc_WatchDirectory;
|
||||
import Tsc_WatchDirectory = VirtualFS.Tsc_WatchDirectory;
|
||||
describe("unittests:: tsserver:: watchEnvironment:: tsserverProjectSystem watchDirectories implementation", () => {
|
||||
function verifyCompletionListWithNewFileInSubFolder(tscWatchDirectory: Tsc_WatchDirectory) {
|
||||
const projectFolder = "/a/username/project";
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace ts.server {
|
||||
console.warn = (...args) => logger.msg(args.length === 1 ? args[0] : args.join(", "), Msg.Err);
|
||||
console.error = (...args) => logger.msg(args.length === 1 ? args[0] : args.join(", "), Msg.Err);
|
||||
|
||||
const fshost = vfs ? TestFSWithWatch.createVirtualServerHost([]) : sys as ServerHost;
|
||||
const fshost = vfs ? VirtualFS.createVirtualServerHost([]) : sys as ServerHost;
|
||||
startServer(
|
||||
{
|
||||
globalPlugins: findArgumentStringArray("--globalPlugins"),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* @internal */
|
||||
namespace ts.TestFSWithWatch {
|
||||
namespace ts.VirtualFS {
|
||||
export interface VirtualServerHostCreationParameters {
|
||||
useCaseSensitiveFileNames?: boolean;
|
||||
executingFilePath: string;
|
||||
|
||||
+13
-12
@@ -8333,24 +8333,21 @@ declare namespace ts.server.protocol {
|
||||
interface UpdateFileSystemRequestArgs {
|
||||
/** For now, only 'memfs', initially for exclusive in-memory operation, but it could be other in-memory names later */
|
||||
fileSystem: string;
|
||||
/** List of newly created or newly available files. */
|
||||
created: FileSystemRequestArgs[];
|
||||
/** List of newly created or updated files. */
|
||||
files: FileSystemRequestArgs[];
|
||||
/** Names of just-deleted files. */
|
||||
deleted: string[];
|
||||
/** List of updated files. */
|
||||
updated: FileSystemRequestArgs[];
|
||||
}
|
||||
interface FileSystemRequestArgs extends FileRequestArgs {
|
||||
interface FileSystemRequestArgs {
|
||||
/**
|
||||
* The file for the request (absolute pathname required).
|
||||
*/
|
||||
file: string;
|
||||
/**
|
||||
* Used to replace the content that would be on disk.
|
||||
* Then the known content will be used upon opening instead of the disk copy
|
||||
*/
|
||||
fileContent?: string;
|
||||
/**
|
||||
* Used to specify the script kind of the file explicitly. It could be one of the following:
|
||||
* "TS", "JS", "TSX", "JSX"
|
||||
*/
|
||||
scriptKindName?: ScriptKindName;
|
||||
fileContent: string;
|
||||
}
|
||||
/**
|
||||
* External projects have a typeAcquisition option so they need to be added separately to compiler options for inferred projects.
|
||||
@@ -10013,7 +10010,7 @@ declare namespace ts.server {
|
||||
private readonly cancellationToken;
|
||||
isNonTsProject(): boolean;
|
||||
isJsOnlyProject(): boolean;
|
||||
static resolveModule(moduleName: string, initialDir: string, host: ServerHost, log: (message: string) => void, logErrors?: (message: string) => void): {} | undefined;
|
||||
static resolveModule(moduleName: string, initialDir: string, host: ServerHost, fshost: ServerHost, log: (message: string) => void, logErrors?: (message: string) => void): {} | undefined;
|
||||
isKnownTypesPackageName(name: string): boolean;
|
||||
installPackage(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>;
|
||||
private get typingsCache();
|
||||
@@ -10327,6 +10324,7 @@ declare namespace ts.server {
|
||||
}
|
||||
export interface ProjectServiceOptions {
|
||||
host: ServerHost;
|
||||
fshost: ServerHost | undefined;
|
||||
logger: Logger;
|
||||
cancellationToken: HostCancellationToken;
|
||||
useSingleInferredProject: boolean;
|
||||
@@ -10398,6 +10396,7 @@ declare namespace ts.server {
|
||||
readonly currentDirectory: NormalizedPath;
|
||||
readonly toCanonicalFileName: (f: string) => string;
|
||||
readonly host: ServerHost;
|
||||
readonly fshost: ServerHost | undefined;
|
||||
readonly logger: Logger;
|
||||
readonly cancellationToken: HostCancellationToken;
|
||||
readonly useSingleInferredProject: boolean;
|
||||
@@ -10600,6 +10599,7 @@ declare namespace ts.server {
|
||||
}
|
||||
interface SessionOptions {
|
||||
host: ServerHost;
|
||||
fshost: ServerHost | undefined;
|
||||
cancellationToken: ServerCancellationToken;
|
||||
useSingleInferredProject: boolean;
|
||||
useInferredProjectPerProjectRoot: boolean;
|
||||
@@ -10641,6 +10641,7 @@ declare namespace ts.server {
|
||||
private suppressDiagnosticEvents?;
|
||||
private eventHandler;
|
||||
private readonly noGetErrOnBackgroundUpdate?;
|
||||
private fshost;
|
||||
constructor(opts: SessionOptions);
|
||||
private sendRequestCompletedEvent;
|
||||
private addPerformanceData;
|
||||
|
||||
Reference in New Issue
Block a user