hts/packages/isdk/tests/utils/mock-client.ts

42 lines
1.0 KiB
TypeScript

export const createClient = (response: Response) => {
return {
async readAll() {
if (!response.body) {
throw new Error('Response body is not readable');
}
let chunks: string[] = [];
const reader = response.body.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
chunks.push(new TextDecoder().decode(value));
}
return chunks;
},
async readAndAbort(controller: AbortController) {
if (!response.body) {
throw new Error('Response body is not readable');
}
let chunks: string[] = [];
const reader = response.body.getReader();
const { done, value } = await reader.read();
if (!done) {
chunks.push(new TextDecoder().decode(value));
}
// Abort
controller.abort();
reader.cancel();
return chunks;
},
};
};
export function readAllChunks(response: Response) {
return createClient(response).readAll();
}