|
|
@@ -194,8 +194,9 @@ describe("installation", () => {
|
|
|
testEffect(
|
|
|
testLayer(
|
|
|
() => new Response("install script with token=secret", { status: 200 }),
|
|
|
- (cmd) => {
|
|
|
- if (cmd === "bash") return { code: 1, stderr: "script output with token=secret" }
|
|
|
+ (cmd, args) => {
|
|
|
+ if (cmd === "bash" && args[0] === "--version") return "GNU bash"
|
|
|
+ if (cmd === "bash" || cmd === "sh") return { code: 1, stderr: "script output with token=secret" }
|
|
|
return ""
|
|
|
},
|
|
|
),
|
|
|
@@ -209,5 +210,21 @@ describe("installation", () => {
|
|
|
expect(error.stderr).not.toContain("script output")
|
|
|
}),
|
|
|
)
|
|
|
+
|
|
|
+ testEffect(
|
|
|
+ testLayer(
|
|
|
+ () => new Response("install script", { status: 200 }),
|
|
|
+ (cmd, args) => {
|
|
|
+ if (cmd === "bash" && args[0] === "--version") return { code: 1, stderr: "missing" }
|
|
|
+ if (cmd === "bash") return { code: 1, stderr: "should not execute installer with bash" }
|
|
|
+ if (cmd === "sh") return "ok"
|
|
|
+ return ""
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ).effect("falls back to sh when bash is unavailable during curl upgrade", () =>
|
|
|
+ Effect.gen(function* () {
|
|
|
+ yield* Installation.use.upgrade("curl", "9.9.9")
|
|
|
+ }),
|
|
|
+ )
|
|
|
})
|
|
|
})
|