Add --inbox and --inbox-folder flags

This commit is contained in:
southerntofu 2022-01-12 19:18:57 +01:00
parent 88ccb37dfd
commit 891b8aabbf
1 changed files with 70 additions and 0 deletions

70
tests/22-inbox.bats Executable file
View File

@ -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 ]
}