Mailspring/spec-nylas/stores/focused-content-store-spec.coffee
Ben Gotow d5e1816d88 fix(thread-list): Narrow mode, and new selection rules for three-pane
Summary:
Fix bug in apm_wrapper

Refactor model selection so that it's easier to understand the logic for split vs list mode

Test Plan: Run new specs (WIP)

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1619
2015-06-11 18:00:40 -07:00

49 lines
2.2 KiB
CoffeeScript

_ = require 'underscore'
Thread = require '../../src/flux/models/thread'
FocusedContentStore = require '../../src/flux/stores/focused-content-store'
MarkThreadReadTask = require '../../src/flux/tasks/mark-thread-read'
Actions = require '../../src/flux/actions'
testThread = new Thread(id: '123')
describe "FocusedContentStore", ->
describe "onSetFocus", ->
it "should not trigger if the thread is already focused", ->
FocusedContentStore._onFocus({collection: 'thread', item: testThread})
spyOn(FocusedContentStore, 'trigger')
FocusedContentStore._onFocus({collection: 'thread', item: testThread})
expect(FocusedContentStore.trigger).not.toHaveBeenCalled()
it "should not trigger if the focus is already null", ->
FocusedContentStore._onFocus({collection: 'thread', item: null})
spyOn(FocusedContentStore, 'trigger')
FocusedContentStore._onFocus({collection: 'thread', item: null})
expect(FocusedContentStore.trigger).not.toHaveBeenCalled()
it "should trigger otherwise", ->
FocusedContentStore._onFocus({collection: 'thread', item: null})
spyOn(FocusedContentStore, 'trigger')
FocusedContentStore._onFocus({collection: 'thread', item: testThread})
expect(FocusedContentStore.trigger).toHaveBeenCalled()
describe "when the thread is unread", ->
beforeEach ->
FocusedContentStore._onFocus({collection: 'thread', item: null})
spyOn(testThread, 'isUnread').andCallFake -> true
it "should queue a task to mark the thread as read", ->
spyOn(Actions, 'queueTask')
FocusedContentStore._onFocus({collection: 'thread', item: testThread})
expect(Actions.queueTask).toHaveBeenCalled()
expect(Actions.queueTask.mostRecentCall.args[0] instanceof MarkThreadReadTask).toBe(true)
describe "threadId", ->
it "should return the id of the focused thread", ->
FocusedContentStore._onFocus({collection: 'thread', item: testThread})
expect(FocusedContentStore.focusedId('thread')).toBe(testThread.id)
describe "thread", ->
it "should return the focused thread object", ->
FocusedContentStore._onFocus({collection: 'thread', item: testThread})
expect(FocusedContentStore.focused('thread')).toBe(testThread)