(ns dda.backup.core.domain-test (:require [clojure.test :refer [deftest is are testing run-tests]] [clojure.spec.alpha :as s] [clojure.spec.test.alpha :as st] [dda.backup.core.domain :as cut])) (st/instrument `cut/repo-command) (deftest should-verify-command (is (= {:app "restic", :params ["-r" "repo/dir" "-v" "init" "--cacert" "ca"]} (s/conform ::cut/command ["restic" "-r" "repo/dir" "-v" "init" "--cacert" "ca"])))) (deftest should-verify-commands (is (= [{:app "ls"} {:app "restic", :params ["-r" "repo/dir" "-v" "init" "--cacert" "ca"]}] (s/conform ::cut/commands [["ls"] ["restic" "-r" "repo/dir" "-v" "init" "--cacert" "ca"]])))) (deftest should-calculate-repo-command (is (= [[{:dir "dir"} "restic" "-r" "repo/dir" "-v" "--cacert" "ca" "backup" "file1" "file2"]] (cut/repo-command {:certificate-file "ca" :directory "dir" :restic-repository "repo" :backup-path "dir" :days-to-keep 39 :months-to-keep 3} ["backup" "file1" "file2"]))) (is (= [["restic" "-r" "repo/dir" "-v" "--cacert" "ca" "snapshots"]] (cut/repo-command {:certificate-file "ca" :restic-repository "repo" :backup-path "dir" :days-to-keep 39 :months-to-keep 3} ["snapshots"]))) (is (= [["restic" "-r" "repo/dir" "-v" "--password-file" "password" "snapshots"]] (cut/repo-command {:password-file "password" :restic-repository "repo" :backup-path "dir" :days-to-keep 39 :months-to-keep 3} ["snapshots"]))) (is (= [["restic" "-r" "repo/dir" "-v" "snapshots"]] (cut/repo-command {:restic-repository "repo" :backup-path "dir" :days-to-keep 39 :months-to-keep 3} ["snapshots"]))))