// :test-support — shared fakes (FakeTransport / FakeHttpTransport / FakeTimeSource)
// mirroring iOS's TestSupport package. Consumed by other modules' test source sets.
// Pure Kotlin/JVM; depends only on :wire-protocol (+ coroutines for the fakes).

plugins {
    alias(libs.plugins.kotlin.jvm)
    alias(libs.plugins.kotlin.serialization)
}

kotlin {
    jvmToolchain(17)
}

dependencies {
    api(project(":wire-protocol"))
    api(libs.kotlinx.coroutines.core)
    // Exposed as `api` on purpose: the fakes live in `main` (Owns), and downstream
    // modules consume both the fakes AND `TestScope`/virtual-time from their test
    // source sets via a single `testImplementation(project(":test-support"))`.
    api(libs.kotlinx.coroutines.test)

    testImplementation(libs.bundles.unit.test)
    testRuntimeOnly(libs.junit.platform.launcher)
}

tasks.test {
    useJUnitPlatform()
}
