From 55fb9be7f610b3c557ba3139dd89a6e81b7121cd Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 10 Oct 2019 17:40:02 +0300 Subject: [PATCH] [Gradle, JS] Remove copypaste for karma and nodejs test adapters --- libraries/tools/kotlin-test-js-runner/karma.ts | 14 ++++---------- libraries/tools/kotlin-test-js-runner/nodejs.ts | 11 ++--------- .../tools/kotlin-test-js-runner/src/Adapter.ts | 17 +++++++++++++++++ .../kotlin-test-js-runner/src/CliArgsParser.ts | 2 +- ...r.ts => KotlinTestTeamCityConsoleAdapter.ts} | 0 5 files changed, 24 insertions(+), 20 deletions(-) rename libraries/tools/kotlin-test-js-runner/src/{KotlinTestTeamCityReporter.ts => KotlinTestTeamCityConsoleAdapter.ts} (100%) diff --git a/libraries/tools/kotlin-test-js-runner/karma.ts b/libraries/tools/kotlin-test-js-runner/karma.ts index ab17350fde7..ef40794d19c 100755 --- a/libraries/tools/kotlin-test-js-runner/karma.ts +++ b/libraries/tools/kotlin-test-js-runner/karma.ts @@ -4,9 +4,7 @@ */ import {CliArgsParser, getDefaultCliDescription} from "./src/CliArgsParser"; -import {runWithFilteringAdapter} from "./src/Adapter"; -import {TeamCityMessagesFlow} from "./src/TeamCityMessagesFlow"; -import {runWithTeamCityConsoleAdapter} from "./src/KotlinTestTeamCityReporter"; +import {runWithFilteringAndConsoleAdapters} from "./src/Adapter"; const kotlin_test = require('kotlin-test'); @@ -14,19 +12,15 @@ process.exit = (exitCode) => { throw new Error(`Exit with ${exitCode}`) }; -const processArgs = window.__karma__.config.args; const cliDescription = getDefaultCliDescription(); cliDescription.freeArgsTitle = null; const parser = new CliArgsParser(cliDescription); + +const processArgs = window.__karma__.config.args; const untypedArgs = parser.parse(processArgs); const initialAdapter = kotlin_test.kotlin.test.detectAdapter_8be2vx$(); - -const realConsoleLog = console.log; -const teamCity = new TeamCityMessagesFlow(null, (payload) => realConsoleLog(payload)); -const teamCityAdapter = runWithTeamCityConsoleAdapter(initialAdapter, teamCity); - -kotlin_test.setAdapter(runWithFilteringAdapter(teamCityAdapter, untypedArgs)); +kotlin_test.setAdapter(runWithFilteringAndConsoleAdapters(initialAdapter, untypedArgs)); const resultFun = window.__karma__.result; window.__karma__.result = function (result) { diff --git a/libraries/tools/kotlin-test-js-runner/nodejs.ts b/libraries/tools/kotlin-test-js-runner/nodejs.ts index b56fd3405a0..b987f9a022c 100755 --- a/libraries/tools/kotlin-test-js-runner/nodejs.ts +++ b/libraries/tools/kotlin-test-js-runner/nodejs.ts @@ -1,7 +1,5 @@ import {CliArgsParser, getDefaultCliDescription} from "./src/CliArgsParser"; -import {runWithFilteringAdapter} from "./src/Adapter"; -import {runWithTeamCityConsoleAdapter} from "./src/KotlinTestTeamCityReporter"; -import {TeamCityMessagesFlow} from "./src/TeamCityMessagesFlow"; +import {runWithFilteringAndConsoleAdapters} from "./src/Adapter"; const kotlin_test = require('kotlin-test'); @@ -27,14 +25,9 @@ const defaultMochaArgs = [ '--ui', 'bdd' ]; - const processArgs = process.argv.slice(2, -1 * defaultMochaArgs.length); const untypedArgs = parser.parse(processArgs); // TODO(ilgonmic): Try to detect adapter const initialAdapter = new kotlin_test.kotlin.test.adapters.JasmineLikeAdapter(); - -const realConsoleLog = console.log; -const teamCity = new TeamCityMessagesFlow(null, (payload) => realConsoleLog(payload)); -const teamCityAdapter = runWithTeamCityConsoleAdapter(initialAdapter, teamCity); -kotlin_test.setAdapter(runWithFilteringAdapter(teamCityAdapter, untypedArgs)); \ No newline at end of file +kotlin_test.setAdapter(runWithFilteringAndConsoleAdapters(initialAdapter, untypedArgs)); \ No newline at end of file diff --git a/libraries/tools/kotlin-test-js-runner/src/Adapter.ts b/libraries/tools/kotlin-test-js-runner/src/Adapter.ts index 56c30754f7f..0f11092de0b 100644 --- a/libraries/tools/kotlin-test-js-runner/src/Adapter.ts +++ b/libraries/tools/kotlin-test-js-runner/src/Adapter.ts @@ -6,6 +6,23 @@ import {CliArgValues} from "./CliArgsParser"; import {KotlinTestRunner} from "./KotlinTestRunner"; import {configureFiltering} from "./CliFiltertingConfiguration"; +import {runWithTeamCityConsoleAdapter} from "./KotlinTestTeamCityConsoleAdapter"; +import {TeamCityMessagesFlow} from "./TeamCityMessagesFlow"; + +export function runWithFilteringAndConsoleAdapters( + initialAdapter: KotlinTestRunner, + cliArgsValue: CliArgValues +): KotlinTestRunner { + const realConsoleLog = console.log; + const teamCity = new TeamCityMessagesFlow(null, (payload) => realConsoleLog(payload)); + return runWithTeamCityConsoleAdapter( + runWithFilteringAdapter( + initialAdapter, + cliArgsValue + ), + teamCity + ) +} export function runWithFilteringAdapter( initialAdapter: KotlinTestRunner, diff --git a/libraries/tools/kotlin-test-js-runner/src/CliArgsParser.ts b/libraries/tools/kotlin-test-js-runner/src/CliArgsParser.ts index 35a812468b2..1353d67953d 100644 --- a/libraries/tools/kotlin-test-js-runner/src/CliArgsParser.ts +++ b/libraries/tools/kotlin-test-js-runner/src/CliArgsParser.ts @@ -1,5 +1,5 @@ import {println, startsWith} from "./utils"; -import {IgnoredTestSuitesReporting} from "./KotlinTestTeamCityReporter"; +import {IgnoredTestSuitesReporting} from "./KotlinTestTeamCityConsoleAdapter"; export type CliDescription = { version: string, diff --git a/libraries/tools/kotlin-test-js-runner/src/KotlinTestTeamCityReporter.ts b/libraries/tools/kotlin-test-js-runner/src/KotlinTestTeamCityConsoleAdapter.ts similarity index 100% rename from libraries/tools/kotlin-test-js-runner/src/KotlinTestTeamCityReporter.ts rename to libraries/tools/kotlin-test-js-runner/src/KotlinTestTeamCityConsoleAdapter.ts