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

35 lines
1.4 KiB
Common Lisp
Raw Normal View History

2024-03-30 09:17:04 +01:00
(defpackage dev.metalisp.sbt/tests/component/dropdown
2023-07-29 17:38:15 +02:00
(:use
:cl
2023-12-18 12:11:40 +01:00
:dev.metalisp.sbt/component/dropdown
2024-03-30 09:17:04 +01:00
:rove))
2023-07-29 17:38:15 +02:00
2024-03-30 09:17:04 +01:00
(in-package :dev.metalisp.sbt/tests/component/dropdown)
2023-07-29 17:38:15 +02:00
(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)))))