Skip to content

Commit 9cda5d6

Browse files
committed
test: add listen callback multiple test
1 parent 1639b05 commit 9cda5d6

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

Diff for: package.json

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
"main": "lib/remoteAsync.cjs.js",
55
"module": "lib/remoteAsync.esm.js",
66
"license": "MIT",
7+
"engines": {
8+
"node": ">=10",
9+
"yarn": ">=1.22 <2"
10+
},
711
"scripts": {
812
"test": "jest --verbose",
913
"test:coverage": "jest --coverage",

Diff for: tests/inner.spec.ts

+21
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Server } from '../src';
2+
import { RemoteCallBack } from '../src/Server';
23
import { PROMISE_TYPE } from '../src/promiseType';
34

45
describe('remoteAsync:inner test', () => {
@@ -61,6 +62,26 @@ describe('remoteAsync:inner test', () => {
6162
const retData = await listener.registerPromise('dataSend', object).catch((d) => Promise.resolve({ v: 1, d }));
6263
expect(retData).toEqual({ v: 1, d: retObject });
6364
});
65+
test('listen callback multiple times', async () => {
66+
const listener = new Server();
67+
listener.registerSender((data) => listener.receiveData(data));
68+
const cb1 = jest.fn(((data, resolve) => {
69+
// only first resolve or reject will be accepted when multiple callbacks
70+
console.log('cb1', data);
71+
resolve?.({ a: 1 });
72+
expect(resolve).not.toEqual(undefined);
73+
}) as RemoteCallBack);
74+
const cb2 = jest.fn(((data, resolve ,reject) => {
75+
// no effect
76+
reject?.({ a: 1 });
77+
expect(reject).not.toEqual(undefined);
78+
}) as RemoteCallBack);
79+
listener.listen('k', cb1);
80+
listener.listen('k', cb2);
81+
await listener.registerPromise('k', { a: 1 });
82+
expect(cb1).toBeCalledTimes(1);
83+
expect(cb2).toBeCalledTimes(1);
84+
})
6485
test('off cb', async () => {
6586
const listener = new Server();
6687
const cb1 = () => 'k';

0 commit comments

Comments
 (0)