Skip to content

Commit 8098af2

Browse files
committed
Add test of min-required version with -chdir
1 parent 7893f15 commit 8098af2

2 files changed

Lines changed: 34 additions & 1 deletion

File tree

lib/helpers.sh

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,20 @@ export -f curlw;
8484

8585
function check_active_version() {
8686
local v="${1}";
87-
[ -n "$(${TFENV_ROOT}/bin/terraform version | grep -E "^Terraform v${v}((-dev)|( \([a-f0-9]+\)))?$")" ];
87+
local maybe_chdir=;
88+
if [ -n "${2:-}" ]; then
89+
maybe_chdir="-chdir=${2}";
90+
fi;
91+
92+
local active_version="$(${TFENV_ROOT}/bin/terraform ${maybe_chdir} version | grep '^Terraform')";
93+
94+
if ! grep -E "^Terraform v${v}((-dev)|( \([a-f0-9]+\)))?\$" <(echo "${active_version}"); then
95+
log 'debug' "Expected version ${v} but found ${active_version}";
96+
return 1;
97+
fi;
98+
99+
log 'debug' "Active version ${v} as expected";
100+
return 0;
88101
};
89102
export -f check_active_version;
90103

@@ -113,6 +126,8 @@ function cleanup() {
113126
rm -rf ./.terraform-version;
114127
log 'debug' "Deleting ${pwd}/min_required.tf";
115128
rm -rf ./min_required.tf;
129+
log 'debug' "Deleting ${pwd}/chdir-dir";
130+
rm -rf ./chdir-dir;
116131
};
117132
export -f cleanup;
118133

test/test_use_minrequired.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,24 @@ echo 'min-required' > .terraform-version;
120120

121121
cleanup || log 'error' 'Cleanup failed?!';
122122

123+
124+
log 'info' '### Install min-required with TFENV_AUTO_INSTALL & -chdir';
125+
126+
minv='1.1.0';
127+
128+
mkdir -p chdir-dir
129+
echo "terraform {
130+
required_version = \">=${minv}\"
131+
}" >> chdir-dir/min_required.tf;
132+
echo 'min-required' > chdir-dir/.terraform-version
133+
134+
(
135+
TFENV_AUTO_INSTALL=true terraform -chdir=chdir-dir version;
136+
check_active_version "${minv}" chdir-dir;
137+
) || error_and_proceed 'Min required version from -chdir does not match';
138+
139+
cleanup || log 'error' 'Cleanup failed?!';
140+
123141
if [ "${#errors[@]}" -gt 0 ]; then
124142
log 'warn' '===== The following use_minrequired tests failed =====';
125143
for error in "${errors[@]}"; do

0 commit comments

Comments
 (0)