Left pane: Ensure pinned conversations show only once

This commit is contained in:
Scott Nonnenberg 2021-05-04 15:16:59 -07:00 committed by GitHub
parent f28be83afa
commit c5c667ab1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 3 deletions

View file

@ -262,6 +262,7 @@ export const _getLeftPaneLists = (
// We always show pinned conversations // We always show pinned conversations
if (conversation.isPinned) { if (conversation.isPinned) {
pinnedConversations.push(conversation); pinnedConversations.push(conversation);
continue;
} }
if (conversation.activeAt) { if (conversation.activeAt) {

View file

@ -1306,13 +1306,22 @@ describe('both/state/selectors/conversations', () => {
}, },
}; };
const comparator = _getConversationComparator(); const comparator = _getConversationComparator();
const { conversations } = _getLeftPaneLists(data, comparator); const {
archivedConversations,
conversations,
pinnedConversations,
} = _getLeftPaneLists(data, comparator);
assert.strictEqual(conversations[0].name, 'First!'); assert.strictEqual(conversations[0].name, 'First!');
assert.strictEqual(conversations[1].name, 'Á'); assert.strictEqual(conversations[1].name, 'Á');
assert.strictEqual(conversations[2].name, 'B'); assert.strictEqual(conversations[2].name, 'B');
assert.strictEqual(conversations[3].name, 'C'); assert.strictEqual(conversations[3].name, 'C');
assert.strictEqual(conversations[4].name, 'No timestamp'); assert.strictEqual(conversations[4].name, 'No timestamp');
assert.strictEqual(conversations.length, 5);
assert.strictEqual(archivedConversations.length, 0);
assert.strictEqual(pinnedConversations.length, 0);
}); });
describe('given pinned conversations', () => { describe('given pinned conversations', () => {
@ -1400,7 +1409,11 @@ describe('both/state/selectors/conversations', () => {
const pinnedConversationIds = ['pin1', 'pin2', 'pin3']; const pinnedConversationIds = ['pin1', 'pin2', 'pin3'];
const comparator = _getConversationComparator(); const comparator = _getConversationComparator();
const { pinnedConversations } = _getLeftPaneLists( const {
archivedConversations,
conversations,
pinnedConversations,
} = _getLeftPaneLists(
data, data,
comparator, comparator,
undefined, undefined,
@ -1410,6 +1423,10 @@ describe('both/state/selectors/conversations', () => {
assert.strictEqual(pinnedConversations[0].name, 'Pin One'); assert.strictEqual(pinnedConversations[0].name, 'Pin One');
assert.strictEqual(pinnedConversations[1].name, 'Pin Two'); assert.strictEqual(pinnedConversations[1].name, 'Pin Two');
assert.strictEqual(pinnedConversations[2].name, 'Pin Three'); assert.strictEqual(pinnedConversations[2].name, 'Pin Three');
assert.strictEqual(archivedConversations.length, 0);
assert.strictEqual(conversations.length, 0);
}); });
it('includes archived and pinned conversations with no active_at', () => { it('includes archived and pinned conversations with no active_at', () => {
@ -1545,8 +1562,9 @@ describe('both/state/selectors/conversations', () => {
const pinnedConversationIds = ['pin1', 'pin2', 'pin3']; const pinnedConversationIds = ['pin1', 'pin2', 'pin3'];
const comparator = _getConversationComparator(); const comparator = _getConversationComparator();
const { const {
pinnedConversations,
archivedConversations, archivedConversations,
conversations,
pinnedConversations,
} = _getLeftPaneLists( } = _getLeftPaneLists(
data, data,
comparator, comparator,
@ -1561,6 +1579,8 @@ describe('both/state/selectors/conversations', () => {
assert.strictEqual(archivedConversations[0].name, 'Pin Four'); assert.strictEqual(archivedConversations[0].name, 'Pin Four');
assert.strictEqual(archivedConversations.length, 1); assert.strictEqual(archivedConversations.length, 1);
assert.strictEqual(conversations.length, 0);
}); });
}); });
}); });