mirror of
https://github.com/balzack/databag.git
synced 2025-04-22 09:35:16 +00:00
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { Call } from '../src/types';
|
|
import { RingModule } from '../src/ring';
|
|
import { MockLinkModule } from '../__mocks__/link';
|
|
import { waitFor } from '../__mocks__/waitFor';
|
|
import { ConsoleLogging } from '../src/logging';
|
|
|
|
jest.mock('../src/net/fetchUtil', () => {
|
|
const fn = jest.fn().mockImplementation((url: string, options: { method: string, body: string }) => {
|
|
console.log(url, options);
|
|
return Promise.resolve({ state: 200, json: () => {} });
|
|
});
|
|
|
|
return {
|
|
fetchWithTimeout: fn,
|
|
checkResponse: () => {},
|
|
}
|
|
});
|
|
|
|
const mockLink = new MockLinkModule();
|
|
jest.mock('../src/link', () => {
|
|
return {
|
|
Connection: jest.fn().mockImplementation(() => {
|
|
return mockLink;
|
|
})
|
|
}
|
|
})
|
|
|
|
test('rings correctly', async () => {
|
|
let calling = [] as { cardId: string, callId: string }[];
|
|
const endContactCall = async (cardId: string, callId: string) => {
|
|
console.log("ending");
|
|
};
|
|
const ringing = (calls: { cardId: string, callId: string }[]) => {
|
|
calling = calls;
|
|
};
|
|
|
|
const log = new ConsoleLogging();
|
|
const ringModule = new RingModule(log, endContactCall);
|
|
|
|
ringModule.addRingingListener(ringing);
|
|
ringModule.ring({ cardId: 'card1', callId: 'call1', calleeToken: 'token1', ice: [] });
|
|
await waitFor(() => calling.length === 1);
|
|
await waitFor(() => calling.length === 0, 10);
|
|
ringModule.close();
|
|
}, 15000);
|