Skip to content

Commit 77715a8

Browse files
authored
feat: add test coverage (#7)
1 parent a70ee71 commit 77715a8

File tree

5 files changed

+239
-0
lines changed

5 files changed

+239
-0
lines changed

test/detect_test.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
6+
source $SCRIPT_DIR/.test_support.sh
7+
8+
# TESTS
9+
######################
10+
suite "bin/detect"
11+
12+
test "exits 0 when mix.exs exists"
13+
touch "${build_dir}/mix.exs"
14+
15+
${build_pack_dir}/bin/detect "${build_dir}" > /dev/null
16+
[ $? -eq 0 ]
17+
18+
test "outputs 'Core Releases' when mix.exs exists"
19+
result=$(${build_pack_dir}/bin/detect "${build_dir}")
20+
[ "$result" == "Core Releases" ]
21+
22+
test "exits 1 when mix.exs does not exist"
23+
rm -f "${build_dir}/mix.exs"
24+
25+
set +e
26+
${build_pack_dir}/bin/detect "${build_dir}" > /dev/null 2>&1
27+
exit_code=$?
28+
set -e
29+
30+
[ $exit_code -eq 1 ]
31+
32+
33+
34+
PASSED_ALL_TESTS=true

test/distillery_command_test.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
6+
source $SCRIPT_DIR/.test_support.sh
7+
8+
# include source file
9+
source $SCRIPT_DIR/../lib/build.sh
10+
11+
# override functions
12+
output_line() {
13+
/bin/true
14+
}
15+
output_section() {
16+
/bin/true
17+
}
18+
19+
# TESTS
20+
######################
21+
suite "distillery_mix_release_command()"
22+
23+
test "returns 'release' when distillery is not available"
24+
# mix help distillery.release will fail in test env
25+
result=$(distillery_mix_release_command)
26+
27+
[ "$result" == "release" ]
28+
29+
30+
31+
PASSED_ALL_TESTS=true

test/export_env_vars_test.sh

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
6+
source $SCRIPT_DIR/.test_support.sh
7+
8+
# include source file
9+
source $SCRIPT_DIR/../lib/build.sh
10+
11+
# override functions
12+
output_line() {
13+
/bin/true
14+
}
15+
output_section() {
16+
/bin/true
17+
}
18+
19+
# TESTS
20+
######################
21+
suite "export_env_vars()"
22+
23+
test "exports all vars from env directory"
24+
env_path="${TEST_DIR}/env_vars"
25+
mkdir -p "$env_path"
26+
echo "hello" > "$env_path/MY_VAR"
27+
echo "world" > "$env_path/OTHER_VAR"
28+
29+
unset MY_VAR OTHER_VAR
30+
export_env_vars
31+
32+
[ "$MY_VAR" == "hello" ]
33+
[ "$OTHER_VAR" == "world" ]
34+
35+
test "respects blacklist regex"
36+
env_path="${TEST_DIR}/env_vars2"
37+
mkdir -p "$env_path"
38+
echo "/custom/path" > "$env_path/PATH"
39+
echo "someval" > "$env_path/SAFE_VAR"
40+
41+
unset SAFE_VAR
42+
old_path="$PATH"
43+
export_env_vars
44+
45+
[ "$PATH" == "$old_path" ]
46+
[ "$SAFE_VAR" == "someval" ]
47+
48+
test "respects whitelist regex"
49+
env_path="${TEST_DIR}/env_vars3"
50+
mkdir -p "$env_path"
51+
echo "yes" > "$env_path/ALLOWED_VAR"
52+
echo "no" > "$env_path/BLOCKED_VAR"
53+
54+
unset ALLOWED_VAR BLOCKED_VAR
55+
export_env_vars "" "^ALLOWED"
56+
57+
[ "$ALLOWED_VAR" == "yes" ]
58+
[ -z "$BLOCKED_VAR" ]
59+
60+
test "handles empty env directory"
61+
env_path="${TEST_DIR}/env_empty"
62+
mkdir -p "$env_path"
63+
64+
export_env_vars
65+
66+
test "handles missing env directory"
67+
env_path="${TEST_DIR}/nonexistent_env_dir"
68+
69+
export_env_vars
70+
71+
72+
73+
PASSED_ALL_TESTS=true

test/export_mix_env_test.sh

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
6+
source $SCRIPT_DIR/.test_support.sh
7+
8+
# include source file
9+
source $SCRIPT_DIR/../lib/build.sh
10+
11+
# override functions
12+
output_line() {
13+
/bin/true
14+
}
15+
output_section() {
16+
/bin/true
17+
}
18+
19+
# TESTS
20+
######################
21+
suite "export_mix_env()"
22+
23+
test "reads MIX_ENV from env file"
24+
unset MIX_ENV
25+
env_path="${TEST_DIR}/env_mix1"
26+
mkdir -p "$env_path"
27+
echo "staging" > "$env_path/MIX_ENV"
28+
29+
export_mix_env
30+
31+
[ "$MIX_ENV" == "staging" ]
32+
33+
test "defaults to prod when no file exists"
34+
unset MIX_ENV
35+
env_path="${TEST_DIR}/env_mix2"
36+
37+
export_mix_env
38+
39+
[ "$MIX_ENV" == "prod" ]
40+
41+
test "does not override existing MIX_ENV"
42+
export MIX_ENV="custom"
43+
env_path="${TEST_DIR}/env_mix3"
44+
mkdir -p "$env_path"
45+
echo "staging" > "$env_path/MIX_ENV"
46+
47+
export_mix_env
48+
49+
[ "$MIX_ENV" == "custom" ]
50+
51+
test "accepts default parameter"
52+
unset MIX_ENV
53+
env_path="${TEST_DIR}/env_mix4"
54+
55+
export_mix_env "dev"
56+
57+
[ "$MIX_ENV" == "dev" ]
58+
59+
60+
61+
PASSED_ALL_TESTS=true

test/release_test.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
6+
source $SCRIPT_DIR/.test_support.sh
7+
8+
# TESTS
9+
######################
10+
suite "bin/release"
11+
12+
test "outputs valid YAML structure"
13+
export GIGALIXIR_APP_NAME="my_app"
14+
result=$(bash ${build_pack_dir}/bin/release)
15+
16+
echo "$result" | grep -q "^---$"
17+
echo "$result" | grep -q "addons:"
18+
echo "$result" | grep -q "default_process_types:"
19+
20+
test "includes app name in web command"
21+
export GIGALIXIR_APP_NAME="my_app"
22+
result=$(bash ${build_pack_dir}/bin/release)
23+
24+
echo "$result" | grep -q "/app/bin/my_app start"
25+
26+
test "uses GIGALIXIR_APP_NAME variable"
27+
export GIGALIXIR_APP_NAME="other_app"
28+
result=$(bash ${build_pack_dir}/bin/release)
29+
30+
echo "$result" | grep -q "/app/bin/other_app start"
31+
32+
test "addons is empty array"
33+
export GIGALIXIR_APP_NAME="my_app"
34+
result=$(bash ${build_pack_dir}/bin/release)
35+
36+
echo "$result" | grep -q "\[\]"
37+
38+
39+
40+
PASSED_ALL_TESTS=true

0 commit comments

Comments
 (0)