From ab642fe2ec4cdd8e174cc310545152b4767437bb Mon Sep 17 00:00:00 2001 From: Alan Pierce Date: Thu, 21 Dec 2023 17:16:12 -0800 Subject: [PATCH] Add test for CLI tsconfig support (#823) This helps confirm that the code change from #822 is safe, which it seems to be. Previously, this code path was untested, but now that there are CLI integration tests, it's not so bad to write a new one for this case. --- integration-test/integration-tests.ts | 10 +++++++--- .../respects-tsconfig/dist-expected/src/lib.js | 0 .../respects-tsconfig/dist-expected/src/main.js | 0 .../cli-cases/respects-tsconfig/src/lib-test.ts | 0 .../test-cases/cli-cases/respects-tsconfig/src/lib.ts | 0 .../test-cases/cli-cases/respects-tsconfig/src/main.ts | 0 .../test-cases/cli-cases/respects-tsconfig/test.json | 4 ++++ .../cli-cases/respects-tsconfig/tsconfig.json | 6 ++++++ 8 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 integration-test/test-cases/cli-cases/respects-tsconfig/dist-expected/src/lib.js create mode 100644 integration-test/test-cases/cli-cases/respects-tsconfig/dist-expected/src/main.js create mode 100644 integration-test/test-cases/cli-cases/respects-tsconfig/src/lib-test.ts create mode 100644 integration-test/test-cases/cli-cases/respects-tsconfig/src/lib.ts create mode 100644 integration-test/test-cases/cli-cases/respects-tsconfig/src/main.ts create mode 100644 integration-test/test-cases/cli-cases/respects-tsconfig/test.json create mode 100644 integration-test/test-cases/cli-cases/respects-tsconfig/tsconfig.json diff --git a/integration-test/integration-tests.ts b/integration-test/integration-tests.ts index fbc893a5..5a58b27d 100644 --- a/integration-test/integration-tests.ts +++ b/integration-test/integration-tests.ts @@ -127,9 +127,13 @@ describe("integration tests", () => { process.chdir(testDir); const testConfig = await readJSONFileContents("./test.json"); await rm("./dist-actual", {recursive: true, force: true}); - await execPromise( - `${__dirname}/../bin/sucrase ./src --out-dir ./dist-actual ${testConfig.cliOptions}`, - ); + if (testConfig.disableAutomaticInputOutputDirs) { + await execPromise(`${__dirname}/../bin/sucrase ${testConfig.cliOptions}`); + } else { + await execPromise( + `${__dirname}/../bin/sucrase ./src --out-dir ./dist-actual ${testConfig.cliOptions}`, + ); + } await assertDirectoriesEqual(resolve("./dist-actual"), resolve("./dist-expected")); }); } diff --git a/integration-test/test-cases/cli-cases/respects-tsconfig/dist-expected/src/lib.js b/integration-test/test-cases/cli-cases/respects-tsconfig/dist-expected/src/lib.js new file mode 100644 index 00000000..e69de29b diff --git a/integration-test/test-cases/cli-cases/respects-tsconfig/dist-expected/src/main.js b/integration-test/test-cases/cli-cases/respects-tsconfig/dist-expected/src/main.js new file mode 100644 index 00000000..e69de29b diff --git a/integration-test/test-cases/cli-cases/respects-tsconfig/src/lib-test.ts b/integration-test/test-cases/cli-cases/respects-tsconfig/src/lib-test.ts new file mode 100644 index 00000000..e69de29b diff --git a/integration-test/test-cases/cli-cases/respects-tsconfig/src/lib.ts b/integration-test/test-cases/cli-cases/respects-tsconfig/src/lib.ts new file mode 100644 index 00000000..e69de29b diff --git a/integration-test/test-cases/cli-cases/respects-tsconfig/src/main.ts b/integration-test/test-cases/cli-cases/respects-tsconfig/src/main.ts new file mode 100644 index 00000000..e69de29b diff --git a/integration-test/test-cases/cli-cases/respects-tsconfig/test.json b/integration-test/test-cases/cli-cases/respects-tsconfig/test.json new file mode 100644 index 00000000..df31ab81 --- /dev/null +++ b/integration-test/test-cases/cli-cases/respects-tsconfig/test.json @@ -0,0 +1,4 @@ +{ + "cliOptions": "--project .", + "disableAutomaticInputOutputDirs": true +} diff --git a/integration-test/test-cases/cli-cases/respects-tsconfig/tsconfig.json b/integration-test/test-cases/cli-cases/respects-tsconfig/tsconfig.json new file mode 100644 index 00000000..8ff45c73 --- /dev/null +++ b/integration-test/test-cases/cli-cases/respects-tsconfig/tsconfig.json @@ -0,0 +1,6 @@ +{ + "include": ["src/*[!-test].ts"], + "compilerOptions": { + "outDir": "dist-actual" + } +}