summaryrefslogtreecommitdiff
path: root/test/cases/libredbdiff.bats
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases/libredbdiff.bats')
-rw-r--r--test/cases/libredbdiff.bats50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/cases/libredbdiff.bats b/test/cases/libredbdiff.bats
new file mode 100644
index 0000000..6cebbf6
--- /dev/null
+++ b/test/cases/libredbdiff.bats
@@ -0,0 +1,50 @@
+#!/usr/bin/env roundup
+
+describe libredbdiff
+. ./test-common.sh
+
+before() {
+ common_before
+
+ install -Dm644 /dev/stdin "$XDG_CONFIG_HOME/libretools/libredbdiff.conf" <<-'eot'
+ statedir="$PWD"
+ mirror_prbl='https://repo.parabola.nu/$repo/os/$arch'
+ mirror_arch='https://mirrors.kernel.org/archlinux/$repo/os/$arch'
+ repos=(libre)
+ eot
+}
+
+it_displays_help() {
+ LC_ALL=C libredbdiff -h >$tmpdir/stdout 2>$tmpdir/stderr
+
+ [[ "$(sed 1q $tmpdir/stdout)" =~ Usage:.* ]]
+ empty $tmpdir/stderr
+}
+
+it_handles_packages_with_multiple_provides_explicit() {
+ cd libredbdiff.d/statedir
+
+ libredbdiff -n libre >$tmpdir/stdout 2>$tmpdir/stderr
+
+ empty $tmpdir/stderr
+ diff -w ../expected-explicit.txt $tmpdir/stdout
+}
+
+it_handles_packages_with_multiple_provides_implicit() {
+ cd libredbdiff.d/statedir
+
+ libredbdiff -n >$tmpdir/stdout 2>$tmpdir/stderr
+
+ empty $tmpdir/stderr
+ diff -w ../expected-implicit.txt $tmpdir/stdout
+}
+
+it_fails_on_bad_repo_args() {
+ cd libredbdiff.d/statedir
+
+ libredbdiff -n bogus >$tmpdir/stdout 2>$tmpdir/stderr || status=$?
+
+ [[ $status != 0 ]]
+ empty $tmpdir/stdout
+ not empty $tmpdir/stderr
+}