summaryrefslogtreecommitdiffstats
path: root/test/integration_test.sh
blob: fd5ba987f04eb017defdfb6bd37613fd481580e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env bash

NAVI_BIN="${SCRIPT_DIR}/navi"
TEST_DIR="${SCRIPT_DIR}/test"

_navi() {
   "$NAVI_BIN" "$@"
}

fzf_mock() {
   head -n1 | sed 's/\x1b\[[0-9;]*m//g'
}

assert_version() {
   local -r version="$(cat "$NAVI_BIN" | grep VERSION | cut -d'=' -f2 | tr -d '"')"

   _navi --version \
      | test::equals "$version"
}

assert_help() {
   _navi --help \
      | grep -q 'Options:'
}

assert_home() {
   _navi home \
      | grep -q '/'
}

assert_best() {
   _navi best constant --path "$TEST_DIR" \
      | test::equals 42
}

assert_query() {
   NAVI_ENV="test" _navi --path "$TEST_DIR" \
      | test::equals "2 12"
}

export HAS_FZF="$(command_exists fzf && echo true || echo false)"

test::fzf() {
   if $HAS_FZF; then
      test::run "$@"
   else
      test::skip "$@"
   fi
}

test::set_suite "integration"
export -f fzf_mock
test::run "version" assert_version
test::run "help" assert_help
test::run "home" assert_home
test::fzf "best" assert_best # FZF setup needed in CircleCI
test::fzf "query" assert_query # FZF setup needed in CircleCI