#!/usr/bin/env bats setup() { SCRIPT_DIR="$(cd "$BATS_TEST_DIRNAME/.." && pwd)" TMP_HOME="$(mktemp -d)" export HOME="$TMP_HOME" STUB_DIR="$TMP_HOME/stubs" mkdir -p "$STUB_DIR" export PATH="$STUB_DIR:$PATH" local bin for bin in swaybg wal qarma notify-send pkill kill; do cat > "$STUB_DIR/$bin" <> "$TMP_HOME/calls.log" exit 0 EOF chmod +x "$STUB_DIR/$bin" done source "$SCRIPT_DIR/wallp" } teardown() { rm -rf "$TMP_HOME" } @test "harness sanity" { [ "x" = "x" ] } @test "expand_tilde expands leading tilde" { run expand_tilde '~/pics/a.png' [ "$status" -eq 0 ] [ "$output" = "$HOME/pics/a.png" ] } @test "expand_tilde leaves absolute path untouched" { run expand_tilde '/abs/b.png' [ "$output" = "/abs/b.png" ] } @test "parse_conf reads keys and expands tilde in paths" { conf="$HOME/c.conf" printf '%s\n' \ '# comment' '' \ 'THEME=mytheme' \ 'OUTPUT_H=DP-1' \ 'OUTPUT_V=DP-3' \ 'DEFAULT_H=~/p/h.png' \ 'DEFAULT_V=/abs/v.png' > "$conf" parse_conf "$conf" [ "$CONF_THEME" = "mytheme" ] [ "$CONF_OUTPUT_H" = "DP-1" ] [ "$CONF_OUTPUT_V" = "DP-3" ] [ "$CONF_DEFAULT_H" = "$HOME/p/h.png" ] [ "$CONF_DEFAULT_V" = "/abs/v.png" ] }