aboutsummaryrefslogtreecommitdiff
path: root/atomicfu-gradle-plugin/src/test/kotlin/kotlinx/atomicfu/plugin/gradle/test/JsProjectTest.kt
blob: 8630f70e80f77c19b341ecf2cd1cd0c84c1709b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package kotlinx.atomicfu.plugin.gradle.test

import kotlinx.atomicfu.plugin.gradle.internal.*
import kotlinx.atomicfu.plugin.gradle.internal.BaseKotlinScope
import org.junit.Test

class JsProjectTest : BaseKotlinGradleTest("js-simple") {
    private fun BaseKotlinScope.createProject() {
        buildGradleKts {
            resolve("projects/js-simple/js-simple.gradle.kts")
        }
        settingsGradleKts {
            resolve("projects/js-simple/settings.gradle.kts")
        }
        dir("src/main/kotlin") {}
        kotlin("IntArithmetic.kt", "main") {
            resolve("projects/js-simple/src/main/kotlin/IntArithmetic.kt")
        }
        dir("src/test/kotlin") {}
        kotlin("ArithmeticTest.kt", "test") {
            resolve("projects/js-simple/src/test/kotlin/ArithmeticTest.kt")
        }
    }

    @Test
    fun testPlugin() {
        val runner = test {
            createProject()
            runner {
                arguments.add(":build")
            }
        }
        val tasksToCheck = arrayOf(
            ":compileKotlinJs",
            ":transformJsMainAtomicfu",
            ":compileTestKotlinJs",
            ":transformJsTestAtomicfu"
        )
        runner.build().apply {
            tasksToCheck.forEach {
                assertTaskSuccess(it)
            }
        }
        // check that task outcomes are cached for the second build
        runner.build().apply {
            tasksToCheck.forEach {
                assertTaskUpToDate(it)
            }
        }
        checkJsCompilationClasspath()
    }
}