endpoint-policy.test.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { describe, expect, test } from "vitest";
  2. import {
  3. isRawPassthroughEndpointPath,
  4. isRawPassthroughEndpointPolicy,
  5. resolveEndpointPolicy,
  6. } from "@/app/v1/_lib/proxy/endpoint-policy";
  7. import { V1_ENDPOINT_PATHS } from "@/app/v1/_lib/proxy/endpoint-paths";
  8. describe("endpoint-policy", () => {
  9. test("raw passthrough endpoints resolve to identical strict policy", () => {
  10. const countTokensPolicy = resolveEndpointPolicy(V1_ENDPOINT_PATHS.MESSAGES_COUNT_TOKENS);
  11. const compactPolicy = resolveEndpointPolicy(V1_ENDPOINT_PATHS.RESPONSES_COMPACT);
  12. expect(countTokensPolicy).toBe(compactPolicy);
  13. expect(isRawPassthroughEndpointPolicy(countTokensPolicy)).toBe(true);
  14. expect(countTokensPolicy).toEqual({
  15. kind: "raw_passthrough",
  16. guardPreset: "raw_passthrough",
  17. allowRetry: false,
  18. allowProviderSwitch: false,
  19. allowCircuitBreakerAccounting: false,
  20. trackConcurrentRequests: false,
  21. bypassRequestFilters: true,
  22. bypassForwarderPreprocessing: true,
  23. bypassSpecialSettings: true,
  24. bypassResponseRectifier: true,
  25. endpointPoolStrictness: "strict",
  26. });
  27. });
  28. test.each([
  29. "/v1/messages/count_tokens/",
  30. "/V1/MESSAGES/COUNT_TOKENS",
  31. "/v1/responses/compact/",
  32. "/V1/RESPONSES/COMPACT",
  33. ])("raw passthrough endpoints path helper matches variant %s", (pathname) => {
  34. expect(isRawPassthroughEndpointPath(pathname)).toBe(true);
  35. expect(isRawPassthroughEndpointPolicy(resolveEndpointPolicy(pathname))).toBe(true);
  36. });
  37. test("default policy stays on non-target endpoints", () => {
  38. const messagesPolicy = resolveEndpointPolicy(V1_ENDPOINT_PATHS.MESSAGES);
  39. const responsesPolicy = resolveEndpointPolicy(V1_ENDPOINT_PATHS.RESPONSES);
  40. expect(messagesPolicy).toBe(responsesPolicy);
  41. expect(isRawPassthroughEndpointPolicy(messagesPolicy)).toBe(false);
  42. expect(messagesPolicy).toEqual({
  43. kind: "default",
  44. guardPreset: "chat",
  45. allowRetry: true,
  46. allowProviderSwitch: true,
  47. allowCircuitBreakerAccounting: true,
  48. trackConcurrentRequests: true,
  49. bypassRequestFilters: false,
  50. bypassForwarderPreprocessing: false,
  51. bypassSpecialSettings: false,
  52. bypassResponseRectifier: false,
  53. endpointPoolStrictness: "inherit",
  54. });
  55. });
  56. });