Skip to content

Commit 6a1cc17

Browse files
committed
test: add failing test for WebsocketClientTransport
1 parent e86ba30 commit 6a1cc17

File tree

2 files changed

+97
-0
lines changed

2 files changed

+97
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
const path = require("path");
2+
const karma = require("karma");
3+
const { RSocketServer } = require("@rsocket/core");
4+
const {
5+
WebsocketServerTransport,
6+
} = require("@rsocket/transport-websocket-server");
7+
const WebSocket = require("ws");
8+
const parseConfig = karma.config.parseConfig;
9+
const Server = karma.Server;
10+
11+
const rsocketServerPort = 9091;
12+
const rSocketServer = new RSocketServer({
13+
transport: new WebsocketServerTransport({
14+
wsCreator: (options) => {
15+
return new WebSocket.Server({
16+
port: rsocketServerPort,
17+
});
18+
},
19+
}),
20+
acceptor: {
21+
accept: async () => ({
22+
requestResponse: (payload, responderStream) => {
23+
const timeout = setTimeout(
24+
() =>
25+
responderStream.onNext(
26+
{
27+
data: Buffer.concat([Buffer.from("Echo: "), payload.data]),
28+
},
29+
true
30+
),
31+
80
32+
);
33+
return {
34+
cancel: () => {
35+
clearTimeout(timeout);
36+
console.log("cancelled");
37+
},
38+
onExtension: () => {
39+
console.log("Received Extension request");
40+
},
41+
};
42+
},
43+
}),
44+
},
45+
});
46+
47+
let karmaServer = null;
48+
let karmaConfig = null;
49+
let rSocketServerClosable = null;
50+
parseConfig(
51+
path.resolve("./karma.conf.js"),
52+
{ port: 9876 },
53+
{ promiseConfig: true, throwErrors: true }
54+
)
55+
.then(async (_karmaConfig) => {
56+
rSocketServerClosable = await rSocketServer.bind();
57+
console.log(`RSocket Server started on port ${rsocketServerPort}`);
58+
karmaConfig = _karmaConfig;
59+
karmaServer = new Server(_karmaConfig, async function doneCallback(
60+
exitCode
61+
) {
62+
console.log(`Karma exited with code: ${exitCode}`);
63+
await rSocketServerClosable.close();
64+
process.exit(exitCode);
65+
});
66+
return karmaServer.start();
67+
})
68+
.catch((rejectReason) => {
69+
console.error(rejectReason);
70+
process.exit(1);
71+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { RSocketConnector } from "@rsocket/core";
2+
import { WebsocketClientTransport } from "@rsocket/transport-websocket-client";
3+
4+
// const Buffer = require("buffer/").Buffer;
5+
6+
// window.Buffer = Buffer;
7+
8+
describe("WebsocketClientTransport", () => {
9+
describe("connector", function () {
10+
it("connect", async () => {
11+
const url = "ws://localhost:9091";
12+
const connector = new RSocketConnector({
13+
transport: new WebsocketClientTransport({
14+
url,
15+
}),
16+
});
17+
const rsocket = await connector.connect();
18+
await new Promise((resolve) => {
19+
setTimeout(() => {
20+
resolve(null);
21+
}, 80);
22+
});
23+
await rsocket.close();
24+
});
25+
});
26+
});

0 commit comments

Comments
 (0)