Skip to content

Commit 5099efd

Browse files
authored
connection: Fix write impl (#1106)
1 parent 66bb189 commit 5099efd

File tree

4 files changed

+18
-19
lines changed

4 files changed

+18
-19
lines changed

packages/connection/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ class Connection extends EventEmitter {
332332
throw new Error("Connection is closing");
333333
}
334334

335-
return new Promise((resolve, reject) => {
336-
this.socket.write(string, (err) => (err ? reject(err) : resolve()));
335+
return new Promise((resolve) => {
336+
this.socket.write(string, resolve);
337337
});
338338
}
339339

packages/test/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import xml from "@xmpp/xml";
2+
import clone from "ltx/lib/clone.js";
23
import jid from "@xmpp/jid";
34
import { delay, promise, timeout } from "@xmpp/events";
45
import id from "@xmpp/id";
@@ -20,6 +21,7 @@ export {
2021
timeout,
2122
id,
2223
mockSocket,
24+
clone,
2325
};
2426

2527
export function mockInput(entity, el) {

packages/websocket/lib/Socket.js

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,9 @@ export default class Socket extends EventEmitter {
6262
}
6363

6464
write(data, fn) {
65-
function done(err) {
66-
if (!fn) return;
67-
// eslint-disable-next-line promise/catch-or-return, promise/no-promise-in-callback
68-
Promise.resolve().then(() => fn(err));
69-
}
70-
71-
try {
72-
this.socket.send(data);
73-
} catch (err) {
74-
done(err);
75-
return;
76-
}
77-
done();
65+
this.socket.send(data);
66+
Promise.resolve()
67+
.then(fn)
68+
.catch(() => {});
7869
}
7970
}

packages/websocket/test/test.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,19 @@ import xml from "@xmpp/xml";
44
import ConnectionWebSocket from "../lib/Connection.js";
55
import Socket from "../lib/Socket.js";
66

7-
test("send()", () => {
7+
test("send()", async () => {
88
const connection = new ConnectionWebSocket();
9-
connection.write = () => {};
9+
connection.socket = new Socket();
10+
connection.socket.socket = {
11+
send: jest.fn(),
12+
};
1013
connection.root = xml("root");
1114

1215
const element = xml("presence");
1316

1417
expect(element.attrs.xmlns).toBe(undefined);
1518
expect(element.parent).toBe(null);
16-
connection.send(element);
19+
await connection.send(element);
1720
expect(element.attrs.xmlns).toBe("jabber:client");
1821
expect(element.parent).toBe(connection.root);
1922
});
@@ -70,6 +73,9 @@ test("socket close", () => {
7073
test("sendMany", async () => {
7174
const conn = new ConnectionWebSocket();
7275
conn.socket = new Socket();
76+
conn.socket.socket = {
77+
send: jest.fn(),
78+
};
7379
const spy_write = jest.spyOn(conn.socket, "write");
7480
conn.root = xml("root");
7581

@@ -82,7 +88,7 @@ test("sendMany", async () => {
8288
expect(element.parent).toBe(null);
8389
}
8490

85-
conn.sendMany(elements);
91+
await conn.sendMany(elements);
8692

8793
for (const element of elements) {
8894
expect(element.attrs.xmlns).toBe("jabber:client");

0 commit comments

Comments
 (0)