dev.metalisp.sbt/tests/component/form.lisp

55 lines
2.2 KiB
Common Lisp
Raw Normal View History

2024-03-30 08:46:32 +01:00
(defpackage dev.metalisp.sbt/tests/component/form
2024-03-30 08:45:53 +01:00
(:use :cl
:dev.metalisp.sbt/component/form
:rove))
2023-08-10 18:21:00 +02:00
2024-03-30 08:46:32 +01:00
(in-package :dev.metalisp.sbt/tests/component/form)
2023-08-10 18:21:00 +02:00
2023-12-22 17:54:39 +01:00
(deftest test-ctrl-number
(let ((result (spinneret:with-html-string (ctrl "number" "testform" "Birth Date"))))
2023-12-22 17:57:01 +01:00
(testing "Generates a basic Bootstrap form control with a label."
2023-12-22 17:54:39 +01:00
(ok (search "type=number" result)))))
(deftest test-ctrl-email
(let ((result (spinneret:with-html-string (ctrl "email" "testform" "E-Mail"))))
2023-12-22 17:57:01 +01:00
(testing "Generates a basic Bootstrap form control with a label."
2023-12-22 17:54:39 +01:00
(ok (search "type=email" result)))))
(deftest test-ctrl-tel
(let ((result (spinneret:with-html-string (ctrl "tel" "testform" "Phone number"))))
2023-12-22 17:57:01 +01:00
(testing "Generates a basic Bootstrap form control with a label."
2023-12-22 17:54:39 +01:00
(ok (search "type=tel" result)))))
(deftest test-ctrl-wrong-type
(testing "Asserts error is signaled for invalid type."
(ok (signals (ctrl "wrong-type" "foo" "bar")))
(ok (signals (ctrl "telephone" "foo" "bar")))
(ok (signals (ctrl "e-mail" "foo" "bar")))))
2023-08-11 17:39:28 +02:00
(deftest test-select-default
2023-09-17 15:26:15 +02:00
(let ((result (spinneret:with-html-string (combo () "Red" "Green" "Blue"))))
2023-08-12 12:04:04 +02:00
(testing "Generates correct HTML for select element"
(ok (search "class=form-select" result))
2023-09-16 16:16:44 +02:00
(ok (search "option value=red" result))
(ok (search "option value=green" result))
(ok (search "option value=blue" result)))))
(deftest test-default-search-form
2023-08-16 09:30:35 +02:00
(let ((result (spinneret:with-html-string (search-form))))
(testing "Generates correct HTML for search form"
(ok (search "class=\"form-control me-2\"" result))
(ok (search "type=search" result))
2023-09-13 15:47:16 +02:00
(ok (search "title=Search" result))
(ok (search "type=submit" result))
(ok (search "class=\"btn btn-outline-success\"" result))
(ok (search "<input" result))
(ok (search "<button" result)))))
2023-08-26 09:07:49 +02:00
2023-09-05 21:01:37 +02:00
(deftest test-checkable
2023-09-04 15:02:52 +02:00
(let ((result (spinneret:with-html-string (checkable "radio" "age" "18-24"))))
2023-09-05 21:01:37 +02:00
(testing "Generates correct HTML for checkable"
2023-09-06 14:30:51 +02:00
(ok (search "class=\"form-check-label group-age\"" result))
2023-09-05 21:01:37 +02:00
(ok (search "value=18-24" result))
2023-08-26 09:07:49 +02:00
(ok (search "type=radio" result))
2023-09-04 15:02:52 +02:00
(ok (search "name=group-age" result)))))