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.bats59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/cases/librerelease.bats b/test/cases/librerelease.bats
index 3b83651..a984d73 100644
--- a/test/cases/librerelease.bats
+++ b/test/cases/librerelease.bats
@@ -165,3 +165,62 @@ teardown() {
diff -u "$tmpdir/pwd.txt" "$tmpdir/prerelease.txt"
diff -u "$tmpdir/pwd.txt" "$tmpdir/postrelease.txt"
}
+
+@test "librerelease notifies pbot" {
+ # Add a stub db-update pbot-say so that when we ssh to localhost it has
+ # something to run.
+ install -Dm755 /dev/stdin "$tmpdir/bin/db-update" <<-eot
+ #!/bin/bash
+ {
+ printf '%s\n' "\$DBSCRIPTS_CONFIG"
+ readlink -f -- "\$STAGING"
+ find "\$STAGING" -printf '%P\n' | LC_COLLATE=C sort
+ } > ${tmpdir@Q}/log.txt
+ eot
+ install -Dm755 /dev/stdin "$tmpdir/bin/pbot-say" <<-eot
+ #!/bin/bash
+ echo "\$*" >${tmpdir@Q}/pbot.txt
+ eot
+ PATH=$tmpdir/bin:$PATH
+
+ # Log which directories the hooks are run in.
+ cat >> "$XDG_CONFIG_HOME/libretools/libretools.conf" <<-eot
+ HOOKPRERELEASE='pwd > ${tmpdir@Q}/prerelease.txt'
+ HOOKPOSTRELEASE='pwd > ${tmpdir@Q}/postrelease.txt'
+ eot
+
+ # Make some files to stage
+ local 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"
+
+ # Run
+ librerelease
+
+ # Make sure everything went OK
+ pwd > "$tmpdir/pwd.txt"
+ cat > "$tmpdir/log-correct.txt" <<-eot
+ /etc/dbscripts/config.local.phony
+ $(readlink -f -- "$tmpdir/srv-staging")
+
+ repo1
+ repo1/file1
+ repo1/file1.sig
+ repo1/file2
+ repo1/file2.sig
+ repo2
+ repo2/file with spaces
+ repo2/file with spaces.sig
+ repo2/sub
+ repo2/sub/subfolder
+ repo2/sub/subfolder.sig
+ eot
+ diff -u "$tmpdir/log-correct.txt" "$tmpdir/log.txt"
+ diff -u "$tmpdir/pwd.txt" "$tmpdir/prerelease.txt"
+ diff -u "$tmpdir/pwd.txt" "$tmpdir/postrelease.txt"
+ grep 'just published' "$tmpdir/pbot.txt"
+}