getTotalUnreadForConversation: Add missing isGroup parameter

This commit is contained in:
Scott Nonnenberg 2022-04-27 10:41:24 -07:00 committed by GitHub
parent 5d65e3b36c
commit 25282e3afa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 13 deletions

View file

@ -4645,7 +4645,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

@ -2700,14 +2700,22 @@ function getOldestUnseenMessageForConversation(
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

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'
);