Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions test/detect_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/usr/bin/env bash

set -e

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
source $SCRIPT_DIR/.test_support.sh

# TESTS
######################
suite "bin/detect"

test "exits 0 when mix.exs exists"
touch "${build_dir}/mix.exs"

${build_pack_dir}/bin/detect "${build_dir}" > /dev/null
[ $? -eq 0 ]

test "outputs 'Core Releases' when mix.exs exists"
result=$(${build_pack_dir}/bin/detect "${build_dir}")
[ "$result" == "Core Releases" ]

test "exits 1 when mix.exs does not exist"
rm -f "${build_dir}/mix.exs"

set +e
${build_pack_dir}/bin/detect "${build_dir}" > /dev/null 2>&1
exit_code=$?
set -e

[ $exit_code -eq 1 ]



PASSED_ALL_TESTS=true
31 changes: 31 additions & 0 deletions test/distillery_command_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env bash

set -e

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
source $SCRIPT_DIR/.test_support.sh

# include source file
source $SCRIPT_DIR/../lib/build.sh

# override functions
output_line() {
/bin/true
}
output_section() {
/bin/true
}

# TESTS
######################
suite "distillery_mix_release_command()"

test "returns 'release' when distillery is not available"
# mix help distillery.release will fail in test env
result=$(distillery_mix_release_command)

[ "$result" == "release" ]



PASSED_ALL_TESTS=true
73 changes: 73 additions & 0 deletions test/export_env_vars_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#!/usr/bin/env bash

set -e

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
source $SCRIPT_DIR/.test_support.sh

# include source file
source $SCRIPT_DIR/../lib/build.sh

# override functions
output_line() {
/bin/true
}
output_section() {
/bin/true
}

# TESTS
######################
suite "export_env_vars()"

test "exports all vars from env directory"
env_path="${TEST_DIR}/env_vars"
mkdir -p "$env_path"
echo "hello" > "$env_path/MY_VAR"
echo "world" > "$env_path/OTHER_VAR"

unset MY_VAR OTHER_VAR
export_env_vars

[ "$MY_VAR" == "hello" ]
[ "$OTHER_VAR" == "world" ]

test "respects blacklist regex"
env_path="${TEST_DIR}/env_vars2"
mkdir -p "$env_path"
echo "/custom/path" > "$env_path/PATH"
echo "someval" > "$env_path/SAFE_VAR"

unset SAFE_VAR
old_path="$PATH"
export_env_vars

[ "$PATH" == "$old_path" ]
[ "$SAFE_VAR" == "someval" ]

test "respects whitelist regex"
env_path="${TEST_DIR}/env_vars3"
mkdir -p "$env_path"
echo "yes" > "$env_path/ALLOWED_VAR"
echo "no" > "$env_path/BLOCKED_VAR"

unset ALLOWED_VAR BLOCKED_VAR
export_env_vars "" "^ALLOWED"

[ "$ALLOWED_VAR" == "yes" ]
[ -z "$BLOCKED_VAR" ]

test "handles empty env directory"
env_path="${TEST_DIR}/env_empty"
mkdir -p "$env_path"

export_env_vars

test "handles missing env directory"
env_path="${TEST_DIR}/nonexistent_env_dir"

export_env_vars



PASSED_ALL_TESTS=true
61 changes: 61 additions & 0 deletions test/export_mix_env_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/usr/bin/env bash

set -e

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
source $SCRIPT_DIR/.test_support.sh

# include source file
source $SCRIPT_DIR/../lib/build.sh

# override functions
output_line() {
/bin/true
}
output_section() {
/bin/true
}

# TESTS
######################
suite "export_mix_env()"

test "reads MIX_ENV from env file"
unset MIX_ENV
env_path="${TEST_DIR}/env_mix1"
mkdir -p "$env_path"
echo "staging" > "$env_path/MIX_ENV"

export_mix_env

[ "$MIX_ENV" == "staging" ]

test "defaults to prod when no file exists"
unset MIX_ENV
env_path="${TEST_DIR}/env_mix2"

export_mix_env

[ "$MIX_ENV" == "prod" ]

test "does not override existing MIX_ENV"
export MIX_ENV="custom"
env_path="${TEST_DIR}/env_mix3"
mkdir -p "$env_path"
echo "staging" > "$env_path/MIX_ENV"

export_mix_env

[ "$MIX_ENV" == "custom" ]

test "accepts default parameter"
unset MIX_ENV
env_path="${TEST_DIR}/env_mix4"

export_mix_env "dev"

[ "$MIX_ENV" == "dev" ]



PASSED_ALL_TESTS=true
40 changes: 40 additions & 0 deletions test/release_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/usr/bin/env bash

set -e

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
source $SCRIPT_DIR/.test_support.sh

# TESTS
######################
suite "bin/release"

test "outputs valid YAML structure"
export GIGALIXIR_APP_NAME="my_app"
result=$(bash ${build_pack_dir}/bin/release)

echo "$result" | grep -q "^---$"
echo "$result" | grep -q "addons:"
echo "$result" | grep -q "default_process_types:"

test "includes app name in web command"
export GIGALIXIR_APP_NAME="my_app"
result=$(bash ${build_pack_dir}/bin/release)

echo "$result" | grep -q "/app/bin/my_app start"

test "uses GIGALIXIR_APP_NAME variable"
export GIGALIXIR_APP_NAME="other_app"
result=$(bash ${build_pack_dir}/bin/release)

echo "$result" | grep -q "/app/bin/other_app start"

test "addons is empty array"
export GIGALIXIR_APP_NAME="my_app"
result=$(bash ${build_pack_dir}/bin/release)

echo "$result" | grep -q "\[\]"



PASSED_ALL_TESTS=true
Loading