diff --git a/src/component/form.lisp b/src/component/form.lisp index f590c37..69ce755 100644 --- a/src/component/form.lisp +++ b/src/component/form.lisp @@ -38,12 +38,10 @@ :class "col-form-label" ,label)) (:div :class "col-auto" - (:label :type ,type + (:input :class "form-control" + :type ,type :id ,id - :class "form-control")) - (:div :class "col-auto" - (:span :class "form-text" - ,text))))))) + :placeholder ,placeholder))))))) (defmacro select-option (&rest rest) `(spinneret:with-html diff --git a/tests/component/form.lisp b/tests/component/form.lisp index f186317..202457f 100644 --- a/tests/component/form.lisp +++ b/tests/component/form.lisp @@ -6,6 +6,7 @@ (:import-from :cl-sbt/form :ctrl + :ctrl-col :select :select-option)) @@ -83,3 +84,13 @@ (ok (search "class=form-select" result)) (ok (search "size=3" result)) (ok (search "option value=1" result))))) + +(deftest test-simple-form-control-cols + (let ((result (spinneret:with-html-string (ctrl-col (:id "exampleFormControlInput1" :label "Email address" :type "email" :placeholder "name@example.com"))))) + (testing "Generates correct HTML for a simple form using cols" + (ok (search "for=exampleFormControlInput1" result)) + (ok (search "class=col-form-label" result)) + (ok (search "type=email" result)) + (ok (search "class=form-control" result)) + (ok (search "id=exampleFormControlInput1" result)) + (ok (search "placeholder=name@example.com" result)))))