diff options
Diffstat (limited to 'src')
4 files changed, 375 insertions, 0 deletions
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/form/FormPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/form/FormPanelSpec.kt new file mode 100644 index 00000000..d832e75d --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/form/FormPanelSpec.kt @@ -0,0 +1,175 @@ +package test.pl.treksoft.kvision.form + +import pl.treksoft.kvision.form.FormPanel +import pl.treksoft.kvision.form.text.Text +import pl.treksoft.kvision.form.time.DateTime +import test.pl.treksoft.kvision.SimpleSpec +import kotlin.js.Date +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNotNull +import kotlin.test.assertNull + +@Suppress("CanBeParameter") +class FormPanelSpec : SimpleSpec { + + @Test + fun add() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val formPanel = FormPanel { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + formPanel.setData(data) + val result = formPanel.getData() + assertNull(result.a, "FormPanel should return null without adding any control") + val textField = Text() + formPanel.add("a", textField) + formPanel.setData(data) + val result2 = formPanel.getData() + assertEquals("Test value", result2.a, "FormPanel should return initial value") + } + } + + @Test + fun remove() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val formPanel = FormPanel { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + formPanel.add("a", Text()) + formPanel.setData(data) + formPanel.remove("a") + val result = formPanel.getData() + assertNull(result.a, "FormPanel should return null after removing control") + } + } + + @Test + fun removeAll() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val formPanel = FormPanel { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + formPanel.add("a", Text()) + formPanel.setData(data) + formPanel.removeAll() + val result = formPanel.getData() + assertNull(result.a, "FormPanel should return null after removing all controls") + } + } + + @Test + fun getControl() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val formPanel = FormPanel { + DataForm(it) + } + formPanel.add("a", Text()) + val control = formPanel.getControl("b") + assertNull(control, "Should return null when there is no such control") + val control2 = formPanel.getControl("a") + assertNotNull(control2, "Should return correct control") + } + } + + @Test + fun get() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val formPanel = FormPanel { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + formPanel.add("a", Text()) + val b = formPanel["b"] + assertNull(b, "Should return null value when there is no added control") + val a = formPanel["a"] + assertNull(a, "Should return null value when control is empty") + formPanel.setData(data) + val a2 = formPanel["a"] + assertEquals("Test value", a2, "Should return correct value") + } + } + + @Test + fun getData() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val formPanel = FormPanel { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + val textField = Text() + formPanel.add("a", textField) + formPanel.setData(data) + textField.value = "New value" + val result = formPanel.getData() + assertEquals("New value", result.a, "Form should return changed value") + } + } + + @Test + fun validate() { + run { + class DataForm(val map: Map<String, Any?>) { + val s: String? by map + val d: Date? by map + } + + val formPanel = FormPanel { + DataForm(it) + } + formPanel.add("s", Text()) { + it.getValue()?.length ?: 0 > 4 + } + formPanel.add("d", DateTime(), required = true) + formPanel.setData(DataForm(mapOf("s" to "123"))) + val valid = formPanel.validate() + assertEquals(false, valid, "Should be invalid with initial data") + formPanel.setData(DataForm(mapOf("s" to "12345"))) + val valid2 = formPanel.validate() + assertEquals(false, valid2, "Should be invalid with partially changed data") + formPanel.setData(DataForm(mapOf("s" to "12345", "d" to Date()))) + val valid3 = formPanel.validate() + assertEquals(true, valid3, "Should be valid") + } + } + +}
\ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/form/FormSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/form/FormSpec.kt new file mode 100644 index 00000000..c5333ac7 --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/form/FormSpec.kt @@ -0,0 +1,175 @@ +package test.pl.treksoft.kvision.form + +import pl.treksoft.kvision.form.Form +import pl.treksoft.kvision.form.text.Text +import pl.treksoft.kvision.form.time.DateTime +import test.pl.treksoft.kvision.SimpleSpec +import kotlin.js.Date +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNotNull +import kotlin.test.assertNull + +@Suppress("CanBeParameter") +class FormSpec : SimpleSpec { + + @Test + fun add() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val form = Form { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + form.setData(data) + val result = form.getData() + assertNull(result.a, "Form should return null without adding any control") + val textField = Text() + form.add("a", textField) + form.setData(data) + val result2 = form.getData() + assertEquals("Test value", result2.a, "Form should return initial value") + } + } + + @Test + fun remove() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val form = Form { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + form.add("a", Text()) + form.setData(data) + form.remove("a") + val result = form.getData() + assertNull(result.a, "Form should return null after removing control") + } + } + + @Test + fun removeAll() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val form = Form { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + form.add("a", Text()) + form.setData(data) + form.removeAll() + val result = form.getData() + assertNull(result.a, "Form should return null after removing all controls") + } + } + + @Test + fun getControl() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val form = Form { + DataForm(it) + } + form.add("a", Text()) + val control = form.getControl("b") + assertNull(control, "Should return null when there is no such control") + val control2 = form.getControl("a") + assertNotNull(control2, "Should return correct control") + } + } + + @Test + fun get() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val form = Form { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + form.add("a", Text()) + val b = form["b"] + assertNull(b, "Should return null value when there is no added control") + val a = form["a"] + assertNull(a, "Should return null value when control is empty") + form.setData(data) + val a2 = form["a"] + assertEquals("Test value", a2, "Should return correct value") + } + } + + @Test + fun getData() { + run { + class DataForm(val map: Map<String, Any?>) { + val a: String? by map + val b: Boolean? by map + val c: Date? by map + } + + val form = Form { + DataForm(it) + } + val data = DataForm(mapOf("a" to "Test value")) + val textField = Text() + form.add("a", textField) + form.setData(data) + textField.value = "New value" + val result = form.getData() + assertEquals("New value", result.a, "Form should return changed value") + } + } + + @Test + fun validate() { + run { + class DataForm(val map: Map<String, Any?>) { + val s: String? by map + val d: Date? by map + } + + val form = Form { + DataForm(it) + } + form.add("s", Text()) { + it.getValue()?.length ?: 0 > 4 + } + form.add("d", DateTime(), required = true) + form.setData(DataForm(mapOf("s" to "123"))) + val valid = form.validate() + assertEquals(false, valid, "Should be invalid with initial data") + form.setData(DataForm(mapOf("s" to "12345"))) + val valid2 = form.validate() + assertEquals(false, valid2, "Should be invalid with partially changed data") + form.setData(DataForm(mapOf("s" to "12345", "d" to Date()))) + val valid3 = form.validate() + assertEquals(true, valid3, "Should be valid") + } + } + +}
\ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/form/HelpBlockSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/form/HelpBlockSpec.kt new file mode 100644 index 00000000..d325dc0f --- /dev/null +++ b/src/test/kotlin/test/pl/treksoft/kvision/form/HelpBlockSpec.kt @@ -0,0 +1,23 @@ +package test.pl.treksoft.kvision.form + +import pl.treksoft.kvision.core.Root +import pl.treksoft.kvision.form.HelpBlock +import test.pl.treksoft.kvision.DomSpec +import kotlin.browser.document +import kotlin.test.Test +import kotlin.test.assertEquals + +class HelpBlockSpec : DomSpec { + + @Test + fun render() { + run { + val root = Root("test") + val fl = HelpBlock("Form Error") + root.add(fl) + val element = document.getElementById("test") + assertEquals("<span class=\"help-block small\">Form Error</span>", element?.innerHTML, "Should render correct help block") + } + } + +}
\ No newline at end of file diff --git a/src/test/kotlin/test/pl/treksoft/kvision/form/text/TextSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/form/text/TextSpec.kt index aafd6dbf..1e9a5b6c 100644 --- a/src/test/kotlin/test/pl/treksoft/kvision/form/text/TextSpec.kt +++ b/src/test/kotlin/test/pl/treksoft/kvision/form/text/TextSpec.kt @@ -23,6 +23,8 @@ class TextSpec : DomSpec { val element = document.getElementById("test") val id = ti.input.id assertEquals("<div class=\"form-group\"><label class=\"control-label\" for=\"$id\">Label</label><input class=\"form-control\" id=\"$id\" placeholder=\"place\" name=\"name\" maxlength=\"15\" disabled=\"\" type=\"text\" value=\"abc\"></div>", element?.innerHTML, "Should render correct input form control") + ti.validatorError = "Validation Error" + assertEquals("<div class=\"form-group has-error\"><label class=\"control-label\" for=\"$id\">Label</label><input class=\"form-control\" id=\"$id\" placeholder=\"place\" name=\"name\" maxlength=\"15\" disabled=\"\" type=\"text\" value=\"abc\"><span class=\"help-block small\">Validation Error</span></div>", element?.innerHTML, "Should render correct input form control with validation error") } } |