57 lines
No EOL
2.3 KiB
Clojure
57 lines
No EOL
2.3 KiB
Clojure
(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"])))) |