Skip to content

Commit

Permalink
test: add failing test for WebsocketClientTransport
Browse files Browse the repository at this point in the history
  • Loading branch information
viglucci committed Jan 23, 2022
1 parent e86ba30 commit 6a1cc17
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 0 deletions.
71 changes: 71 additions & 0 deletions packages/rsocket-browser-tck/browser-tck.js
@@ -0,0 +1,71 @@
const path = require("path");
const karma = require("karma");
const { RSocketServer } = require("@rsocket/core");
const {
WebsocketServerTransport,
} = require("@rsocket/transport-websocket-server");
const WebSocket = require("ws");
const parseConfig = karma.config.parseConfig;
const Server = karma.Server;

const rsocketServerPort = 9091;
const rSocketServer = new RSocketServer({
transport: new WebsocketServerTransport({
wsCreator: (options) => {
return new WebSocket.Server({
port: rsocketServerPort,
});
},
}),
acceptor: {
accept: async () => ({
requestResponse: (payload, responderStream) => {
const timeout = setTimeout(
() =>
responderStream.onNext(
{
data: Buffer.concat([Buffer.from("Echo: "), payload.data]),
},
true
),
80
);
return {
cancel: () => {
clearTimeout(timeout);
console.log("cancelled");
},
onExtension: () => {
console.log("Received Extension request");
},
};
},
}),
},
});

let karmaServer = null;
let karmaConfig = null;
let rSocketServerClosable = null;
parseConfig(
path.resolve("./karma.conf.js"),
{ port: 9876 },
{ promiseConfig: true, throwErrors: true }
)
.then(async (_karmaConfig) => {
rSocketServerClosable = await rSocketServer.bind();
console.log(`RSocket Server started on port ${rsocketServerPort}`);
karmaConfig = _karmaConfig;
karmaServer = new Server(_karmaConfig, async function doneCallback(
exitCode
) {
console.log(`Karma exited with code: ${exitCode}`);
await rSocketServerClosable.close();
process.exit(exitCode);
});
return karmaServer.start();
})
.catch((rejectReason) => {
console.error(rejectReason);
process.exit(1);
});
26 changes: 26 additions & 0 deletions packages/rsocket-browser-tck/src/WebsocketClientTransport.spec.ts
@@ -0,0 +1,26 @@
import { RSocketConnector } from "@rsocket/core";
import { WebsocketClientTransport } from "@rsocket/transport-websocket-client";

// const Buffer = require("buffer/").Buffer;

// window.Buffer = Buffer;

describe("WebsocketClientTransport", () => {
describe("connector", function () {
it("connect", async () => {
const url = "ws://localhost:9091";
const connector = new RSocketConnector({
transport: new WebsocketClientTransport({
url,
}),
});
const rsocket = await connector.connect();
await new Promise((resolve) => {
setTimeout(() => {
resolve(null);
}, 80);
});
await rsocket.close();
});
});
});

0 comments on commit 6a1cc17

Please sign in to comment.