2023-07-22 19:08:42 +02:00
|
|
|
(defpackage cl-sbt/tests/accordion
|
|
|
|
(:use
|
|
|
|
:cl
|
|
|
|
:cl-sbt
|
|
|
|
:rove)
|
|
|
|
(:import-from
|
|
|
|
:cl-sbt/accordion
|
2023-07-22 21:28:00 +02:00
|
|
|
:header
|
2023-09-01 10:41:52 +02:00
|
|
|
:collapse
|
|
|
|
:item
|
|
|
|
:accordion))
|
2023-07-22 19:08:42 +02:00
|
|
|
|
|
|
|
(in-package :cl-sbt/tests/accordion)
|
|
|
|
|
|
|
|
(deftest test-header
|
2023-07-27 13:55:25 +02:00
|
|
|
(let ((result (spinneret:with-html-string (header "collapseOne" "Heading" t))))
|
2023-07-22 19:08:42 +02:00
|
|
|
(testing "Generates correct HTML for accordion header"
|
2023-07-27 13:55:25 +02:00
|
|
|
(ok (search "class=accordion-header" result))
|
|
|
|
(ok (search "class=accordion-button" result))
|
|
|
|
(ok (search "data-bs-target=#collapseOne" result))
|
|
|
|
(ok (search "aria-expanded=true" result))
|
|
|
|
(ok (search "aria-controls=#collapseOne" result))
|
|
|
|
(ok (search "Heading" result)))))
|
2023-07-22 21:28:00 +02:00
|
|
|
|
|
|
|
(deftest test-collapse
|
2023-07-27 13:55:25 +02:00
|
|
|
(let ((result (spinneret:with-html-string (collapse "accordionExample" "collapseOne" t))))
|
2023-07-22 21:28:00 +02:00
|
|
|
(testing "Generates correct HTML for accordion collapse"
|
2023-07-27 13:55:25 +02:00
|
|
|
(ok (search "class=\"accordion-collapse collapse show\"" result))
|
|
|
|
(ok (search "id=collapseOne" result))
|
|
|
|
(ok (search "data-bs-parent=#accordionExample" result))
|
|
|
|
(ok (search "class=accordion-body" result)))))
|
2023-09-01 10:41:52 +02:00
|
|
|
|
|
|
|
(deftest test-item
|
|
|
|
(let ((result (spinneret:with-html-string (item (header "collapseOne" "Heading" t) (collapse "accordionExample" "collapseOne" t "Some content")))))
|
|
|
|
(testing "Generates correct HTML for accordion item"
|
|
|
|
(ok (search "class=accordion-item" result))
|
|
|
|
(ok (search "class=accordion-header" result))
|
|
|
|
(ok (search "class=accordion-button" result))
|
|
|
|
(ok (search "class=\"accordion-collapse collapse show\"" result))
|
|
|
|
(ok (search "data-bs-target=#collapseOne" result))
|
|
|
|
(ok (search "aria-expanded=true" result))
|
|
|
|
(ok (search "aria-controls=#collapseOne" result))
|
|
|
|
(ok (search "Some content" result)))))
|
|
|
|
|
|
|
|
(deftest test-accordion
|
|
|
|
(let ((result (spinneret:with-html-string
|
|
|
|
(accordion "accordionExample"
|
|
|
|
(:target "collapseOne" :name "Accordion Item #1" :show t :content "This is the first item's accordion body.")
|
|
|
|
(:target "collapseTwo" :name "Accordion Item #2" :content "This is the second item's accordion body.")
|
|
|
|
(:target "collapseThree" :name "Accordion Item #3" :content "This is the third item's accordion body.")))))
|
|
|
|
(testing "Generates correct HTML for accordion"
|
|
|
|
(ok (search "class=accordion" result))
|
|
|
|
(ok (search "id=accordionExample" result))
|
|
|
|
(ok (search "class=accordion-item" result))
|
|
|
|
(ok (search "class=accordion-header" result))
|
|
|
|
(ok (search "class=accordion-button" result))
|
|
|
|
(ok (search "class=\"accordion-collapse collapse show\"" result))
|
|
|
|
(ok (search "data-bs-target=#collapseOne" result))
|
|
|
|
(ok (search "aria-expanded=true" result))
|
|
|
|
(ok (search "aria-controls=#collapseOne" result))
|
|
|
|
(ok (search "This is the first item's accordion body." result))
|
|
|
|
(ok (search "This is the second item's accordion body." result))
|
|
|
|
(ok (search "This is the third item's accordion body." result)))))
|