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 karmaSourceMapSupport = NpmPackageVersion("karma-source-map-support", "1.4.0")
|
||||
|
||||
val puppeteer = NpmPackageVersion("puppeteer", "1.19.0")
|
||||
|
||||
val kotlinNodeJsTestRunner = KotlinGradleNpmPackage("test-nodejs-runner")
|
||||
|
||||
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.TCServiceMessagesTestExecutionSpec
|
||||
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.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.npm.npmProject
|
||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||
@@ -77,11 +77,20 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
||||
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)
|
||||
|
||||
@@ -98,6 +107,29 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
||||
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() {
|
||||
requiredDependencies.add(versions.karmaMocha)
|
||||
requiredDependencies.add(versions.mocha)
|
||||
@@ -318,4 +350,9 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
||||
appendConfigsFromDir(configDirectory)
|
||||
appendln()
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val CHROME_BIN = "CHROME_BIN"
|
||||
const val CHROME_CANARY_BIN = "CHROME_CANARY_BIN"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user