Add infinite-scroll swap integration test
Three tests covering the beforeend pagination pattern: page 1 appends items with sentinel trigger, page 2 appends more, last page shows "All items loaded" without sentinel. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -189,6 +189,48 @@
|
||||
(assert-true (contains? result "first"))
|
||||
(assert-true (contains? result "second")))))))
|
||||
|
||||
(defsuite
|
||||
"swap:infinite-scroll"
|
||||
(deftest
|
||||
"page 1 appends items to container"
|
||||
(reset-mocks!)
|
||||
(set! _mock-args {:page "1"})
|
||||
(let
|
||||
((page "(div :id \"scroll-items\" (div \"Item 0 — seed\"))")
|
||||
(response (run-handler handler:ex-scroll)))
|
||||
(let
|
||||
((result (sx-swap page "beforeend" "scroll-items" response)))
|
||||
(do
|
||||
(assert-true (contains? result "Item 0"))
|
||||
(assert-true (contains? result "Item 1"))
|
||||
(assert-true (contains? result "page 1"))
|
||||
(assert-true (contains? result "scroll-sentinel"))))))
|
||||
(deftest
|
||||
"page 2 appends more items"
|
||||
(reset-mocks!)
|
||||
(set! _mock-args {:page "2"})
|
||||
(let
|
||||
((page "(div :id \"scroll-items\" (div \"page 1 items\"))")
|
||||
(response (run-handler handler:ex-scroll)))
|
||||
(let
|
||||
((result (sx-swap page "beforeend" "scroll-items" response)))
|
||||
(do
|
||||
(assert-true (contains? result "page 1 items"))
|
||||
(assert-true (contains? result "Item 6"))
|
||||
(assert-true (contains? result "page 2"))))))
|
||||
(deftest
|
||||
"last page has no sentinel"
|
||||
(reset-mocks!)
|
||||
(set! _mock-args {:page "6"})
|
||||
(let
|
||||
((page "(div :id \"scroll-items\")")
|
||||
(response (run-handler handler:ex-scroll)))
|
||||
(let
|
||||
((result (sx-swap page "beforeend" "scroll-items" response)))
|
||||
(do
|
||||
(assert-true (contains? result "All items loaded"))
|
||||
(assert-false (contains? result "scroll-sentinel")))))))
|
||||
|
||||
(defsuite
|
||||
"swap:state-across-calls"
|
||||
(deftest
|
||||
|
||||
Reference in New Issue
Block a user