You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.3 KiB
110 lines
3.3 KiB
import org.jetbrains.compose.gradle.standardConf |
|
|
|
plugins { |
|
kotlin("multiplatform") |
|
id("org.jetbrains.compose") |
|
} |
|
|
|
val integrationTestsEnabled: Boolean = project.properties.getValue("integrationTestsEnabled") == "true" |
|
|
|
kotlin { |
|
if (integrationTestsEnabled) { |
|
jvm { |
|
tasks.named<Test>("jvmTest") { |
|
useJUnitPlatform() |
|
|
|
systemProperty( |
|
"COMPOSE_WEB_INTEGRATION_TESTS_DISTRIBUTION", |
|
File(buildDir, "developmentExecutable") |
|
) |
|
} |
|
} |
|
} |
|
|
|
js(IR) { |
|
browser() { |
|
testTask { |
|
useKarma { |
|
standardConf() |
|
useFirefox() |
|
} |
|
} |
|
} |
|
binaries.executable() |
|
} |
|
|
|
sourceSets { |
|
val commonMain by getting { |
|
dependencies { |
|
implementation(compose.runtime) |
|
implementation(project(":html-core")) |
|
implementation(kotlin("stdlib-common")) |
|
implementation(libs.kotlinx.coroutines.core) |
|
} |
|
} |
|
|
|
val jsMain by getting { |
|
dependencies { |
|
implementation(kotlin("stdlib-js")) |
|
implementation(npm("highlight.js", "10.7.2")) |
|
} |
|
} |
|
|
|
val jsTest by getting { |
|
dependencies { |
|
implementation(kotlin("test-js")) |
|
} |
|
} |
|
|
|
if (integrationTestsEnabled) { |
|
val jvmTest by getting { |
|
dependencies { |
|
implementation("org.slf4j:slf4j-api:1.7.30") |
|
implementation("org.slf4j:slf4j-simple:1.7.30") |
|
|
|
implementation("org.seleniumhq.selenium:selenium-java:3.141.59") |
|
|
|
implementation("io.ktor:ktor-server-netty:1.5.4") |
|
implementation("io.ktor:ktor-server-core:1.5.4") |
|
implementation("io.ktor:ktor-server-host-common:1.5.4") |
|
|
|
implementation("org.junit.jupiter:junit-jupiter-engine:5.7.1") |
|
implementation("org.junit.jupiter:junit-jupiter-api:5.7.1") |
|
implementation("org.junit.jupiter:junit-jupiter-params:5.7.1") |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
if (integrationTestsEnabled) { |
|
tasks.named<Test>("jvmTest") { |
|
dependsOn(tasks.named("jsBrowserDevelopmentWebpack")) |
|
|
|
listOf( |
|
"webdriver.chrome.driver", |
|
"webdriver.gecko.driver", |
|
).forEach { |
|
if (rootProject.hasProperty(it)) { |
|
println("${it} => ${rootProject.extensions.getByName(it)}") |
|
systemProperty(it, rootProject.extensions.getByName(it)) |
|
} |
|
} |
|
|
|
listOf( |
|
"compose.web.tests.integration.withFirefox" |
|
).forEach { propName -> |
|
if (project.hasProperty(propName)) { |
|
systemProperty(propName, "true") |
|
} |
|
} |
|
} |
|
} |
|
|
|
// a temporary workaround for a bug in jsRun invocation - see https://youtrack.jetbrains.com/issue/KT-48273 |
|
afterEvaluate { |
|
rootProject.extensions.configure<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension> { |
|
versions.webpackDevServer.version = "4.0.0" |
|
versions.webpackCli.version = "4.10.0" |
|
} |
|
}
|
|
|