import { script } from "./shellcode/script" import { Bash, Fish, PowerShell, WinCmd, Zsh } from "./shellcode/shells" import testCwd from "./shellcode/test-cwd" import fs from "node:fs/promises" import path from "node:path" import describe from "./describe" for (const shell of [Bash, Zsh, Fish, PowerShell, WinCmd]) { describe(shell, () => { test("`exec` usage", async () => { await fs.writeFile(path.join(testCwd(), ".nvmrc"), "v8.10.0") await script(shell) .then(shell.call("fnm", ["install"])) .then(shell.call("fnm", ["install", "v6.10.0"])) .then(shell.call("fnm", ["install", "v10.10.0"])) .then( shell.hasCommandOutput( shell.call("fnm", ["exec", "--", "node", "-v"]), "v8.10.0", "version file exec" ) ) .then( shell.hasCommandOutput( shell.call("fnm", ["exec", "--using=6", "--", "node", "-v"]), "v6.10.0", "exec:6 node -v" ) ) .then( shell.hasCommandOutput( shell.call("fnm", ["exec", "--using=10", "--", "node", "-v"]), "v10.10.0", "exec:6 node -v" ) ) .takeSnapshot(shell) .execute(shell) }) }) }