provider-options.test.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { describe, expect, test } from "bun:test"
  2. import { ConfigProviderOptionsV1 } from "@opencode-ai/core/v1/config/provider-options"
  3. describe("ConfigProviderOptionsV1", () => {
  4. test("splits provider overlays without changing package settings", () => {
  5. expect(
  6. ConfigProviderOptionsV1.provider({
  7. apiKey: "secret",
  8. baseURL: "https://openai.example/v1",
  9. organization: "org",
  10. headers: { "x-test": "1", invalid: true },
  11. body: { store: true },
  12. nested: { camelCase: true },
  13. }),
  14. ).toEqual({
  15. settings: {
  16. apiKey: "secret",
  17. baseURL: "https://openai.example/v1",
  18. organization: "org",
  19. nested: { camelCase: true },
  20. },
  21. headers: { "x-test": "1" },
  22. body: { store: true },
  23. })
  24. })
  25. test("keeps model and variant options unchanged", () => {
  26. expect(
  27. ConfigProviderOptionsV1.model({
  28. reasoningEffort: "high",
  29. taskBudget: 1024,
  30. metadata: { userId: "user" },
  31. }),
  32. ).toEqual({
  33. reasoningEffort: "high",
  34. taskBudget: 1024,
  35. metadata: { userId: "user" },
  36. })
  37. })
  38. test("uses mechanical lowering for custom provider options", () => {
  39. expect(ConfigProviderOptionsV1.provider({ enabled: true })).toEqual({
  40. settings: { enabled: true },
  41. headers: undefined,
  42. body: undefined,
  43. })
  44. })
  45. })