80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
// Copyright 2024 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { assert } from 'chai';
|
|
import type { PeekInfo } from '@signalapp/ringrtc';
|
|
import uuid from 'uuid';
|
|
import {
|
|
getPeerIdFromConversation,
|
|
getCallIdFromEra,
|
|
getGroupCallMeta,
|
|
} from '../../util/callDisposition';
|
|
import {
|
|
getDefaultConversation,
|
|
getDefaultGroup,
|
|
} from '../../test-both/helpers/getDefaultConversation';
|
|
import { uuidToBytes } from '../../util/uuidToBytes';
|
|
|
|
const MOCK_ERA = 'abc';
|
|
const MOCK_CALL_ID = '16919744041952114874';
|
|
|
|
const MOCK_PEEK_INFO_BASE: PeekInfo = {
|
|
devices: [],
|
|
deviceCount: 0,
|
|
deviceCountIncludingPendingDevices: 0,
|
|
deviceCountExcludingPendingDevices: 0,
|
|
pendingUsers: [],
|
|
};
|
|
|
|
describe('utils/callDisposition', () => {
|
|
describe('getCallIdFromEra', () => {
|
|
it('returns callId from era', () => {
|
|
// just to ensure the mock is correct
|
|
assert.strictEqual(getCallIdFromEra(MOCK_ERA), MOCK_CALL_ID);
|
|
});
|
|
});
|
|
|
|
describe('getGroupCallMeta', () => {
|
|
it('returns null if missing eraId or creator', () => {
|
|
assert.isNull(getGroupCallMeta({ ...MOCK_PEEK_INFO_BASE }));
|
|
assert.isNull(
|
|
getGroupCallMeta({ ...MOCK_PEEK_INFO_BASE, eraId: MOCK_ERA })
|
|
);
|
|
assert.isNull(
|
|
getGroupCallMeta({
|
|
...MOCK_PEEK_INFO_BASE,
|
|
creator: Buffer.from(uuidToBytes(uuid())),
|
|
})
|
|
);
|
|
});
|
|
|
|
it('returns group call meta when all fields are provided', () => {
|
|
const id = uuid();
|
|
assert.deepStrictEqual(
|
|
getGroupCallMeta({
|
|
...MOCK_PEEK_INFO_BASE,
|
|
eraId: MOCK_ERA,
|
|
creator: Buffer.from(uuidToBytes(id)),
|
|
}),
|
|
{ callId: MOCK_CALL_ID, ringerId: id }
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('getPeerIdFromConversation', () => {
|
|
it('returns serviceId for direct conversation', () => {
|
|
const conversation = getDefaultConversation();
|
|
assert.strictEqual(
|
|
getPeerIdFromConversation(conversation),
|
|
conversation.serviceId
|
|
);
|
|
});
|
|
it('returns groupId for group conversation', () => {
|
|
const conversation = getDefaultGroup();
|
|
assert.strictEqual(
|
|
getPeerIdFromConversation(conversation),
|
|
conversation.groupId
|
|
);
|
|
});
|
|
});
|
|
});
|