summaryrefslogtreecommitdiff
path: root/test/cases/librerelease.bats
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases/librerelease.bats')
-rw-r--r--test/cases/librerelease.bats53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/cases/librerelease.bats b/test/cases/librerelease.bats
new file mode 100644
index 0000000..5ffbb14
--- /dev/null
+++ b/test/cases/librerelease.bats
@@ -0,0 +1,53 @@
+#!/usr/bin/env roundup
+
+describe librerelease
+. ./test-common.sh
+
+it_displays_usage_text() {
+ rm -rf "$XDG_CONFIG_HOME"
+ LC_ALL=C librerelease -h >"$tmpdir/stdout" 2>"$tmpdir/stderr"
+
+ [[ "$(sed 1q "$tmpdir/stdout")" =~ Usage:.* ]]
+ empty "$tmpdir/stderr"
+}
+
+it_lists_all_files() {
+ WORKDIR="$tmpdir/workdir"
+ mkdir -p "$WORKDIR/staging/repo1" "$WORKDIR/staging/repo2/sub"
+ touch \
+ "$WORKDIR/staging/repo1/file1" \
+ "$WORKDIR/staging/repo1/file2" \
+ "$WORKDIR/staging/repo2/file with spaces" \
+ "$WORKDIR/staging/repo2/sub/subfolder"
+ unset WORKDIR
+ LC_ALL=C librerelease -l &>"$tmpdir/list" || { status=$?; cat "$tmpdir/list"; return $status; }
+
+ cat > "$tmpdir/list-correct" <<-eot
+ -> repo1
+ file1
+ file2
+ -> repo2
+ file with spaces
+ sub/subfolder
+ eot
+
+ diff "$tmpdir/list-correct" "$tmpdir/list"
+}
+
+it_fails_if_gpgkey_not_set() {
+ unset GPGKEY
+
+ WORKDIR="$tmpdir/workdir"
+ mkdir -p "$WORKDIR/staging/repo1" "$WORKDIR/staging/repo2/sub"
+ touch \
+ "$WORKDIR/staging/repo1/file1" \
+ "$WORKDIR/staging/repo1/file2" \
+ "$WORKDIR/staging/repo2/file with spaces" \
+ "$WORKDIR/staging/repo2/sub/subfolder"
+ unset WORKDIR
+ LC_ALL=C librerelease -l >"$tmpdir/stdout" 2>"$tmpdir/stderr" || status=$?
+
+ [[ $status != 0 ]]
+ empty "$tmpdir/stdout"
+ grep GPGKEY "$tmpdir/stderr"
+}