@@ -546,6 +546,7 @@ describe("openrouter video generation provider", () => {
|
546 | 546 | provider: "openrouter", |
547 | 547 | capability: "video", |
548 | 548 | baseUrl: "https://custom.openrouter.test/api/v1", |
| 549 | +allowPrivateNetwork: false, |
549 | 550 | request: requestOverrides, |
550 | 551 | }, |
551 | 552 | ); |
@@ -672,11 +673,10 @@ describe("openrouter video generation provider", () => {
|
672 | 673 | |
673 | 674 | it("wraps non-JSON successful OpenRouter submit responses", async () => { |
674 | 675 | postJsonRequestMock.mockResolvedValue({ |
675 | | -response: { |
676 | | -json: async () => { |
677 | | -throw new SyntaxError("Unexpected token < in JSON"); |
678 | | -}, |
679 | | -}, |
| 676 | +response: new Response("<html></html>", { |
| 677 | +status: 200, |
| 678 | +headers: { "content-type": "text/html" }, |
| 679 | +}), |
680 | 680 | release: vi.fn(async () => {}), |
681 | 681 | }); |
682 | 682 | |
@@ -691,6 +691,22 @@ describe("openrouter video generation provider", () => {
|
691 | 691 | ).rejects.toThrow("OpenRouter video generation response malformed"); |
692 | 692 | }); |
693 | 693 | |
| 694 | +it("bounds oversized successful OpenRouter submit responses", async () => { |
| 695 | +const oversized = releasedOversizedJsonStream(); |
| 696 | +postJsonRequestMock.mockResolvedValue(oversized); |
| 697 | + |
| 698 | +const provider = buildOpenRouterVideoGenerationProvider(); |
| 699 | +await expect( |
| 700 | +provider.generateVideo({ |
| 701 | +provider: "openrouter", |
| 702 | +model: "google/veo-3.1", |
| 703 | +prompt: "oversized body", |
| 704 | +cfg: {} as never, |
| 705 | +}), |
| 706 | +).rejects.toThrow("OpenRouter video generation: JSON response exceeds 16777216 bytes"); |
| 707 | +expect(oversized.wasCanceled()).toBe(true); |
| 708 | +}); |
| 709 | + |
694 | 710 | it("rejects unknown OpenRouter poll statuses without waiting for timeout", async () => { |
695 | 711 | postJsonRequestMock.mockResolvedValue( |
696 | 712 | releasedJson({ |
|