41 lines
1.6 KiB
Clojure
41 lines
1.6 KiB
Clojure
(ns progrock.core-test
|
|
(:require [clojure.test :refer :all]
|
|
[progrock.core :as pr]))
|
|
|
|
(deftest test-progress-bar
|
|
(let [bar (pr/progress-bar 50)]
|
|
(is (= (:total bar) 50))
|
|
(is (= (:progress bar) 0))
|
|
(is (not (:done? bar)))))
|
|
|
|
(deftest test-tick
|
|
(let [bar (pr/progress-bar 50)]
|
|
(is (= (-> bar pr/tick :progress) 1))
|
|
(is (= (-> bar (pr/tick 16) :progress) 16))
|
|
(is (= (-> bar (pr/tick 5) pr/tick :progress) 6))))
|
|
|
|
(deftest test-done
|
|
(let [bar (pr/progress-bar 50)]
|
|
(is (-> bar pr/done :done?))))
|
|
|
|
(deftest test-render
|
|
(let [bar (pr/progress-bar 50)]
|
|
(is (= (pr/render bar)
|
|
" 0/50 0% [ ] ETA: --:--"))
|
|
(is (= (pr/render (pr/tick bar 25))
|
|
"25/50 50% [========================= ] ETA: 00:00"))
|
|
(is (= (pr/render (pr/tick bar 25) {:format "(:bar)", :length 10})
|
|
"(===== )"))
|
|
(is (= (pr/render (pr/tick bar 25) {:format "[:bar]", :complete \#, :incomplete \-})
|
|
"[#########################-------------------------]"))
|
|
(is (= (pr/render (pr/progress-bar 0))
|
|
"0/0 0% [ ] ETA: --:--"))))
|
|
|
|
(deftest test-print
|
|
(let [bar (pr/progress-bar 50)]
|
|
(is (= (with-out-str (pr/print bar))
|
|
"\r 0/50 0% [ ] ETA: --:--"))
|
|
(is (= (with-out-str (pr/print bar {:length 10}))
|
|
"\r 0/50 0% [ ] ETA: --:--"))
|
|
(is (= (with-out-str (pr/print (pr/done bar) {:length 10}))
|
|
"\r 0/50 0% [ ] ETA: --:--\n"))))
|