From bf2e5ac3efc1257367243988c8aa185538961e9e Mon Sep 17 00:00:00 2001 From: kevin zhuang Date: Mon, 22 Jun 2020 10:05:26 +1000 Subject: [PATCH] test(fadd): mock success, more test coverage --- scripts/fadd | 2 +- tests/fadd.bats | 31 ++++++++++++++++++++++++++++++- tests/fzf | 9 +++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100755 tests/fzf diff --git a/scripts/fadd b/scripts/fadd index 8fe4a30..74b8a06 100755 --- a/scripts/fadd +++ b/scripts/fadd @@ -60,7 +60,7 @@ while [ "$#" -gt 0 ]; do exit 0 ;; *) - echo "Invalid option: $1" 1>&2 + echo "Invalid option: $1" >&2 usage exit 1 ;; diff --git a/tests/fadd.bats b/tests/fadd.bats index 7074862..704867a 100755 --- a/tests/fadd.bats +++ b/tests/fadd.bats @@ -13,6 +13,21 @@ no_file_selected() { bash "${BATS_TEST_DIRNAME}"/../dotbare fadd -d } +stage_selected_file() { + export PATH="${BATS_TEST_DIRNAME}:$PATH" + bash "${BATS_TEST_DIRNAME}"/../dotbare fadd -f +} + +stage_selected_dir() { + export PATH="${BATS_TEST_DIRNAME}:$PATH" + bash "${BATS_TEST_DIRNAME}"/../dotbare fadd --dir +} + +stage_modified_file() { + export PATH="${BATS_TEST_DIRNAME}:$PATH" + bash "${BATS_TEST_DIRNAME}"/../dotbare fadd --dir +} + @test "fadd help" { run help [ "${status}" -eq 0 ] @@ -22,10 +37,24 @@ no_file_selected() { @test "fadd invalid option" { run invalid_option [ "${status}" -eq 1 ] - [ "${lines[0]}" = "Invalid option: p" ] + [ "${lines[0]}" = "Invalid option: -p" ] } @test "fadd no file selected" { run no_file_selected [ "${status}" -eq 1 ] } + +@test "fadd stage selected file" { + run stage_selected_file + [ "${status}" -eq 129 ] + result=$(echo "${lines[0]}" | tr '`' "'") + [ "${result}" = "error: unknown option 'multi --preview head -200 {}'" ] +} + +@test "fadd stage selected dir" { + run stage_selected_dir + [ "${status}" -eq 129 ] + result=$(echo "${lines[0]}" | tr '`' "'") + [ "${result}" = "error: unknown option 'multi --preview tree -L 1 -C --dirsfirst {}'" ] +} diff --git a/tests/fzf b/tests/fzf new file mode 100755 index 0000000..0fde7a1 --- /dev/null +++ b/tests/fzf @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +# +# This script is for mocking fzf for testing, +# it will stop fzf for goin into a interactive mode +# +# usage: +# export PATH="${BATS_TEST_DIRNAME}:$PATH" + +echo "$@"