Skip to content

Commit 9d42299

Browse files
committed
added test for javascript evaluate
1 parent a1af6fd commit 9d42299

File tree

4 files changed

+47
-17
lines changed

4 files changed

+47
-17
lines changed

buildSrc/src/main/kotlin/Deps.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ object Deps {
1313

1414
private const val coroutinesVersion = "1.4.2"
1515
private const val kotlinxSerializationVersion = "1.1.0"
16-
private const val mokoTestVersion = "0.2.0"
16+
private const val mokoTestVersion = "0.3.0"
1717
const val mokoJavascriptVersion = "0.1.0"
1818

1919
object Android {
@@ -37,7 +37,7 @@ object Deps {
3737
const val kotlinSerialization =
3838
"org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxSerializationVersion"
3939

40-
const val mokoTest = "dev.icerock.moko:test:$mokoTestVersion"
40+
const val mokoTest = "dev.icerock.moko:test-core:$mokoTestVersion"
4141
const val mokoJavascript = "dev.icerock.moko:javascript:$mokoJavascriptVersion"
4242
}
4343
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package dev.icerock.moko.javascript
6+
7+
import kotlin.test.Test
8+
import kotlin.test.assertEquals
9+
import kotlinx.serialization.json.Json
10+
import kotlinx.serialization.json.encodeToJsonElement
11+
12+
class JavaScriptEngineTest {
13+
@Test
14+
fun `test json context`() {
15+
val form = mapOf("selector_1" to "first_value", "selector_2" to "second_value")
16+
val profile = mapOf("email" to "[email protected]")
17+
val formJson = Json.encodeToJsonElement(form)
18+
val profileJson = Json.encodeToJsonElement(profile)
19+
val context: Map<String, JsType> = mapOf("form" to JsType.Json(formJson), "profile" to JsType.Json(profileJson))
20+
21+
val jsEngine = JavaScriptEngine()
22+
23+
assertEquals(JsType.Bool(true), jsEngine.evaluate(context = context, script = "form.selector_1 == \"first_value\""))
24+
25+
assertEquals(JsType.Bool(true), jsEngine.evaluate(context = context, script = "profile.email != null"))
26+
27+
assertEquals(JsType.Str("[email protected]"), jsEngine.evaluate(context = context, script = "profile.email"))
28+
29+
assertEquals(JsType.Null, jsEngine.evaluate(context = context, script = "profile.first_name"))
30+
}
31+
32+
@Test
33+
fun `test plus script`() {
34+
val list = listOf<Int>(5, 15)
35+
val listJson = Json.encodeToJsonElement(list)
36+
val context: Map<String, JsType> = mapOf("list" to JsType.Json(listJson), "number" to JsType.IntNum(4), "doubleString" to JsType.Str(" Hello "))
37+
38+
val jsEngine = JavaScriptEngine()
39+
40+
assertEquals(JsType.DoubleNum(19.0), jsEngine.evaluate(context = context, script = "list[1]+number"))
41+
42+
assertEquals(JsType.Str(" Hello 5"), jsEngine.evaluate(context = context, script = "doubleString+list[0]"))
43+
}
44+
}

javascript/src/commonTest/kotlin/dev/icerock/moko/javascript/SampleTest.kt

Lines changed: 0 additions & 15 deletions
This file was deleted.

sample/mpp-library/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99

1010
dependencies {
1111
commonMainApi(Deps.Libs.MultiPlatform.coroutines)
12+
commonMainApi(Deps.Libs.MultiPlatform.kotlinSerialization)
1213

1314
commonMainApi(Deps.Libs.MultiPlatform.mokoJavascript)
1415
}

0 commit comments

Comments
 (0)