getTotalUnreadForConversation: Add missing isGroup parameter

This commit is contained in:
automated-signal 2022-04-28 10:06:36 -07:00 committed by GitHub
parent 075b968cbc
commit 00f770c3c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 17 deletions

View File

@ -4672,7 +4672,8 @@ export class ConversationModel extends window.Backbone
await markConversationRead(this.attributes, newestUnreadAt, options);
const unreadCount = await window.Signal.Data.getTotalUnreadForConversation(
this.id
this.id,
{ storyId: undefined, isGroup: isGroup(this.attributes) }
);
const prevUnreadCount = this.get('unreadCount');

View File

@ -1170,9 +1170,12 @@ async function getMessageBySender({
async function getTotalUnreadForConversation(
conversationId: string,
storyId?: UUIDStringType
options: {
storyId: UUIDStringType | undefined;
isGroup: boolean;
}
) {
return channels.getTotalUnreadForConversation(conversationId, storyId);
return channels.getTotalUnreadForConversation(conversationId, options);
}
async function getUnreadByConversationAndMarkRead(options: {

View File

@ -384,7 +384,10 @@ export type DataInterface = {
removeMessages: (ids: Array<string>) => Promise<void>;
getTotalUnreadForConversation: (
conversationId: string,
storyId?: UUIDStringType
options: {
storyId: UUIDStringType | undefined;
isGroup: boolean;
}
) => Promise<number>;
getUnreadByConversationAndMarkRead: (options: {
conversationId: string;

View File

@ -2676,14 +2676,22 @@ function getOldestUnreadMessageForConversation(
async function getTotalUnreadForConversation(
conversationId: string,
storyId?: UUIDStringType
options: {
storyId: UUIDStringType | undefined;
isGroup: boolean;
}
): Promise<number> {
return getTotalUnreadForConversationSync(conversationId, storyId);
return getTotalUnreadForConversationSync(conversationId, options);
}
function getTotalUnreadForConversationSync(
conversationId: string,
storyId?: UUIDStringType,
isGroup?: boolean
{
storyId,
isGroup,
}: {
storyId: UUIDStringType | undefined;
isGroup: boolean;
}
): number {
const db = getInstance();
const row = db
@ -2737,11 +2745,10 @@ function getMessageMetricsForConversationSync(
storyId,
isGroup
);
const totalUnread = getTotalUnreadForConversationSync(
conversationId,
const totalUnread = getTotalUnreadForConversationSync(conversationId, {
storyId,
isGroup
);
isGroup: Boolean(isGroup),
});
return {
oldest: oldest ? pick(oldest, ['received_at', 'sent_at', 'id']) : undefined,

View File

@ -124,7 +124,10 @@ describe('sql/markRead', () => {
assert.lengthOf(await _getAllMessages(), 7);
assert.strictEqual(
await getTotalUnreadForConversation(conversationId),
await getTotalUnreadForConversation(conversationId, {
storyId: undefined,
isGroup: false,
}),
4,
'unread count'
);
@ -137,7 +140,10 @@ describe('sql/markRead', () => {
assert.lengthOf(markedRead, 2, 'two messages marked read');
assert.strictEqual(
await getTotalUnreadForConversation(conversationId),
await getTotalUnreadForConversation(conversationId, {
storyId: undefined,
isGroup: false,
}),
2,
'unread count'
);
@ -164,7 +170,10 @@ describe('sql/markRead', () => {
assert.strictEqual(markedRead2[0].id, message7.id, 'should be message7');
assert.strictEqual(
await getTotalUnreadForConversation(conversationId),
await getTotalUnreadForConversation(conversationId, {
storyId: undefined,
isGroup: false,
}),
0,
'unread count'
);
@ -365,7 +374,10 @@ describe('sql/markRead', () => {
});
assert.strictEqual(
await getTotalUnreadForConversation(conversationId),
await getTotalUnreadForConversation(conversationId, {
storyId: undefined,
isGroup: false,
}),
2,
'unread count'
);
@ -384,7 +396,10 @@ describe('sql/markRead', () => {
'first should be message4'
);
assert.strictEqual(
await getTotalUnreadForConversation(conversationId),
await getTotalUnreadForConversation(conversationId, {
storyId: undefined,
isGroup: false,
}),
1,
'unread count'
);