diff --git a/js/js.tests/build.gradle.kts b/js/js.tests/build.gradle.kts index 050f4b6fc93..47b1ce364b8 100644 --- a/js/js.tests/build.gradle.kts +++ b/js/js.tests/build.gradle.kts @@ -109,8 +109,10 @@ val testDataDir = project(":js:js.translator").projectDir.resolve("testData") val typescriptTestsDir = testDataDir.resolve("typescript-export") val installTsDependencies = task("installTsDependencies") { + val packageLockFile = testDataDir.resolve("package-lock.json") inputs.file(testDataDir.resolve("package.json")) - outputs.file(testDataDir.resolve("package-lock.json")) + outputs.file(packageLockFile) + outputs.upToDateWhen { packageLockFile.exists() } workingDir.set(testDataDir) args.set(listOf("install")) @@ -172,17 +174,26 @@ fun generateJsExportOnFileTestFor(dir: String): Task = task("generate-js-e } fun generateTypeScriptTestFor(dir: String): Task = task("generate-ts-for-$dir") { - val baseDir = fileTree(typescriptTestsDir.resolve(dir)) + val baseDir = typescriptTestsDir.resolve(dir) + val mainTsFile = fileTree(baseDir).files.find { it.name.endsWith("__main.ts") } ?: return@task + val mainJsFile = baseDir.resolve("${mainTsFile.nameWithoutExtension}.js") workingDir.set(testDataDir) - inputs.files(baseDir.include("*.ts")) - outputs.files(baseDir.include("*.js")) + + inputs.file(mainTsFile) + outputs.file(mainJsFile) + outputs.upToDateWhen { mainJsFile.exists() } + args.set(listOf("run", "generateTypeScriptTests", "--", "./typescript-export/$dir/tsconfig.json")) } val generateTypeScriptTests by parallel( beforeAll = installTsDependencies, - tasksToRun = typescriptTestsDir.listFiles { it: File -> it.isDirectory } + tasksToRun = typescriptTestsDir.listFiles { it: File -> + it.isDirectory && + !it.path.endsWith("module-systems") && + !it.path.endsWith("module-systems-in-exported-file") + } .map { generateTypeScriptTestFor(it.name) } ) @@ -409,8 +420,11 @@ val prepareNpmTestData by task { } val npmInstall by tasks.getting(NpmTask::class) { + val packageLockFile = testDataDir.resolve("package-lock.json") + inputs.file(nodeDir.resolve("package.json")) - outputs.file(testDataDir.resolve("package-lock.json")) + outputs.file(packageLockFile) + outputs.upToDateWhen { packageLockFile.exists() } workingDir.set(nodeDir) dependsOn(prepareNpmTestData) diff --git a/js/js.translator/testData/typescript-export/common.tsconfig.json b/js/js.translator/testData/typescript-export/common.tsconfig.json index 1da85620cc0..7a6773bd2f4 100644 --- a/js/js.translator/testData/typescript-export/common.tsconfig.json +++ b/js/js.translator/testData/typescript-export/common.tsconfig.json @@ -2,7 +2,6 @@ "compilerOptions": { "target": "es5", "strict": true, - "incremental": true, "newLine": "lf" } } \ No newline at end of file