testoperenv/test/cmd_test.clj

26 lines
907 B
Clojure
Raw Normal View History

2023-11-26 17:29:15 +01:00
(ns cmd-test
(:require
[babashka.process :as p]
[testoperenv.cmd :refer [cmd-ok? run-cmd run-cmd-in-dir]]))
(require '[clojure.test :refer [deftest is testing]])
(deftest test-cmd-ok?
(testing "cmd-ok? returns true when exit code is 0"
(is (cmd-ok? {:exit 0})))
(testing "cmd-ok? returns false when exit code is not 0"
(is (not (cmd-ok? {:exit 1})))))
(deftest test-run-cmd
(testing "run-cmd returns stdout when exit code is 0"
(is (= "foobar" (run-cmd "echo" "-n" "foobar"))))
(testing "run-cmd throws exception when exit code is not 0"
(is (thrown? clojure.lang.ExceptionInfo (run-cmd "false")))))
(deftest test-run-cmd-in-dir
(testing "run-cmd-in-dir changes directory"
(is (= "python" (run-cmd-in-dir "python" "bash" "-c" "basename $(pwd)"))))
(testing "run-cmd-in-dir restores directory"
(is (= "testoperenv" (run-cmd "bash" "-c" "basename $(pwd)")))))