Skip to content

Commit 8b87de1

Browse files
authored
Baseline for watches to only add watch state if there is change and include typing installer baselines into tsserver baselines (microsoft#52901)
1 parent 4c7e327 commit 8b87de1

File tree

914 files changed

+45411
-186256
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

914 files changed

+45411
-186256
lines changed

src/testRunner/unittests/tscWatch/helpers.ts

+3
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ export function applyEdit(sys: BaselineBase["sys"], baseline: BaselineBase["base
173173
edit(sys);
174174
baseline.push("Input::");
175175
sys.diff(baseline, oldSnap);
176+
sys.serializeWatches(baseline);
176177
return sys.snap();
177178
}
178179

@@ -276,13 +277,15 @@ export function solutionBuildWithBaseline(sys: TestServerHost, solutionRoots: re
276277
const originalReadFile = sys.readFile;
277278
const originalWrite = sys.write;
278279
const originalWriteFile = sys.writeFile;
280+
ts.Debug.assert(sys.writtenFiles === undefined);
279281
const solutionBuilder = createSolutionBuilder(changeToHostTrackingWrittenFiles(
280282
patchHostForBuildInfoReadWrite(sys)
281283
), solutionRoots, originalRead);
282284
solutionBuilder.build();
283285
sys.readFile = originalReadFile;
284286
sys.write = originalWrite;
285287
sys.writeFile = originalWriteFile;
288+
sys.writtenFiles = undefined;
286289
return sys;
287290
}
288291

src/testRunner/unittests/tsserver/compileOnSave.ts

+17-37
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,9 @@ import {
1212
openFilesForSession,
1313
protocolTextSpanFromSubstring,
1414
TestSession,
15-
TestTypingsInstaller,
1615
toExternalFiles,
1716
} from "./helpers";
1817

19-
function createTestTypingsInstaller(host: ts.server.ServerHost) {
20-
return new TestTypingsInstaller("/a/data/", /*throttleLimit*/5, host);
21-
}
22-
2318
describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
2419
describe("for configured projects", () => {
2520
function files() {
@@ -60,8 +55,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
6055
it("should contains only itself if a module file's shape didn't change, and all files referencing it if its shape changed", () => {
6156
const { moduleFile1, file1Consumer1, file1Consumer2, moduleFile2, globalFile3, configFile } = files();
6257
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, globalFile3, moduleFile2, configFile, libFile]);
63-
const typingsInstaller = createTestTypingsInstaller(host);
64-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
58+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
6559

6660
openFilesForSession([moduleFile1, file1Consumer1], session);
6761

@@ -108,8 +102,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
108102
it("should be up-to-date with the reference map changes", () => {
109103
const { moduleFile1, file1Consumer1, file1Consumer2, moduleFile2, globalFile3, configFile } = files();
110104
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, globalFile3, moduleFile2, configFile, libFile]);
111-
const typingsInstaller = createTestTypingsInstaller(host);
112-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
105+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
113106

114107
openFilesForSession([moduleFile1, file1Consumer1], session);
115108

@@ -182,8 +175,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
182175
it("should be up-to-date with changes made in non-open files", () => {
183176
const { moduleFile1, file1Consumer1, file1Consumer2, moduleFile2, globalFile3, configFile } = files();
184177
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, globalFile3, moduleFile2, configFile, libFile]);
185-
const typingsInstaller = createTestTypingsInstaller(host);
186-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
178+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
187179

188180
openFilesForSession([moduleFile1], session);
189181

@@ -216,8 +208,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
216208
it("should be up-to-date with deleted files", () => {
217209
const { moduleFile1, file1Consumer1, file1Consumer2, moduleFile2, globalFile3, configFile } = files();
218210
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, globalFile3, moduleFile2, configFile, libFile]);
219-
const typingsInstaller = createTestTypingsInstaller(host);
220-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
211+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
221212

222213
openFilesForSession([moduleFile1], session);
223214
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
@@ -248,8 +239,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
248239
it("should be up-to-date with newly created files", () => {
249240
const { moduleFile1, file1Consumer1, file1Consumer2, moduleFile2, globalFile3, configFile } = files();
250241
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, globalFile3, moduleFile2, configFile, libFile]);
251-
const typingsInstaller = createTestTypingsInstaller(host);
252-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
242+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
253243

254244
openFilesForSession([moduleFile1], session);
255245
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
@@ -301,8 +291,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
301291
};
302292

303293
const host = createServerHost([moduleFile1, file1Consumer1, configFile, libFile]);
304-
const typingsInstaller = createTestTypingsInstaller(host);
305-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
294+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
306295

307296
openFilesForSession([moduleFile1, file1Consumer1], session);
308297
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
@@ -349,8 +338,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
349338
it("should return all files if a global file changed shape", () => {
350339
const { moduleFile1, file1Consumer1, file1Consumer2, moduleFile2, globalFile3, configFile } = files();
351340
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, globalFile3, moduleFile2, configFile, libFile]);
352-
const typingsInstaller = createTestTypingsInstaller(host);
353-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
341+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
354342

355343
openFilesForSession([globalFile3], session);
356344

@@ -381,8 +369,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
381369
};
382370

383371
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, configFile, libFile]);
384-
const typingsInstaller = createTestTypingsInstaller(host);
385-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
372+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
386373
openFilesForSession([moduleFile1], session);
387374
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
388375
command: ts.server.protocol.CommandTypes.CompileOnSaveAffectedFileList,
@@ -404,8 +391,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
404391
};
405392

