Add puppeteer for Chrome browsers
This commit is contained in:
+2
@@ -43,6 +43,8 @@ class NpmVersions {
|
|||||||
val karmaSourceMapLoader = NpmPackageVersion("karma-sourcemap-loader", "0.3.7")
|
val karmaSourceMapLoader = NpmPackageVersion("karma-sourcemap-loader", "0.3.7")
|
||||||
val karmaSourceMapSupport = NpmPackageVersion("karma-source-map-support", "1.4.0")
|
val karmaSourceMapSupport = NpmPackageVersion("karma-source-map-support", "1.4.0")
|
||||||
|
|
||||||
|
val puppeteer = NpmPackageVersion("puppeteer", "1.19.0")
|
||||||
|
|
||||||
val kotlinNodeJsTestRunner = KotlinGradleNpmPackage("test-nodejs-runner")
|
val kotlinNodeJsTestRunner = KotlinGradleNpmPackage("test-nodejs-runner")
|
||||||
|
|
||||||
val istanbulInstrumenterLoader = NpmPackageVersion("istanbul-instrumenter-loader", "3.0.1")
|
val istanbulInstrumenterLoader = NpmPackageVersion("istanbul-instrumenter-loader", "3.0.1")
|
||||||
|
|||||||
+42
-5
@@ -16,10 +16,10 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient
|
|||||||
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
|
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
|
||||||
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
|
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.NpmPackageVersion
|
import org.jetbrains.kotlin.gradle.targets.js.NpmPackageVersion
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
|
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||||
@@ -77,11 +77,20 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
configDirectory = dir
|
configDirectory = dir
|
||||||
}
|
}
|
||||||
|
|
||||||
fun useChrome() = useBrowser("Chrome", versions.karmaChromeLauncher)
|
fun useChrome() = useChromeWithPuppeteer(
|
||||||
|
id = "Chrome",
|
||||||
|
envVar = CHROME_BIN
|
||||||
|
)
|
||||||
|
|
||||||
fun useChromeCanary() = useBrowser("ChromeCanary", versions.karmaChromeLauncher)
|
fun useChromeCanary() = useChromeWithPuppeteer(
|
||||||
|
id = "ChromeCanary",
|
||||||
|
envVar = CHROME_CANARY_BIN
|
||||||
|
)
|
||||||
|
|
||||||
fun useChromeHeadless() = useBrowser("ChromeHeadless", versions.karmaChromeLauncher)
|
fun useChromeHeadless() = useChromeWithPuppeteer(
|
||||||
|
id = "ChromeHeadless",
|
||||||
|
envVar = CHROME_BIN
|
||||||
|
)
|
||||||
|
|
||||||
fun usePhantomJS() = useBrowser("PhantomJS", versions.karmaPhantomJsLauncher)
|
fun usePhantomJS() = useBrowser("PhantomJS", versions.karmaPhantomJsLauncher)
|
||||||
|
|
||||||
@@ -98,6 +107,29 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
requiredDependencies.add(dependency)
|
requiredDependencies.add(dependency)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun useChromeWithPuppeteer(
|
||||||
|
id: String,
|
||||||
|
envVar: String
|
||||||
|
) {
|
||||||
|
usePuppeteer(envVar)
|
||||||
|
useBrowser(id, versions.karmaChromeLauncher)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun usePuppeteer(envVar: String) {
|
||||||
|
requiredDependencies.add(versions.puppeteer)
|
||||||
|
|
||||||
|
confJsWriters.add {
|
||||||
|
it.appendln()
|
||||||
|
//language=JavaScript 1.8
|
||||||
|
it.appendln(
|
||||||
|
"""
|
||||||
|
// puppeteer
|
||||||
|
process.env.$envVar = require('puppeteer').executablePath()
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun useMocha() {
|
private fun useMocha() {
|
||||||
requiredDependencies.add(versions.karmaMocha)
|
requiredDependencies.add(versions.karmaMocha)
|
||||||
requiredDependencies.add(versions.mocha)
|
requiredDependencies.add(versions.mocha)
|
||||||
@@ -318,4 +350,9 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
appendConfigsFromDir(configDirectory)
|
appendConfigsFromDir(configDirectory)
|
||||||
appendln()
|
appendln()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val CHROME_BIN = "CHROME_BIN"
|
||||||
|
const val CHROME_CANARY_BIN = "CHROME_CANARY_BIN"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user