helmfile/test/integration/test-cases/issue-2431.sh

42 lines
1.5 KiB
Bash

#!/usr/bin/env bash
# Test for issue #2431: Local chart with external dependencies
#
# helmfile.yaml has repos configured (vector), but NOT the repo that the
# local chart depends on (wiremind). The fix ensures that:
# 1. helm dep build does NOT receive --skip-refresh for local charts
# 2. helmfile template succeeds without "no cached repository" error
#
# This replicates the exact scenario from issue #2431.
issue_2431_input_dir="${cases_dir}/issue-2431/input"
issue_2431_tmp=$(mktemp -d)
issue_2431_output="${issue_2431_tmp}/template.log"
cleanup_issue_2431() {
rm -rf "${issue_2431_tmp}"
}
trap cleanup_issue_2431 EXIT
test_start "issue-2431: Local chart with external dependency not in helmfile.yaml"
info "Running helmfile template: local chart depends on wiremind repo (not configured in helmfile.yaml)"
${helmfile} -f "${issue_2431_input_dir}/helmfile.yaml" -e karma template > "${issue_2431_output}" 2>&1 || {
code=$?
cat "${issue_2431_output}"
# Check if the failure is due to "no cached repository" or "no repository definition" error
if grep -q "no cached repository" "${issue_2431_output}" || grep -q "no repository definition" "${issue_2431_output}"; then
fail "Issue #2431 regression: helm dep build received --skip-refresh incorrectly for local chart"
fi
fail "helmfile template failed with exit code ${code}"
}
info "SUCCESS: helmfile template completed successfully"
info "Template output:"
cat "${issue_2431_output}"
trap - EXIT
test_pass "issue-2431: Local chart with external dependency not in helmfile.yaml"