406393
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, configFile, libFile]);
407-
const typingsInstaller = createTestTypingsInstaller(host);
408-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
394+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
409395
openFilesForSession([moduleFile1], session);
410396
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
411397
command: ts.server.protocol.CommandTypes.CompileOnSaveAffectedFileList,
@@ -431,8 +417,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
431417
};
432418

433419
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer2, configFile2, configFile, libFile]);
434-
const typingsInstaller = createTestTypingsInstaller(host);
435-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
420+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
436421

437422
openFilesForSession([moduleFile1, file1Consumer1], session);
438423
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
@@ -455,8 +440,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
455440
};
456441

457442
const host = createServerHost([moduleFile1, file1Consumer1, configFile, libFile]);
458-
const typingsInstaller = createTestTypingsInstaller(host);
459-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
443+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
460444
openFilesForSession([moduleFile1], session);
461445

462446
session.executeCommandSeq<ts.server.protocol.ChangeRequest>({
@@ -491,8 +475,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
491475
};
492476

493477
const host = createServerHost([moduleFile1, file1Consumer1, configFile, libFile]);
494-
const typingsInstaller = createTestTypingsInstaller(host);
495-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
478+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
496479
openFilesForSession([moduleFile1], session);
497480

498481
session.executeCommandSeq<ts.server.protocol.ChangeRequest>({
@@ -520,8 +503,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
520503
content: `import {y} from "./file1Consumer1";`
521504
};
522505
const host = createServerHost([moduleFile1, file1Consumer1, file1Consumer1Consumer1, globalFile3, configFile, libFile]);
523-
const typingsInstaller = createTestTypingsInstaller(host);
524-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
506+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
525507

526508
openFilesForSession([moduleFile1, file1Consumer1], session);
527509
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
@@ -573,8 +555,7 @@ describe("unittests:: tsserver:: compileOnSave:: affected list", () => {
573555
export var t2 = 10;`
574556
};
575557
const host = createServerHost([file1, file2, configFile]);
576-
const typingsInstaller = createTestTypingsInstaller(host);
577-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
558+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
578559

579560
openFilesForSession([file1, file2], session);
580561
session.executeCommandSeq<ts.server.protocol.CompileOnSaveAffectedFileListRequest>({
@@ -791,8 +772,7 @@ describe("unittests:: tsserver:: compileOnSave:: EmitFile test", () => {
791772
content: `{}`
792773
};
793774
const host = createServerHost([file1, file2, configFile, libFile], { newLine: "\r\n" });
794-
const typingsInstaller = createTestTypingsInstaller(host);
795-
const session = createSession(host, { typingsInstaller, logger: createLoggerWithInMemoryLogs(host) });
775+
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
796776

797777
openFilesForSession([file1, file2], session);
798778
session.executeCommandSeq<ts.server.protocol.CompileOnSaveEmitFileRequest>({
@@ -1043,8 +1023,8 @@ describe("unittests:: tsserver:: compileOnSave:: CompileOnSaveAffectedFileListRe
10431023
}
10441024

10451025
function logDirtyOfProjects(session: TestSession) {
1046-
session.logger.logs.push(`Project1 is dirty: ${session.getProjectService().configuredProjects.get(`/user/username/projects/myproject/app1/tsconfig.json`)!.dirty}`);
1047-
session.logger.logs.push(`Project2 is dirty: ${session.getProjectService().configuredProjects.get(`/user/username/projects/myproject/app2/tsconfig.json`)!.dirty}`);
1026+
session.logger.log(`Project1 is dirty: ${session.getProjectService().configuredProjects.get(`/user/username/projects/myproject/app1/tsconfig.json`)!.dirty}`);
1027+
session.logger.log(`Project2 is dirty: ${session.getProjectService().configuredProjects.get(`/user/username/projects/myproject/app2/tsconfig.json`)!.dirty}`);
10481028
}
10491029

10501030
function verify(subScenario: string, commandArgs: ts.server.protocol.FileRequestArgs) {

src/testRunner/unittests/tsserver/completions.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,10 @@ export interface BrowserRouterProps {
176176
];
177177

178178
const host = createServerHost(files, { windowsStyleRoot: "c:/" });
179+
const logger = createLoggerWithInMemoryLogs(host);
179180
const session = createSession(host, {
180-
typingsInstaller: new TestTypingsInstaller(globalCacheLocation, /*throttleLimit*/ 5, host),
181-
logger: createLoggerWithInMemoryLogs(host),
181+
typingsInstaller: new TestTypingsInstaller(globalCacheLocation, /*throttleLimit*/ 5, host, logger),
182+
logger,
182183
});
183184
openFilesForSession([appFile], session);
184185
session.executeCommandSeq<ts.server.protocol.CompletionsRequest>({

src/testRunner/unittests/tsserver/declarationFileMaps.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function checkDeclarationFiles(file: File, session: TestSession): void {
1818
const project = ts.Debug.checkDefined(session.getProjectService().getDefaultProjectForFile(file.path as ts.server.NormalizedPath, /*ensureProject*/ false));
1919
const program = project.getCurrentProgram()!;
2020
const output = ts.getFileEmitOutput(program, ts.Debug.checkDefined(program.getSourceFile(file.path)), /*emitOnlyDtsFiles*/ true);
21-
session.logger.logs.push(`ts.getFileEmitOutput: ${file.path}: ${JSON.stringify(output, undefined, " ")}`);
21+
session.logger.log(`ts.getFileEmitOutput: ${file.path}: ${JSON.stringify(output, undefined, " ")}`);
2222
closeFilesForSession([file], session);
2323
}
2424

0 commit comments

Comments
 (0)