Skip to content

Commit 34ab4f3

Browse files
committed
Add a test for PART reasons
1 parent 887cacd commit 34ab4f3

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

test/helpers.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import EventEmitter from "node:events";
77
import { AddressInfo } from "node:net";
88

99
export class MockIrcd extends EventEmitter {
10-
incoming: unknown[] = [];
10+
incoming: string[] = [];
1111
outgoing: unknown[] = [];
1212
server: net.Server;
1313

test/test-irc.spec.ts

+29-1
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,33 @@ describe('IRC client basics', () => {
5757

5858
expect.assertions(expected.sent.length + expected.received.length);
5959
});
60-
})
60+
});
61+
62+
test('part reasons', async () => {
63+
const mock = new MockIrcd();
64+
const client = new Client('localhost', 'testbot', {debug: true, port: await mock.listen()});
65+
66+
mock.server.on('connection', function() {
67+
mock.send(greeting);
68+
});
69+
70+
client.on('registered', async () => {
71+
await client.part('#testchannel', 'bye');
72+
client.disconnect();
73+
});
74+
75+
await new Promise<void>((resolve, reject) => {
76+
mock.on('end', function() {
77+
mock.close();
78+
const msgs = mock.getIncomingMsgs();
79+
80+
try {
81+
expect(msgs.filter(msg => msg.startsWith('PART') && msg.endsWith('bye'))).toHaveLength(1);
82+
} catch (err) {
83+
reject(err);
84+
}
85+
resolve();
86+
});
87+
});
88+
});
6189
});

0 commit comments

Comments
 (0)