fix: correct test parameter mismatches causing 8 persistent test failures (#1455)

_multi_creds_validate tests in two files were missing the required
help_url parameter (3rd positional arg), causing env vars intended as
the 4th+ args to be consumed as help_url. This meant unset-on-failure
tests only unset 1 of N vars instead of all N.

inject_env_vars_ssh/local tests expected the old hardcoded path
/tmp/env_config but the code now uses randomized /tmp/spawn_env_*
names (a prior security fix to prevent symlink race conditions).

Agent: code-health

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
A 2026-02-18 21:11:26 -08:00 committed by GitHub
parent 76b172ea41
commit f9b07d86de
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 20 additions and 19 deletions

View file

@ -571,7 +571,7 @@ describe("_multi_creds_load_config", () => {
describe("_multi_creds_validate", () => {
it("should return 0 when no test function provided (empty string)", () => {
const result = runBash(`
_multi_creds_validate "" "TestProvider" VAR_A VAR_B
_multi_creds_validate "" "TestProvider" "https://example.com" VAR_A VAR_B
`);
expect(result.exitCode).toBe(0);
});
@ -580,7 +580,7 @@ describe("_multi_creds_validate", () => {
const result = runBash(`
test_ok() { return 0; }
export VAR_A="a"
_multi_creds_validate test_ok "TestProvider" VAR_A
_multi_creds_validate test_ok "TestProvider" "https://example.com" VAR_A
`);
expect(result.exitCode).toBe(0);
});
@ -589,7 +589,7 @@ describe("_multi_creds_validate", () => {
const result = runBash(`
test_fail() { return 1; }
export VAR_A="a"
_multi_creds_validate test_fail "TestProvider" VAR_A 2>/dev/null
_multi_creds_validate test_fail "TestProvider" "https://example.com" VAR_A 2>/dev/null
`);
expect(result.exitCode).toBe(1);
});
@ -599,7 +599,7 @@ describe("_multi_creds_validate", () => {
test_fail() { return 1; }
export VAR_A="a"
export VAR_B="b"
_multi_creds_validate test_fail "TestProvider" VAR_A VAR_B 2>/dev/null
_multi_creds_validate test_fail "TestProvider" "https://example.com" VAR_A VAR_B 2>/dev/null
echo "A=\${VAR_A:-UNSET}"
echo "B=\${VAR_B:-UNSET}"
`);
@ -612,7 +612,7 @@ describe("_multi_creds_validate", () => {
test_ok() { return 0; }
export VAR_A="kept"
export VAR_B="also-kept"
_multi_creds_validate test_ok "TestProvider" VAR_A VAR_B 2>/dev/null
_multi_creds_validate test_ok "TestProvider" "https://example.com" VAR_A VAR_B 2>/dev/null
echo "A=$VAR_A"
echo "B=$VAR_B"
`);
@ -624,7 +624,7 @@ describe("_multi_creds_validate", () => {
const result = runBash(`
test_fail() { return 1; }
export VAR_A="a"
_multi_creds_validate test_fail "Contabo" VAR_A 2>&1
_multi_creds_validate test_fail "Contabo" "https://example.com" VAR_A 2>&1
`);
expect(result.stdout).toContain("Contabo");
expect(result.stdout).toContain("Invalid");

View file

@ -69,7 +69,7 @@ inject_env_vars_ssh "192.168.1.1" mock_upload mock_run "MY_KEY=my_value"
`);
expect(result.exitCode).toBe(0);
expect(result.stdout).toContain("UPLOAD: 192.168.1.1");
expect(result.stdout).toContain("/tmp/env_config");
expect(result.stdout).toContain("/tmp/spawn_env_");
expect(result.stdout).toContain("RUN: 192.168.1.1");
expect(result.stdout).toContain(".zshrc");
} finally {
@ -155,8 +155,9 @@ inject_env_vars_local mock_upload mock_run "MY_KEY=my_value"
expect(result.exitCode).toBe(0);
// inject_env_vars_local does NOT pass server_ip - upload gets (local_path, remote_path)
expect(result.stdout).toContain("UPLOAD_ARGS:");
expect(result.stdout).toContain("/tmp/env_config");
expect(result.stdout).toContain("cat /tmp/env_config >> ~/.bashrc && cat /tmp/env_config >> ~/.zshrc");
expect(result.stdout).toContain("/tmp/spawn_env_");
// The run command should append the temp file to bashrc and zshrc
expect(result.stdout).toMatch(/cat '\/tmp\/spawn_env_[^']+' >> ~\/.bashrc && cat '\/tmp\/spawn_env_[^']+' >> ~\/.zshrc/);
});
it("should generate correct env config content", () => {

View file

@ -266,7 +266,7 @@ describe("_multi_creds_validate", () => {
it("should return 0 when test function succeeds", () => {
const result = runBash(`
test_pass() { return 0; }
_multi_creds_validate test_pass "TestProvider"
_multi_creds_validate test_pass "TestProvider" "https://example.com"
`);
expect(result.exitCode).toBe(0);
});
@ -274,13 +274,13 @@ describe("_multi_creds_validate", () => {
it("should return 1 when test function fails", () => {
const result = runBash(`
test_fail() { return 1; }
_multi_creds_validate test_fail "TestProvider" 2>/dev/null
_multi_creds_validate test_fail "TestProvider" "https://example.com" 2>/dev/null
`);
expect(result.exitCode).toBe(1);
});
it("should return 0 when test function is empty (no validation)", () => {
const result = runBash(`_multi_creds_validate "" "TestProvider"`);
const result = runBash(`_multi_creds_validate "" "TestProvider" "https://example.com"`);
expect(result.exitCode).toBe(0);
});
@ -289,7 +289,7 @@ describe("_multi_creds_validate", () => {
export MY_VAR1="secret1"
export MY_VAR2="secret2"
test_fail() { return 1; }
_multi_creds_validate test_fail "TestProvider" MY_VAR1 MY_VAR2 2>/dev/null
_multi_creds_validate test_fail "TestProvider" "https://example.com" MY_VAR1 MY_VAR2 2>/dev/null
echo "VAR1=\${MY_VAR1:-unset}"
echo "VAR2=\${MY_VAR2:-unset}"
`);
@ -302,7 +302,7 @@ describe("_multi_creds_validate", () => {
export MY_VAR1="secret1"
export MY_VAR2="secret2"
test_pass() { return 0; }
_multi_creds_validate test_pass "TestProvider" MY_VAR1 MY_VAR2
_multi_creds_validate test_pass "TestProvider" "https://example.com" MY_VAR1 MY_VAR2
echo "VAR1=\${MY_VAR1:-unset}"
echo "VAR2=\${MY_VAR2:-unset}"
`);
@ -313,7 +313,7 @@ describe("_multi_creds_validate", () => {
it("should show error message with provider name on failure", () => {
const result = runBash(`
test_fail() { return 1; }
_multi_creds_validate test_fail "Contabo" MY_VAR 2>&1
_multi_creds_validate test_fail "Contabo" "https://example.com" MY_VAR 2>&1
`);
expect(result.stdout).toContain("Invalid Contabo credentials");
});
@ -321,7 +321,7 @@ describe("_multi_creds_validate", () => {
it("should show actionable guidance on failure", () => {
const result = runBash(`
test_fail() { return 1; }
_multi_creds_validate test_fail "UpCloud" MY_VAR 2>&1
_multi_creds_validate test_fail "UpCloud" "https://example.com" MY_VAR 2>&1
`);
expect(result.stdout).toContain("expired");
expect(result.stdout).toContain("Re-run");
@ -330,7 +330,7 @@ describe("_multi_creds_validate", () => {
it("should show testing message during validation", () => {
const result = runBash(`
test_pass() { return 0; }
_multi_creds_validate test_pass "Hetzner" 2>&1
_multi_creds_validate test_pass "Hetzner" "https://example.com" 2>&1
`);
expect(result.stdout).toContain("Testing Hetzner credentials");
});
@ -339,7 +339,7 @@ describe("_multi_creds_validate", () => {
const result = runBash(`
export SINGLE_VAR="value"
test_fail() { return 1; }
_multi_creds_validate test_fail "Provider" SINGLE_VAR 2>/dev/null
_multi_creds_validate test_fail "Provider" "https://example.com" SINGLE_VAR 2>/dev/null
echo "\${SINGLE_VAR:-unset}"
`);
expect(result.stdout).toContain("unset");
@ -349,7 +349,7 @@ describe("_multi_creds_validate", () => {
const result = runBash(`
export V1="a" V2="b" V3="c"
test_fail() { return 1; }
_multi_creds_validate test_fail "Provider" V1 V2 V3 2>/dev/null
_multi_creds_validate test_fail "Provider" "https://example.com" V1 V2 V3 2>/dev/null
echo "\${V1:-x}\${V2:-x}\${V3:-x}"
`);
expect(result.stdout).toBe("xxx");