Timeline: When scrolling far into history, discard newest messages

This commit is contained in:
Scott Nonnenberg 2022-05-10 13:19:58 -07:00 committed by GitHub
parent 0ca66d6e95
commit 6b4bea6330
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 173 additions and 35 deletions

View file

@ -54,6 +54,7 @@ const {
closeRecommendedGroupSizeModal,
conversationStoppedByMissingVerification,
createGroup,
discardMessages,
openConversationInternal,
repairNewestMessage,
repairOldestMessage,
@ -1306,6 +1307,52 @@ describe('both/state/ducks/conversations', () => {
});
});
describe('DISCARD_MESSAGES', () => {
const startState: ConversationsStateType = {
...getEmptyState(),
messagesLookup: {
[messageId]: getDefaultMessage(messageId),
[messageIdTwo]: getDefaultMessage(messageIdTwo),
[messageIdThree]: getDefaultMessage(messageIdThree),
},
messagesByConversation: {
[conversationId]: {
metrics: {
totalUnseen: 0,
},
scrollToMessageCounter: 0,
messageIds: [messageId, messageIdTwo, messageIdThree],
},
},
};
it('eliminates older messages', () => {
const toDiscard = {
conversationId,
numberToKeepAtBottom: 2,
};
const state = reducer(startState, discardMessages(toDiscard));
assert.deepEqual(
state.messagesByConversation[conversationId]?.messageIds,
[messageIdTwo, messageIdThree]
);
});
it('eliminates newer messages', () => {
const toDiscard = {
conversationId,
numberToKeepAtTop: 2,
};
const state = reducer(startState, discardMessages(toDiscard));
assert.deepEqual(
state.messagesByConversation[conversationId]?.messageIds,
[messageId, messageIdTwo]
);
});
});
describe('SET_PRE_JOIN_CONVERSATION', () => {
const startState = {
...getEmptyState(),