From 891b8aabbf4da2e25fc66df503b85266485b8020 Mon Sep 17 00:00:00 2001 From: southerntofu Date: Wed, 12 Jan 2022 19:18:57 +0100 Subject: [PATCH] Add --inbox and --inbox-folder flags --- tests/22-inbox.bats | 70 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 tests/22-inbox.bats diff --git a/tests/22-inbox.bats b/tests/22-inbox.bats new file mode 100755 index 0000000..1539458 --- /dev/null +++ b/tests/22-inbox.bats @@ -0,0 +1,70 @@ +#! /usr/bin/env bats + +# This is a test file for use with the bats testing framework +# https://github.com/bats-core/bats-core +# On Debian: apt install bats + +function setup { + ORIGDIR="$(pwd)" + TMPDIR="$(mktemp -d)" + + # If no $FORGEBUILD is supplied in ENV, use the default + # (otherwise you can't `bats ./tests/` manually) + [ -z "$FORGEBUILD" ] && FORGEBUILD="forgebuild" + + # Setup forgebuild tasks + FORGEBUILDDIR="$TMPDIR"/forgebuild + mkdir $FORGEBUILDDIR + echo "date +%s%N > $TMPDIR/forgebuild-time" > $FORGEBUILDDIR/time + chmod +x $FORGEBUILDDIR/time + echo "echo \$(pwd) > $TMPDIR/forgebuild-pwd" > $FORGEBUILDDIR/pwd + chmod +x $FORGEBUILDDIR/pwd + + # Setup settings + mkdir $FORGEBUILDDIR/config + echo "default" > $FORGEBUILDDIR/config/entry + mkdir $FORGEBUILDDIR/$HOSTNAME + echo "host" > $FORGEBUILDDIR/$HOSTNAME/entry +} + +function teardown { + cd $ORIGDIR + #if [ -d $TMPDIR ]; then rm -rf $TMPDIR; fi +} + +@test "forgebuild --inbox only triggers tasks with a corresponding task.inbox file" { + $FORGEBUILD -b $FORGEBUILDDIR --inbox + [ ! -f $TMPDIR/forgebuild-time ] + [ ! -f $TMPDIR/forgebuild-pwd ] + touch $FORGEBUILDDIR/time.inbox + $FORGEBUILD -b $FORGEBUILDDIR --inbox + [ -f $TMPDIR/forgebuild-time ] + [ ! -f $TMPDIR/forgebuild-pwd ] +} + +@test "Task from inbox is not run twice" { + touch $FORGEBUILDDIR/time.inbox + $FORGEBUILD -b $FORGEBUILDDIR --inbox + [ -f $TMPDIR/forgebuild-time ] + [ ! -f $TMPDIR/forgebuild-pwd ] + rm $TMPDIR/forgebuild-time + rm $FORGEBUILDDIR/time.done + $FORGEBUILD -b $FORGEBUILDDIR --inbox + [ ! -f $TMPDIR/forgebuild-time ] +} + +@test "forgebuild --inbox-folder can specify a folder as inbox" { + INBOXFOLDER="$TMPDIR/inbox" + mkdir $INBOXFOLDER + $FORGEBUILD -b $FORGEBUILDDIR --inbox-folder $INBOXFOLDER + [ ! -f $TMPDIR/forgebuild-time ] + [ ! -f $TMPDIR/forgebuild-pwd ] + touch $INBOXFOLDER/time.inbox + $FORGEBUILD -b $FORGEBUILDDIR --inbox-folder $INBOXFOLDER + [ -f $TMPDIR/forgebuild-time ] + [ ! -f $TMPDIR/forgebuild-pwd ] + rm $TMPDIR/forgebuild-time + $FORGEBUILD -b $FORGEBUILDDIR --inbox-folder $INBOXFOLDER + [ ! -f $TMPDIR/forgebuild-time ] + [ ! -f $TMPDIR/forgebuild-pwd ] +}