server.test.ts 860 B

1234567891011121314151617181920212223
  1. import { describe, expect, test } from "bun:test"
  2. import { authFromToken, authTokenFromCredentials } from "./server"
  3. describe("authFromToken", () => {
  4. test("decodes basic auth credentials from auth_token", () => {
  5. expect(authFromToken(btoa("kit:secret"))).toEqual({ username: "kit", password: "secret" })
  6. })
  7. test("defaults blank username to opencode", () => {
  8. expect(authFromToken(btoa(":secret"))).toEqual({ username: "opencode", password: "secret" })
  9. })
  10. test("ignores malformed tokens", () => {
  11. expect(authFromToken("not base64")).toBeUndefined()
  12. expect(authFromToken(btoa("missing-separator"))).toBeUndefined()
  13. })
  14. })
  15. describe("authTokenFromCredentials", () => {
  16. test("encodes credentials with the default username", () => {
  17. expect(authTokenFromCredentials({ password: "secret" })).toBe(btoa("opencode:secret"))
  18. })
  19. })