From f5807d9f3a6c96e70912b61fac17120f412b5782 Mon Sep 17 00:00:00 2001 From: ewy Date: Sun, 17 May 2026 01:37:24 +0200 Subject: * integration tests with a pik target to run them * add abstraction for paths to facilitate unit tests * flesh out completion (--install-completion) * do sync init before stateless modes so list knows more --- integration_tests/defaults/.pik/defaults.sh | 3 +++ integration_tests/defaults/.pik/dir/dir.sh | 2 ++ integration_tests/defaults/README.md | 2 ++ integration_tests/defaults/full.test.sh | 6 ++++++ integration_tests/defaults/source.test.sh | 6 ++++++ integration_tests/defaults/source_full.test.sh | 6 ++++++ integration_tests/defaults/subdir.test.sh | 6 ++++++ integration_tests/defaults/subdir_with_source.test.sh | 6 ++++++ integration_tests/simple/.pik/echo.sh | 2 ++ integration_tests/simple/.pik/result.sh | 2 ++ integration_tests/simple/README.md | 1 + integration_tests/simple/echo.test.sh | 5 +++++ integration_tests/simple/echo_full.test.sh | 5 +++++ integration_tests/simple/nonexistent_target.test.sh | 5 +++++ integration_tests/simple/result.test.sh | 5 +++++ 15 files changed, 62 insertions(+) create mode 100644 integration_tests/defaults/.pik/defaults.sh create mode 100644 integration_tests/defaults/.pik/dir/dir.sh create mode 100644 integration_tests/defaults/README.md create mode 100644 integration_tests/defaults/full.test.sh create mode 100644 integration_tests/defaults/source.test.sh create mode 100644 integration_tests/defaults/source_full.test.sh create mode 100644 integration_tests/defaults/subdir.test.sh create mode 100644 integration_tests/defaults/subdir_with_source.test.sh create mode 100644 integration_tests/simple/.pik/echo.sh create mode 100644 integration_tests/simple/.pik/result.sh create mode 100644 integration_tests/simple/README.md create mode 100644 integration_tests/simple/echo.test.sh create mode 100644 integration_tests/simple/echo_full.test.sh create mode 100644 integration_tests/simple/nonexistent_target.test.sh create mode 100644 integration_tests/simple/result.test.sh (limited to 'integration_tests') diff --git a/integration_tests/defaults/.pik/defaults.sh b/integration_tests/defaults/.pik/defaults.sh new file mode 100644 index 0000000..6500c83 --- /dev/null +++ b/integration_tests/defaults/.pik/defaults.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# i have the same name as the source directory +echo "banana" \ No newline at end of file diff --git a/integration_tests/defaults/.pik/dir/dir.sh b/integration_tests/defaults/.pik/dir/dir.sh new file mode 100644 index 0000000..8d6b69b --- /dev/null +++ b/integration_tests/defaults/.pik/dir/dir.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +echo "apple" \ No newline at end of file diff --git a/integration_tests/defaults/README.md b/integration_tests/defaults/README.md new file mode 100644 index 0000000..9aaf7eb --- /dev/null +++ b/integration_tests/defaults/README.md @@ -0,0 +1,2 @@ +these tests check whether pik's default targets (sharing a name with either subdirectory or source folder) are selected +by default. \ No newline at end of file diff --git a/integration_tests/defaults/full.test.sh b/integration_tests/defaults/full.test.sh new file mode 100644 index 0000000..05d3ee4 --- /dev/null +++ b/integration_tests/defaults/full.test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +result="$($PIK defaults dir dir)" +if [[ ! "$result" == *"apple"* ]] ; then + echo "expected apple" >&2 + exit 1 +fi diff --git a/integration_tests/defaults/source.test.sh b/integration_tests/defaults/source.test.sh new file mode 100644 index 0000000..ee966f4 --- /dev/null +++ b/integration_tests/defaults/source.test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +result="$($PIK defaults)" +if [[ ! "$result" == *"banana"* ]] ; then + echo "expected banana" >&2 + exit 1 +fi \ No newline at end of file diff --git a/integration_tests/defaults/source_full.test.sh b/integration_tests/defaults/source_full.test.sh new file mode 100644 index 0000000..91784c4 --- /dev/null +++ b/integration_tests/defaults/source_full.test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +result="$($PIK defaults defaults)" +if [[ ! "$result" == *"banana"* ]] ; then + echo "expected banana" >&2 + exit 1 +fi \ No newline at end of file diff --git a/integration_tests/defaults/subdir.test.sh b/integration_tests/defaults/subdir.test.sh new file mode 100644 index 0000000..6edd874 --- /dev/null +++ b/integration_tests/defaults/subdir.test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +result="$($PIK dir)" +if [[ ! "$result" == *"apple"* ]] ; then + echo "expected apple" >&2 + exit 1 +fi diff --git a/integration_tests/defaults/subdir_with_source.test.sh b/integration_tests/defaults/subdir_with_source.test.sh new file mode 100644 index 0000000..3f41277 --- /dev/null +++ b/integration_tests/defaults/subdir_with_source.test.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +result="$($PIK defaults dir)" +if [[ ! "$result" == *"apple"* ]] ; then + echo "expected apple" >&2 + exit 1 +fi diff --git a/integration_tests/simple/.pik/echo.sh b/integration_tests/simple/.pik/echo.sh new file mode 100644 index 0000000..c8a6153 --- /dev/null +++ b/integration_tests/simple/.pik/echo.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +echo "$@" \ No newline at end of file diff --git a/integration_tests/simple/.pik/result.sh b/integration_tests/simple/.pik/result.sh new file mode 100644 index 0000000..7a534a6 --- /dev/null +++ b/integration_tests/simple/.pik/result.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +echo "banana" \ No newline at end of file diff --git a/integration_tests/simple/README.md b/integration_tests/simple/README.md new file mode 100644 index 0000000..6925e22 --- /dev/null +++ b/integration_tests/simple/README.md @@ -0,0 +1 @@ +these tests try some simple pik usage \ No newline at end of file diff --git a/integration_tests/simple/echo.test.sh b/integration_tests/simple/echo.test.sh new file mode 100644 index 0000000..917a76d --- /dev/null +++ b/integration_tests/simple/echo.test.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +if [[ "$($PIK result)" != *"banana"* ]] ; then + echo "expected banana" 1>&2 + exit 1 +fi \ No newline at end of file diff --git a/integration_tests/simple/echo_full.test.sh b/integration_tests/simple/echo_full.test.sh new file mode 100644 index 0000000..7290cd2 --- /dev/null +++ b/integration_tests/simple/echo_full.test.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +if [[ "$($PIK simple result)" != *"banana"* ]] ; then + echo "expected banana" 1>&2 + exit 1 +fi \ No newline at end of file diff --git a/integration_tests/simple/nonexistent_target.test.sh b/integration_tests/simple/nonexistent_target.test.sh new file mode 100644 index 0000000..4915e77 --- /dev/null +++ b/integration_tests/simple/nonexistent_target.test.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +if [[ "$($PIK 123)" != "" ]] ; then + echo "expected no output" 1>&2 + exit 1 +fi \ No newline at end of file diff --git a/integration_tests/simple/result.test.sh b/integration_tests/simple/result.test.sh new file mode 100644 index 0000000..3d4a2bc --- /dev/null +++ b/integration_tests/simple/result.test.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +if [[ "$($PIK echo asdf)" != *"asdf"* ]] ; then + echo "expected banana" 1>&2 + exit 1 +fi \ No newline at end of file -- cgit v1.3.1