aboutsummaryrefslogtreecommitdiff
path: root/kvision-modules/kvision-redux/src/test/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'kvision-modules/kvision-redux/src/test/kotlin')
-rw-r--r--kvision-modules/kvision-redux/src/test/kotlin/test/pl/treksoft/kvision/redux/StateBindingSpec.kt31
1 files changed, 30 insertions, 1 deletions
diff --git a/kvision-modules/kvision-redux/src/test/kotlin/test/pl/treksoft/kvision/redux/StateBindingSpec.kt b/kvision-modules/kvision-redux/src/test/kotlin/test/pl/treksoft/kvision/redux/StateBindingSpec.kt
index 1da16e55..0271a956 100644
--- a/kvision-modules/kvision-redux/src/test/kotlin/test/pl/treksoft/kvision/redux/StateBindingSpec.kt
+++ b/kvision-modules/kvision-redux/src/test/kotlin/test/pl/treksoft/kvision/redux/StateBindingSpec.kt
@@ -26,6 +26,7 @@ import pl.treksoft.kvision.html.Div.Companion.div
import pl.treksoft.kvision.panel.Root
import pl.treksoft.kvision.panel.SimplePanel
import pl.treksoft.kvision.redux.StateBinding.Companion.stateBinding
+import pl.treksoft.kvision.redux.StateBinding.Companion.stateUpdate
import pl.treksoft.kvision.redux.createReduxStore
import redux.RAction
import test.pl.treksoft.kvision.DomSpec
@@ -77,4 +78,32 @@ class StateBindingSpec : DomSpec {
}
}
-} \ No newline at end of file
+ @Test
+ fun stateUpdate() {
+ run {
+ val root = Root("test", true)
+ val store = createReduxStore(::stateReducer, State(10))
+
+ val container = SimplePanel()
+ container.stateUpdate(store) { state ->
+ div("${state.counter}")
+ } updateWith { state, d ->
+ d.content = "${state.counter}"
+ }
+ root.add(container)
+ val element = document.getElementById("test")
+ assertEqualsHtml(
+ "<div><div></div><div>10</div></div>",
+ element?.innerHTML,
+ "Should render initial state of the container"
+ )
+ store.dispatch(StateAction.Inc)
+ assertEqualsHtml(
+ "<div><div></div><div>11</div></div>",
+ element?.innerHTML,
+ "Should render changed state of the container"
+ )
+ }
+ }
+
+}