diff options
Diffstat (limited to 'test/cases/librerelease.bats')
-rw-r--r-- | test/cases/librerelease.bats | 59 |
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" +} |