Skip to content

Commit 145b106

Browse files
authored
Tests refactor for easy comparison between outFile and multiFile scenario (#58761)
1 parent 64fa3c7 commit 145b106

File tree

159 files changed

+1748
-1086
lines changed

Some content is hidden

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

159 files changed

+1748
-1086
lines changed

src/testRunner/unittests/helpers/declarationEmit.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export function forEachDeclarationEmitWithErrorsScenario(
7878
for (const outFile of [false, true]) {
7979
for (const incremental of [undefined, true] as const) {
8080
action(
81-
scenario => `${scenario}${outFile ? " outFile" : ""}${incremental ? " with incremental" : ""}`,
81+
scenario => `${outFile ? "outFile" : "multiFile"}/${scenario}${incremental ? " with incremental" : ""}`,
8282
() =>
8383
(outFile ? getFsForDeclarationEmitWithErrorsWithOutFile :
8484
getFsForDeclarationEmitWithErrors)(

src/testRunner/unittests/helpers/noEmitOnError.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export function forEachNoEmitOnErrorScenario<T>(
4646
for (const declaration of [undefined, true] as const) {
4747
for (const incremental of [undefined, true] as const) {
4848
action(
49-
scenario => `${scenario}${outFile ? " outFile" : ""}${declaration ? " with declaration" : ""}${incremental ? " with incremental" : ""}`,
49+
scenario => `${outFile ? "outFile" : "multiFile"}/${scenario}${declaration ? " with declaration" : ""}${incremental ? " with incremental" : ""}`,
5050
() =>
5151
loadFs(
5252
getFsContentsForNoEmitOnError(outFile, declaration, incremental),

src/testRunner/unittests/tsbuild/commandLine.ts

Lines changed: 127 additions & 233 deletions
Large diffs are not rendered by default.

src/testRunner/unittests/tsbuild/configFileErrors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe("unittests:: tsbuild:: configFileErrors:: reports syntax errors in conf
4646
function verify(outFile?: object) {
4747
verifyTsc({
4848
scenario: "configFileErrors",
49-
subScenario: `reports syntax errors in config file${outFile ? " with outFile" : ""}`,
49+
subScenario: `${outFile ? "outFile" : "multiFile"}/reports syntax errors in config file`,
5050
fs: () =>
5151
loadProjectFromFiles({
5252
"/src/a.ts": "export function foo() { }",

src/testRunner/unittests/tsbuild/fileDelete.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ describe("unittests:: tsbuild:: fileDelete::", () => {
3838

3939
verifyTsc({
4040
scenario: "fileDelete",
41-
subScenario: `detects deleted file`,
41+
subScenario: `multiFile/detects deleted file`,
4242
commandLineArgs: ["--b", "/src/main/tsconfig.json", "-v", "--traceResolution", "--explainFiles"],
4343
fs: () => fs({ composite: true }, { composite: true }),
4444
edits: [{
@@ -57,7 +57,7 @@ describe("unittests:: tsbuild:: fileDelete::", () => {
5757

5858
verifyTsc({
5959
scenario: "fileDelete",
60-
subScenario: `detects deleted file with outFile`,
60+
subScenario: `outFile/detects deleted file`,
6161
commandLineArgs: ["--b", "/src/main/tsconfig.json", "-v", "--traceResolution", "--explainFiles"],
6262
fs: () => fs({ composite: true, outFile: "../childResult.js", module: ts.ModuleKind.AMD }, { composite: true, outFile: "../mainResult.js", module: ts.ModuleKind.AMD }),
6363
edits: [{
@@ -68,7 +68,7 @@ describe("unittests:: tsbuild:: fileDelete::", () => {
6868

6969
verifyTsc({
7070
scenario: "fileDelete",
71-
subScenario: `deleted file without composite`,
71+
subScenario: `multiFile/deleted file without composite`,
7272
commandLineArgs: ["--b", "/src/child/tsconfig.json", "-v", "--traceResolution", "--explainFiles"],
7373
fs: () => fs({}),
7474
edits: [{
@@ -82,7 +82,7 @@ describe("unittests:: tsbuild:: fileDelete::", () => {
8282

8383
verifyTsc({
8484
scenario: "fileDelete",
85-
subScenario: `deleted file with outFile without composite`,
85+
subScenario: `outFile/deleted file without composite`,
8686
commandLineArgs: ["--b", "/src/child/tsconfig.json", "-v", "--traceResolution", "--explainFiles"],
8787
fs: () => fs({ outFile: "../childResult.js", module: ts.ModuleKind.AMD }),
8888
edits: [{

src/testRunner/unittests/tsbuild/noEmit.ts

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,35 @@ import {
66
import { loadProjectFromFiles } from "../helpers/vfs.js";
77

88
describe("unittests:: tsbuild:: noEmit", () => {
9-
function verifyNoEmitWorker(subScenario: string, aTsContent: string, commandLineArgs: readonly string[], options?: object) {
10-
verifyTsc({
11-
scenario: "noEmit",
12-
subScenario,
13-
fs: () =>
14-
loadProjectFromFiles({
15-
"/src/a.ts": aTsContent,
16-
"/src/tsconfig.json": jsonToReadableText({
17-
compilerOptions: { ...options, noEmit: true },
9+
function verifyNoEmitWorker(subScenario: string, aTsContent: string, commandLineArgs: readonly string[]) {
10+
[{}, { outFile: "../outFile.js" }].forEach(options => {
11+
verifyTsc({
12+
scenario: "noEmit",
13+
subScenario: `${options?.outFile ? "outFile" : "multiFile"}/${subScenario}`,
14+
fs: () =>
15+
loadProjectFromFiles({
16+
"/src/a.ts": aTsContent,
17+
"/src/tsconfig.json": jsonToReadableText({
18+
compilerOptions: { ...options, noEmit: true },
19+
}),
1820
}),
19-
}),
20-
commandLineArgs,
21-
edits: [
22-
noChangeRun,
23-
{
24-
caption: "Fix error",
25-
edit: fs => fs.writeFileSync("/src/a.ts", `const a = "hello"`),
26-
},
27-
noChangeRun,
28-
],
29-
baselinePrograms: true,
21+
commandLineArgs,
22+
edits: [
23+
noChangeRun,
24+
{
25+
caption: "Fix error",
26+
edit: fs => fs.writeFileSync("/src/a.ts", `const a = "hello"`),
27+
},
28+
noChangeRun,
29+
],
30+
baselinePrograms: true,
31+
});
3032
});
3133
}
3234

3335
function verifyNoEmit(subScenario: string, aTsContent: string) {
3436
verifyNoEmitWorker(subScenario, aTsContent, ["--b", "/src/tsconfig.json", "-v"]);
3537
verifyNoEmitWorker(`${subScenario} with incremental`, aTsContent, ["--b", "/src/tsconfig.json", "-v", "--incremental"]);
36-
verifyNoEmitWorker(`${subScenario} with outFile`, aTsContent, ["--b", "/src/tsconfig.json", "-v"], { outFile: "../outFile.js" });
37-
verifyNoEmitWorker(`${subScenario} with outFile with incremental`, aTsContent, ["--b", "/src/tsconfig.json", "-v", "--incremental"], { outFile: "../outFile.js" });
3838
}
3939

4040
verifyNoEmit("syntax errors", `const a = "hello`);

src/testRunner/unittests/tsbuildWatch/configFileErrors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ describe("unittests:: tsbuildWatch:: watchMode:: configFileErrors:: reports synt
1010
function verify(outFile?: object) {
1111
verifyTscWatch({
1212
scenario: "configFileErrors",
13-
subScenario: `reports syntax errors in config file${outFile ? " with outFile" : ""}`,
13+
subScenario: `${outFile ? "outFile" : "multiFile"}/reports syntax errors in config file`,
1414
sys: () =>
1515
createWatchedSystem(
1616
[

src/testRunner/unittests/tsbuildWatch/noEmit.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ describe("unittests:: tsbuildWatch:: watchMode:: with noEmit", () => {
1010
function verify(outFile?: object) {
1111
verifyTscWatch({
1212
scenario: "noEmit",
13-
subScenario: `does not go in loop when watching when no files are emitted${outFile ? " with outFile" : ""}`,
13+
subScenario: `${outFile ? "outFile" : "multiFile"}/does not go in loop when watching when no files are emitted`,
1414
commandLineArgs: ["-b", "-w", "-verbose"],
1515
sys: () =>
1616
createWatchedSystem({

src/testRunner/unittests/tsc/incremental.ts

Lines changed: 59 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -497,96 +497,65 @@ console.log(a);`,
497497
},
498498
};
499499
}
500-
verifyTsc({
501-
scenario: "incremental",
502-
subScenario: "different options",
503-
fs: () => fs({ composite: true }),
504-
commandLineArgs: ["--p", "/src/project"],
505-
edits: [
506-
withOptionChange("with sourceMap", "--sourceMap"),
507-
noChangeWithSubscenario("should re-emit only js so they dont contain sourcemap"),
508-
withOptionChangeAndDiscrepancyExplanation("with declaration should not emit anything", "--declaration"),
509-
noChangeRun,
510-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
511-
noChangeWithSubscenario("should re-emit only dts so they dont contain sourcemap"),
512-
withOptionChangeAndDiscrepancyExplanation("with emitDeclarationOnly should not emit anything", "--emitDeclarationOnly"),
513-
noChangeRun,
514-
localChange(),
515-
withOptionChangeAndDiscrepancyExplanation("with declaration should not emit anything", "--declaration"),
516-
withOptionChange("with inlineSourceMap", "--inlineSourceMap"),
517-
withOptionChange("with sourceMap", "--sourceMap"),
518-
enableDeclarationMap(),
519-
withOptionChange("with sourceMap should not emit d.ts", "--sourceMap"),
520-
],
521-
baselinePrograms: true,
522-
});
523-
verifyTsc({
524-
scenario: "incremental",
525-
subScenario: "different options with outFile",
526-
fs: () => fs({ composite: true, outFile: "../outFile.js", module: ts.ModuleKind.AMD }),
527-
commandLineArgs: ["--p", "/src/project"],
528-
edits: [
529-
withOptionChange("with sourceMap", "--sourceMap"),
530-
noChangeWithSubscenario("should re-emit only js so they dont contain sourcemap"),
531-
withOptionChangeAndDiscrepancyExplanation("with declaration should not emit anything", "--declaration"),
532-
noChangeRun,
533-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
534-
noChangeWithSubscenario("should re-emit only dts so they dont contain sourcemap"),
535-
withEmitDeclarationOnlyChangeAndDiscrepancyExplanation("with emitDeclarationOnly should not emit anything"),
536-
noChangeRun,
537-
localChange(),
538-
withOptionChangeAndDiscrepancyExplanation("with declaration should not emit anything", "--declaration"),
539-
withOptionChange("with inlineSourceMap", "--inlineSourceMap"),
540-
withOptionChange("with sourceMap", "--sourceMap"),
541-
enableDeclarationMap(),
542-
withOptionChange("with sourceMap should not emit d.ts", "--sourceMap"),
543-
],
544-
baselinePrograms: true,
545-
});
546-
verifyTsc({
547-
scenario: "incremental",
548-
subScenario: "different options with incremental",
549-
fs: () => fs({ incremental: true }),
550-
commandLineArgs: ["--p", "/src/project"],
551-
edits: [
552-
withOptionChange("with sourceMap", "--sourceMap"),
553-
withOptionChange("should re-emit only js so they dont contain sourcemap"),
554-
withOptionChange("with declaration, emit Dts and should not emit js", "--declaration"),
555-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
556-
nochangeWithIncrementalDeclarationFromBeforeExplaination(),
557-
localChange(),
558-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
559-
nochangeWithIncrementalDeclarationFromBeforeExplaination(),
560-
withOptionChange("with inlineSourceMap", "--inlineSourceMap"),
561-
withOptionChange("with sourceMap", "--sourceMap"),
562-
noChangeWithSubscenario("emit js files"),
563-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
564-
withOptionChange("with declaration and declarationMap, should not re-emit", "--declaration", "--declarationMap"),
565-
],
566-
baselinePrograms: true,
567-
});
568-
verifyTsc({
569-
scenario: "incremental",
570-
subScenario: "different options with incremental with outFile",
571-
fs: () => fs({ incremental: true, outFile: "../outFile.js", module: ts.ModuleKind.AMD }),
572-
commandLineArgs: ["--p", "/src/project"],
573-
edits: [
574-
withOptionChange("with sourceMap", "--sourceMap"),
575-
noChangeWithSubscenario("should re-emit only js so they dont contain sourcemap"),
576-
withOptionChange("with declaration, emit Dts and should not emit js", "--declaration"),
577-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
578-
nochangeWithIncrementalOutDeclarationFromBeforeExplaination(),
579-
localChange(),
580-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
581-
nochangeWithIncrementalOutDeclarationFromBeforeExplaination(),
582-
withOptionChange("with inlineSourceMap", "--inlineSourceMap"),
583-
withOptionChange("with sourceMap", "--sourceMap"),
584-
noChangeWithSubscenario("emit js files"),
585-
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
586-
withOptionChange("with declaration and declarationMap, should not re-emit", "--declaration", "--declarationMap"),
587-
],
588-
baselinePrograms: true,
589-
});
500+
function verify(options: ts.CompilerOptions) {
501+
function scenarioName(text: string) {
502+
return `${options.outFile ? "outFile" : "multiFile"}/${text}`;
503+
}
504+
verifyTsc({
505+
scenario: "incremental",
506+
subScenario: scenarioName("different options"),
507+
fs: () => fs({ composite: true, ...options }),
508+
commandLineArgs: ["--p", "/src/project"],
509+
edits: [
510+
withOptionChange("with sourceMap", "--sourceMap"),
511+
noChangeWithSubscenario("should re-emit only js so they dont contain sourcemap"),
512+
withOptionChangeAndDiscrepancyExplanation("with declaration should not emit anything", "--declaration"),
513+
noChangeRun,
514+
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
515+
noChangeWithSubscenario("should re-emit only dts so they dont contain sourcemap"),
516+
!options.outFile ?
517+
withOptionChangeAndDiscrepancyExplanation("with emitDeclarationOnly should not emit anything", "--emitDeclarationOnly") :
518+
withEmitDeclarationOnlyChangeAndDiscrepancyExplanation("with emitDeclarationOnly should not emit anything"),
519+
noChangeRun,
520+
localChange(),
521+
withOptionChangeAndDiscrepancyExplanation("with declaration should not emit anything", "--declaration"),
522+
withOptionChange("with inlineSourceMap", "--inlineSourceMap"),
523+
withOptionChange("with sourceMap", "--sourceMap"),
524+
enableDeclarationMap(),
525+
withOptionChange("with sourceMap should not emit d.ts", "--sourceMap"),
526+
],
527+
baselinePrograms: true,
528+
});
529+
verifyTsc({
530+
scenario: "incremental",
531+
subScenario: scenarioName("different options with incremental"),
532+
fs: () => fs({ incremental: true, ...options }),
533+
commandLineArgs: ["--p", "/src/project"],
534+
edits: [
535+
withOptionChange("with sourceMap", "--sourceMap"),
536+
noChangeWithSubscenario("should re-emit only js so they dont contain sourcemap"),
537+
withOptionChange("with declaration, emit Dts and should not emit js", "--declaration"),
538+
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
539+
!options.outFile ?
540+
nochangeWithIncrementalDeclarationFromBeforeExplaination() :
541+
nochangeWithIncrementalOutDeclarationFromBeforeExplaination(),
542+
localChange(),
543+
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
544+
!options.outFile ?
545+
nochangeWithIncrementalDeclarationFromBeforeExplaination() :
546+
nochangeWithIncrementalOutDeclarationFromBeforeExplaination(),
547+
withOptionChange("with inlineSourceMap", "--inlineSourceMap"),
548+
withOptionChange("with sourceMap", "--sourceMap"),
549+
noChangeWithSubscenario("emit js files"),
550+
withOptionChange("with declaration and declarationMap", "--declaration", "--declarationMap"),
551+
withOptionChange("with declaration and declarationMap, should not re-emit", "--declaration", "--declarationMap"),
552+
],
553+
baselinePrograms: true,
554+
});
555+
}
556+
557+
verify({});
558+
verify({ outFile: "../outFile.js", module: ts.ModuleKind.AMD });
590559
});
591560

592561
verifyTsc({

0 commit comments

Comments
 (0)