(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)")))))