diff options
author | 2022-06-27 06:44:39 -0700 | |
---|---|---|
committer | 2022-06-27 06:44:39 -0700 | |
commit | 95c17852717c0857fcbce37169980ea563082e39 (patch) | |
tree | 9add98926a4cb193a8da0df77f0d183c83d1cfe9 /test/bun.js/react-ssr.test.tsx | |
parent | 292f60a8a840111e135312c1d604154a9908a325 (diff) | |
download | bun-95c17852717c0857fcbce37169980ea563082e39.tar.gz bun-95c17852717c0857fcbce37169980ea563082e39.tar.zst bun-95c17852717c0857fcbce37169980ea563082e39.zip |
begin adding react-ssr tests
Diffstat (limited to '')
-rw-r--r-- | test/bun.js/react-ssr.test.tsx | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/bun.js/react-ssr.test.tsx b/test/bun.js/react-ssr.test.tsx new file mode 100644 index 000000000..1552be50f --- /dev/null +++ b/test/bun.js/react-ssr.test.tsx @@ -0,0 +1,60 @@ +import { serve } from "bun"; +import { describe } from "bun:test"; +import { it, expect } from "bun:test"; +import { gc } from "./gc"; +import { renderToReadableStream } from "./reactdom-bun"; + +describe("react-ssr", () => { + var port = 8908; + + it("to text", async () => { + const stream = await renderToReadableStream(<div>Hello</div>); + gc(); + const response = new Response(stream); + gc(); + const text = await response.text(); + gc(); + expect(text).toBe("<div>Hello</div>"); + }); + it("http server, 1 request", async () => { + try { + const server = serve({ + port: port++, + async fetch(req) { + return new Response(await renderToReadableStream(<div>Hello</div>)); + }, + }); + const resp = await fetch("http://localhost:" + server.port + "/"); + expect(await resp.text()).toBe("<div>Hello</div>"); + server.stop(); + } catch (e) { + console.error(e); + } + }); + + it("http server, 100 requests", async () => { + const server = serve({ + port: port++, + async fetch(req) { + return new Response(await renderToReadableStream(<div>Hello</div>)); + }, + }); + var total = 0; + gc(); + while (total < 100) { + var buffer = new Array(4); + for (let i = 0; i < buffer.length; i++) { + buffer[i] = fetch("http://localhost:" + server.port + "/"); + } + gc(); + const responses = await Promise.all(buffer); + for (let i = 0; i < buffer.length; i++) { + expect(await responses[i].text()).toBe("<div>Hello</div>"); + } + total += buffer.length; + gc(); + } + + server.stop(); + }); +}); |