Replace toml config with a javascript file
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
@file:Suppress("MemberVisibilityCanBePrivate", "PackageDirectoryMismatch")
|
||||
|
||||
package scaffold.scripting
|
||||
|
||||
import io.mockk.clearMocks
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.TestInstance
|
||||
import org.junit.jupiter.api.TestInstance.Lifecycle
|
||||
|
||||
@TestInstance(Lifecycle.PER_CLASS)
|
||||
class ScriptEngineTest {
|
||||
|
||||
val scriptContext = mockk<ScriptContext>()
|
||||
val scriptEngine = ScriptEngine(scriptContext)
|
||||
|
||||
@BeforeEach
|
||||
fun beforeEach() = clearMocks(scriptContext)
|
||||
|
||||
@Test
|
||||
fun echo() {
|
||||
every { scriptContext.echo("test") } returns Unit
|
||||
|
||||
val script = "echo('test')"
|
||||
scriptEngine.eval(script)
|
||||
|
||||
verify { scriptContext.echo(any()) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun render() {
|
||||
every { scriptContext.render("test", match { it["something"] == "hello" }) } returns "blah"
|
||||
|
||||
val script = """
|
||||
const ctx = {
|
||||
"something": "hello"
|
||||
}
|
||||
|
||||
render("test", ctx)
|
||||
""".trimIndent()
|
||||
|
||||
scriptEngine.eval(script)
|
||||
|
||||
verify { scriptContext.render(any(), any()) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun prompt() {
|
||||
every { scriptContext.prompt("a", null) } returns "a"
|
||||
|
||||
val script = "prompt('a')"
|
||||
scriptEngine.eval(script)
|
||||
|
||||
verify { scriptContext.prompt(any(), null) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun promptWithDefault(){
|
||||
every { scriptContext.prompt("a", "default") } returns "default"
|
||||
|
||||
val script = "prompt('a', 'default')"
|
||||
scriptEngine.eval(script)
|
||||
|
||||
verify { scriptContext.prompt(any(), any()) }
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user