Skip to content

Commit

Permalink
debug logs
Browse files Browse the repository at this point in the history
  • Loading branch information
darrachequesne committed Jun 11, 2023
1 parent c0bc25f commit dae75d3
Showing 1 changed file with 47 additions and 36 deletions.
83 changes: 47 additions & 36 deletions test/webtransport.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import expect from "expect.js";
import request from "superagent";
import { createServer } from "http";
import { generateWebTransportCertificate } from "./util.mjs";
import debugModule from "debug";

const debug = debugModule("engine:webtransport");

const TEXT_ENCODER = new TextEncoder();
const TEXT_DECODER = new TextDecoder();
Expand Down Expand Up @@ -94,55 +97,63 @@ function setup(opts, cb) {
});
}

describe.only("WebTransport", () => {
describe("WebTransport", () => {
after(() => {
Http3EventLoop.globalLoop.shutdownEventLoop(); // manually shutdown the event loop, instead of waiting 20s
});

it("should allow to connect with WebTransport directly", (done) => {
it.only("should allow to connect with WebTransport directly", (done) => {
debug("setupServer");
setupServer({}, async ({ engine, h3Server, certificate }) => {
const partialDone = createPartialDone(
() => success(engine, h3Server, done),
2
);

engine.on("connection", (socket) => {
expect(socket.transport.name).to.eql("webtransport");
partialDone();
});
try {
debug("setupServer OK");
const partialDone = createPartialDone(
() => success(engine, h3Server, done),
2
);

const client = new WebTransport(
`https://localhost:${h3Server.port}/engine.io/`,
{
serverCertificateHashes: [
{
algorithm: "sha-256",
value: certificate.hash,
},
],
}
);
engine.on("connection", (socket) => {
expect(socket.transport.name).to.eql("webtransport");
partialDone();
});

await client.ready;
debug("new WebTransport");
const client = new WebTransport(
`https://localhost:${h3Server.port}/engine.io/`,
{
serverCertificateHashes: [
{
algorithm: "sha-256",
value: certificate.hash,
},
],
}
);
debug("new WebTransport OK");
await client.ready;
debug("client.ready OK");

const stream = await client.createBidirectionalStream();
const reader = stream.readable.getReader();
const writer = stream.writable.getWriter();
const stream = await client.createBidirectionalStream();
const reader = stream.readable.getReader();
const writer = stream.writable.getWriter();

(async function read() {
const { done, value } = await reader.read();
(async function read() {
const { done, value } = await reader.read();

if (done) {
return;
}
if (done) {
return;
}

const handshake = TEXT_DECODER.decode(value);
expect(handshake.startsWith("0{")).to.be(true);
const handshake = TEXT_DECODER.decode(value);
expect(handshake.startsWith("0{")).to.be(true);

partialDone();
})();
partialDone();
})();

await writer.write(TEXT_ENCODER.encode("0"));
await writer.write(TEXT_ENCODER.encode("0"));
} catch (e) {
debug("error: %o", e);
}
});
});

Expand Down

0 comments on commit dae75d3

Please sign in to comment.