From 9c5c31bdcb909ecd6a745b8cf8c6a90854102d1f Mon Sep 17 00:00:00 2001 From: Artem Kobzar Date: Wed, 23 Feb 2022 10:28:02 +0000 Subject: [PATCH] build: change the logic for building ts files before js tests run. --- js/js.tests/build.gradle.kts | 32 ++++++++++++++++++-------- js/js.translator/testData/package.json | 2 +- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/js/js.tests/build.gradle.kts b/js/js.tests/build.gradle.kts index 3a54b098556..f459018c782 100644 --- a/js/js.tests/build.gradle.kts +++ b/js/js.tests/build.gradle.kts @@ -171,19 +171,32 @@ val unzipV8 by task { } val testDataDir = project(":js:js.translator").projectDir.resolve("testData") +val typescriptTestsDir = testDataDir.resolve("typescript-export") -val installTsDependencies by task { +val installTsDependencies = task("installTsDependencies") { workingDir.set(testDataDir) args.set(listOf("install")) } -val generateTypeScriptTests by task { - dependsOn(installTsDependencies) - - workingDir.set(testDataDir) - args.set(listOf("run", "generateTypeScriptTests")) +fun sequential(first: Task, tasks: List): Task { + tasks.fold(first) { previousTask, currentTask -> + currentTask.dependsOn(previousTask) + } + return tasks.last() } +fun generateTypeScriptTestFor(dir: String): Task = task("generate-ts-for-$dir") { + workingDir.set(testDataDir) + args.set(listOf("run", "generateTypeScriptTests", "--", "./typescript-export/$dir/tsconfig.json")) +} + +val generateTypeScriptTests = sequential( + installTsDependencies, + typescriptTestsDir.listFiles() + .filter { it.isDirectory } + .map { generateTypeScriptTestFor(it.name) } +) + fun Test.setupV8() { dependsOn(unzipV8) val v8Path = unzipV8.get().destinationDir @@ -205,10 +218,9 @@ fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean) { dependsOn(":dist") -// TODO uncomment after fixing on Windows -// if (!project.hasProperty("teamcity")) { -// dependsOn(generateTypeScriptTests) -// } + if (!project.hasProperty("teamcity")) { + dependsOn(generateTypeScriptTests) + } if (jsEnabled) { dependsOn(testJsRuntime) diff --git a/js/js.translator/testData/package.json b/js/js.translator/testData/package.json index d8813466e5a..d48addaa03e 100644 --- a/js/js.translator/testData/package.json +++ b/js/js.translator/testData/package.json @@ -11,6 +11,6 @@ "runOnTeamcity": "mocha --reporter mocha-teamcity-reporter", "test": "mocha", "runIrTestInNode": "node $NODE_DEBUG_OPTION runIrTestInNode.js", - "generateTypeScriptTests": "tsc --build typescript-export/*/" + "generateTypeScriptTests": "tsc --build" } }