diff --git a/internal_packages/message-list/spec/message-list-spec.cjsx b/internal_packages/message-list/spec/message-list-spec.cjsx index 1822d64d7..e14936dc9 100644 --- a/internal_packages/message-list/spec/message-list-spec.cjsx +++ b/internal_packages/message-list/spec/message-list-spec.cjsx @@ -212,6 +212,7 @@ describe "MessageList", -> describe "Populated Message list", -> beforeEach -> MessageStore._items = testMessages + MessageStore._expandItemsToDefault() MessageStore.trigger(MessageStore) @message_list.setState currentThread: test_thread @@ -220,6 +221,10 @@ describe "MessageList", -> MessageItem) expect(items.length).toBe 5 + it "renders the correct number of expanded messages", -> + msgs = TestUtils.scryRenderedDOMComponentsWithClass(@message_list, "message-item-wrap collapsed") + expect(msgs.length).toBe 4 + it "aggregates participants across all messages", -> expect(@message_list._threadParticipants().length).toBe 4 expect(@message_list._threadParticipants()[0] instanceof Contact).toBe true @@ -227,13 +232,7 @@ describe "MessageList", -> it "displays lists of participants on the page", -> items = TestUtils.scryRenderedComponentsWithType(@message_list, MessageParticipants) - expect(items.length).toBe 5 - - # We no longer do this (for now) - # it "displays the thread participants on the page", -> - # items = TestUtils.scryRenderedComponentsWithType(@message_list, - # ParticipantsItem) - # expect(items.length).toBe 1 + expect(items.length).toBe 1 it "focuses new composers when a draft is added", -> spyOn(@message_list, "_focusDraft") diff --git a/src/flux/stores/message-store.coffee b/src/flux/stores/message-store.coffee index 0286c2f42..b6b7a97c0 100644 --- a/src/flux/stores/message-store.coffee +++ b/src/flux/stores/message-store.coffee @@ -111,10 +111,7 @@ MessageStore = Reflux.createStore atom.inbox.getCollection namespace.id, 'messages', {thread_id: @_threadId} loaded = false - # Expand all unread messages, all drafts, and the last message - for item, idx in @_items - if item.unread or item.draft or idx is @_items.length - 1 - @_itemsExpanded[item.id] = true + @_expandItemsToDefault() # Check that expanded messages have bodies. We won't mark ourselves # as loaded until they're all available. Note that items can be manually @@ -139,6 +136,12 @@ MessageStore = Reflux.createStore @_itemsLoading = false @trigger(@) + # Expand all unread messages, all drafts, and the last message + _expandItemsToDefault: -> + for item, idx in @_items + if item.unread or item.draft or idx is @_items.length - 1 + @_itemsExpanded[item.id] = true + _fetchMessageIdFromAPI: (id) -> return if @_inflight[id]