Address the CodeRabbit review: inbound SMS, binary payloads and untrusted input

This commit is contained in:
2026-08-27 11:52:43 +02:00
parent 884afdb87b
commit 8a182604b7
23 changed files with 603 additions and 152 deletions
+9 -8
View File
@@ -204,7 +204,7 @@ describe('the reference encoder against our parser', () => {
});
describe('a live session against the reference implementation', () => {
test('our client binds to a reference server and delivers an SMS', async () => {
test('our client binds to a reference server and delivers an SMS', async t => {
const received: { from: string; message: string }[] = [];
const refServer = reference.createServer({}, (session: ReferenceSession) => {
session.on('bind_transceiver', pdu => {
@@ -226,11 +226,14 @@ describe('a live session against the reference implementation', () => {
});
});
t.after(() => new Promise<void>(resolve => { refServer.close(() => { resolve(); }); }));
await new Promise<void>(resolve => { refServer.listen(0, () => { resolve(); }); });
const port = refServer.address()?.port ?? 0;
const { err, session } = await client({ port });
t.after(() => { session?.close(); });
assert.equal(err, undefined);
assert.ok(session);
@@ -243,14 +246,13 @@ describe('a live session against the reference implementation', () => {
assert.equal(sent.err, undefined);
assert.deepEqual(sent.smsIds, ['ref-id']);
assert.deepEqual(received, [{ from: 'MyBrand', message: 'interop check' }]);
session.close();
await new Promise<void>(resolve => { refServer.close(() => { resolve(); }); });
});
test('a reference client binds to our server and delivers an SMS', async () => {
test('a reference client binds to our server and delivers an SMS', async t => {
const { err: serverErr, server: smpp } = await server({ port: 0 });
t.after(async () => { await smpp?.close(); });
assert.equal(serverErr, undefined);
assert.ok(smpp);
@@ -262,6 +264,8 @@ describe('a live session against the reference implementation', () => {
url: `smpp://localhost:${String(smpp.port)}`,
});
t.after(() => { refSession.close(); });
await new Promise<void>(resolve => {
refSession.bind_transceiver({ password: 'bar', system_id: 'foo' }, () => { resolve(); });
});
@@ -277,8 +281,5 @@ describe('a live session against the reference implementation', () => {
assert.equal(sms.from, '46701113311');
assert.equal(sms.message, 'from the reference client');
await sms.sendResp();
refSession.close();
await smpp.close();
});
});