#!/usr/bin/env roundup describe libreblacklist before() { tmpdir=$(mktemp -d --tmpdir test-libreblacklist.XXXXXXXXXXXX) stat=0 } after() { rm -rf -- "$tmpdir" "$XDG_CACHE_HOME" "$XDG_CONFIG_HOME" } it_works_with_just_pkgname() { v="$(libreblacklist normalize <<$XDG_CONFIG_HOME/libretools/libretools.conf libreblacklist update >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat != 0 ]] [[ -z "$(cat $tmpdir/stdout)" ]] [[ -n "$(cat $tmpdir/stderr)" ]] } it_fails_cat_when_there_is_no_blacklist_or_network() { mkdir -p $XDG_CONFIG_HOME/libretools echo "BLACKLIST='phony://example.com'" >$XDG_CONFIG_HOME/libretools/libretools.conf libreblacklist cat >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat != 0 ]] [[ -z "$(cat $tmpdir/stdout)" ]] [[ -n "$(cat $tmpdir/stderr)" ]] } it_displays_help_and_fails_with_no_args() { libreblacklist >$tmpdir/stdout 2>$tmpdir/stderr || stat=$? [[ $stat != 0 ]] [[ -z "$(cat $tmpdir/stdout)" ]] [[ "$(sed 1q $tmpdir/stderr)" =~ 'Usage: libreblacklist ' ]] } it_displays_help_when_given_h() { libreblacklist -h >$tmpdir/stdout 2>$tmpdir/stderr [[ "$(sed 1q $tmpdir/stdout)" =~ 'Usage: libreblacklist ' ]] [[ -z "$(cat $tmpdir/stderr)" ]] } it_displays_help_when_given_h_cat() { libreblacklist -h cat >$tmpdir/stdout 2>$tmpdir/stderr [[ "$(sed 1q $tmpdir/stdout)" =~ 'Usage: libreblacklist cat' ]] [[ -z "$(cat $tmpdir/stderr)" ]] } # TODO: test blacklist-update, but I don't want tests to use network