mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-08 20:23:19 +00:00
30 lines
1 KiB
TypeScript
30 lines
1 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import path from "node:path"
|
|
|
|
describe("auth command", () => {
|
|
test("registers login", async () => {
|
|
const [auth, login] = await Promise.all([cli(["auth", "--help"]), cli(["auth", "login", "--help"])])
|
|
|
|
expect(auth.exitCode).toBe(0)
|
|
expect(auth.stdout).toContain("login")
|
|
expect(auth.stdout).toContain("Log in to a well-known authentication provider")
|
|
expect(auth.stdout).not.toContain("connect")
|
|
expect(login.exitCode).toBe(0)
|
|
expect(login.stdout).toContain("opencode auth login [flags] <url>")
|
|
expect(login.stdout).toContain("Well-known provider URL")
|
|
})
|
|
})
|
|
|
|
async function cli(args: string[]) {
|
|
const child = Bun.spawn([process.execPath, "run", "src/index.ts", ...args], {
|
|
cwd: path.join(import.meta.dir, ".."),
|
|
stdout: "pipe",
|
|
stderr: "pipe",
|
|
})
|
|
const [stdout, stderr, exitCode] = await Promise.all([
|
|
new Response(child.stdout).text(),
|
|
new Response(child.stderr).text(),
|
|
child.exited,
|
|
])
|
|
return { stdout, stderr, exitCode }
|
|
}
|