From 2a17237a962513870f616db2df45737baf5d40aa Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Wed, 29 Jun 2022 11:58:51 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20Add=20tests=20for=20XDG=20base?= =?UTF-8?q?=20directory=20adherence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added simple tests for database and cache locations. Moved test PATH setup to new file-level function which should slightly speed up testing and makes more sense conceptually to set the bemoji executable to be in the path once for all tests. --- test/bemoji.bats | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/test/bemoji.bats b/test/bemoji.bats index 0a87288..cff3af6 100644 --- a/test/bemoji.bats +++ b/test/bemoji.bats @@ -1,13 +1,15 @@ #!/usr/bin/env bash +setup_file() { + # make bemoji executable from anywhere relative to current testfile + TEST_DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )" + PATH="$TEST_DIR/..:$PATH" +} + setup() { load 'test_helper/bats-support/load' load 'test_helper/bats-assert/load' - # make bemoji executable from anywhere relative to current testfile - TEST_DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )" - PATH="$TEST_DIR/..:$PATH" - # mock out interactive picker for static emoji return export BEMOJI_PICKER_CMD="echo ❤️" @@ -18,7 +20,7 @@ setup() { cat "$BATS_TEST_DIRNAME/resources/test_emoji.txt" > "$BEMOJI_DB_LOCATION/emoji.txt" } -@test "test can run script" { +@test "can run script" { export BEMOJI_CLIP_CMD="echo clip test only" # closing FD3 manually to prevent hangs, see # https://bats-core.readthedocs.io/en/stable/writing-tests.html#file-descriptor-3-read-this-if-bats-hangs @@ -26,7 +28,7 @@ setup() { assert_success } -@test "test receives custom picker mock output" { +@test "can receive custom picker mock output" { run bemoji -e 3>&- assert_output "❤️" } @@ -47,7 +49,7 @@ database=$BATS_TEST_TMPDIR/xdb-db/bemoji " } -@test "sets XDG directory for cache by default" { +@test "sets XDG directory for history by default" { unset BEMOJI_CACHE_LOCATION export XDG_CACHE_HOME="$BATS_TEST_TMPDIR/xdb-cache" run bemoji -v @@ -55,6 +57,21 @@ database=$BATS_TEST_TMPDIR/xdb-db/bemoji history=$BATS_TEST_TMPDIR/xdb-cache/bemoji-history.txt$" } +@test "falls back to default db directory if no XDG found" { + unset BEMOJI_DB_LOCATION + run bemoji -v + assert_output --regexp " +database=$HOME/.local/share/bemoji +" +} + +@test "falls back to default history location if no XDG found" { + unset BEMOJI_CACHE_LOCATION + run bemoji -v + assert_output --regexp " +history=$HOME/.cache/bemoji-history.txt$" +} + @test "BEMOJI_DB_LOCATION sets correct db directory" { run bemoji -v assert_output --regexp "