118 lines
3 KiB
TypeScript
118 lines
3 KiB
TypeScript
// Copyright 2020 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { assert } from 'chai';
|
|
import {
|
|
getConversationCallMode,
|
|
ConversationType,
|
|
} from '../../../state/ducks/conversations';
|
|
import { CallMode } from '../../../types/Calling';
|
|
|
|
describe('conversations duck', () => {
|
|
describe('helpers', () => {
|
|
describe('getConversationCallMode', () => {
|
|
const fakeConversation: ConversationType = {
|
|
id: 'id1',
|
|
e164: '+18005551111',
|
|
activeAt: Date.now(),
|
|
name: 'No timestamp',
|
|
timestamp: 0,
|
|
inboxPosition: 0,
|
|
phoneNumber: 'notused',
|
|
isArchived: false,
|
|
markedUnread: false,
|
|
|
|
type: 'direct',
|
|
isMe: false,
|
|
lastUpdated: Date.now(),
|
|
title: 'No timestamp',
|
|
unreadCount: 1,
|
|
isSelected: false,
|
|
typingContact: {
|
|
name: 'Someone There',
|
|
color: 'blue',
|
|
phoneNumber: '+18005551111',
|
|
},
|
|
|
|
acceptedMessageRequest: true,
|
|
};
|
|
|
|
it("returns CallMode.None if you've left the conversation", () => {
|
|
assert.strictEqual(
|
|
getConversationCallMode({
|
|
...fakeConversation,
|
|
left: true,
|
|
}),
|
|
CallMode.None
|
|
);
|
|
});
|
|
|
|
it("returns CallMode.None if you've blocked the other person", () => {
|
|
assert.strictEqual(
|
|
getConversationCallMode({
|
|
...fakeConversation,
|
|
isBlocked: true,
|
|
}),
|
|
CallMode.None
|
|
);
|
|
});
|
|
|
|
it("returns CallMode.None if you haven't accepted message requests", () => {
|
|
assert.strictEqual(
|
|
getConversationCallMode({
|
|
...fakeConversation,
|
|
acceptedMessageRequest: false,
|
|
}),
|
|
CallMode.None
|
|
);
|
|
});
|
|
|
|
it('returns CallMode.None if the conversation is Note to Self', () => {
|
|
assert.strictEqual(
|
|
getConversationCallMode({
|
|
...fakeConversation,
|
|
isMe: true,
|
|
}),
|
|
CallMode.None
|
|
);
|
|
});
|
|
|
|
it('returns CallMode.None for v1 groups', () => {
|
|
assert.strictEqual(
|
|
getConversationCallMode({
|
|
...fakeConversation,
|
|
type: 'group',
|
|
groupVersion: 1,
|
|
}),
|
|
CallMode.None
|
|
);
|
|
|
|
assert.strictEqual(
|
|
getConversationCallMode({
|
|
...fakeConversation,
|
|
type: 'group',
|
|
}),
|
|
CallMode.None
|
|
);
|
|
});
|
|
|
|
it('returns CallMode.Direct if the conversation is a normal direct conversation', () => {
|
|
assert.strictEqual(
|
|
getConversationCallMode(fakeConversation),
|
|
CallMode.Direct
|
|
);
|
|
});
|
|
|
|
it('returns CallMode.Group if the conversation is a v2 group', () => {
|
|
assert.strictEqual(
|
|
getConversationCallMode({
|
|
...fakeConversation,
|
|
type: 'group',
|
|
groupVersion: 2,
|
|
}),
|
|
CallMode.Group
|
|
);
|
|
});
|
|
});
|
|
});
|
|
});
|