dev.metalisp.sbt/tests/dropdown.lisp

34 lines
1.3 KiB
Common Lisp

(defpackage dev.metalisp.sbt/tests/dropdown
(:use
:cl
:dev.metalisp.sbt/dropdown
:rove))
(in-package :dev.metalisp.sbt/tests/dropdown)
(deftest test-menu
(let ((result (spinneret:with-html-string (menu (item "Item 1") (item "Item 2")))))
(testing "Generates correct HTML for a menu with items"
(ok (search "class=dropdown-menu" result))
(ok (search "class=dropdown-item" result))
(ok (search "Item 1" result))
(ok (search "Item 2" result)))))
(deftest test-item
(let ((result (spinneret:with-html-string (item "Item 1"))))
(testing "Generates correct HTML for an item"
(ok (search "class=dropdown-item" result))
(ok (search "Item 1" result)))))
(deftest test-dropdown
(let ((result (spinneret:with-html-string (dropdown (:name "Dropdown") (menu (item "Item 1") (item "Item 2"))))))
(testing "Generates correct HTML for a dropdown with title and menu"
(ok (search "class=dropdown" result))
(ok (search "class=\"btn btn-secondary dropdown-toggle\"" result))
(ok (search "type=button" result))
(ok (search "data-bs-toggle=dropdown" result))
(ok (search "aria-expanded=false" result))
(ok (search "class=dropdown-menu" result))
(ok (search "class=dropdown-item" result))
(ok (search "Item 1" result))
(ok (search "Item 2" result)))))