Add tests

This commit is contained in:
Michiel Borkent 2021-01-31 22:56:57 +01:00
parent e7fecf3417
commit 7fae43eef1
3 changed files with 80 additions and 0 deletions

View file

@ -37,3 +37,7 @@ lein test :only babashka.pod-test
export BABASHKA_SOCKET_REPL_TEST=true
lein test :only babashka.impl.socket-repl-test
unset BABASHKA_PRELOADS
unset BABASHKA_CLASSPATH
unset BABASHKA_PRELOADS_TEST

View file

@ -0,0 +1,70 @@
(ns babashka.fs-test
(:require [babashka.fs :as fs]
[clojure.java.io :as io]
[clojure.string :as str]
[clojure.test :refer [deftest is]]))
(def cwd (fs/real-path "fs"))
(defn temp-dir []
(-> (fs/create-temp-dir)
(fs/delete-on-exit)))
(deftest glob-test
(is (pos? (count (fs/glob cwd "**.{clj,cljc}")))))
(deftest file-name-test
(is (= "fs" (fs/file-name cwd)))
(is (= "fs" (fs/file-name (fs/file cwd))))
(is (= "fs" (fs/file-name (fs/path cwd)))))
(deftest path-test
(let [p (fs/path "foo" "bar" (io/file "baz"))]
(is (instance? java.nio.file.Path p))
(is (= "foo/bar/baz" (str p)))))
(deftest file-test
(let [f (fs/file "foo" "bar" (fs/path "baz"))]
(is (instance? java.io.File f))
(is (= "foo/bar/baz" (str f)))))
(deftest copy-test
(let [tmp-dir (temp-dir)]
(fs/copy-tree "fs" tmp-dir)
(let [cur-dir-count (count (fs/glob "fs" "**" #{:hidden}))
tmp-dir-count (count (fs/glob tmp-dir "**" #{:hidden}))]
(is (pos? cur-dir-count))
(is (= cur-dir-count tmp-dir-count)))))
(deftest components-test
(let [paths (map str (fs/components cwd))]
(is (= "fs" (last paths)))
(is (> (count paths) 1))))
(deftest list-dir-test
(let [paths (map str (fs/list-dir (fs/real-path ".")))]
(is (> (count paths) 1)))
(let [paths (map str (fs/list-dir (fs/real-path ".") (fn accept [x] (fs/directory? x))))]
(is (> (count paths) 1)))
(let [paths (map str (fs/list-dir (fs/real-path ".") (fn accept [_] false)))]
(is (zero? (count paths))))
(let [paths (map str (fs/list-dir (fs/real-path ".") "*.clj"))]
(is (pos? (count paths)))))
(deftest delete-tree-test
(let [tmp-dir1 (temp-dir)
nested-dir (fs/file tmp-dir1 "foo" "bar" "baz")
_ (fs/create-dirs nested-dir)]
(is (fs/exists? nested-dir))
(fs/delete-tree nested-dir)
(is (not (fs/exists? nested-dir)))))
(deftest move-test
(let [tmp-dir1 (fs/create-temp-dir)
f (fs/file tmp-dir1 "foo.txt")
_ (spit f "foo")
f2 (fs/file tmp-dir1 "bar.txt")]
(fs/move f f2)
(is (not (fs/exists? f)))
(is (fs/exists? f2))
(is (= "foo" (str/trim (slurp f2))))))

View file

@ -176,6 +176,12 @@
(test-namespaces 'test-check.smoke-test)
(test-namespaces 'babashka.fs-test)
;; test fs once again, but now from source
(require '[babashka.fs] :reload)
(test-namespaces 'babashka.fs-test)
;;;; final exit code
(let [{:keys [:test :fail :error] :as m} @status]