         ReactDOM.findDOMNode(@$composer).dispatchEvent(new CustomEvent('composer:send-message'))
         expect(Actions.sendDraft).toHaveBeenCalledWith(DRAFT_CLIENT_ID, 'send')
         expect(Actions.sendDraft.calls.length).toBe 1
-        @isSending = true
-        DraftStore.trigger()
         ReactDOM.findDOMNode(@$composer).dispatchEvent(new CustomEvent('composer:send-message'))
         expect(Actions.sendDraft).toHaveBeenCalledWith(DRAFT_CLIENT_ID, 'send')
         expect(Actions.sendDraft.calls.length).toBe 1
 
   describe "drag and drop", ->
     beforeEach ->
-      useDraft.call @,
+      sessionSetupComplete = false
+      useDraft.call(@,
         to: [u1]
         subject: "Hello World"
         body: ""
-        files: [f1]
-      makeComposer.call(@)
+        files: [f1])
+      .then( =>
+        makeComposer.call(@)
+        sessionSetupComplete = true
+      )
+      waitsFor(( => sessionSetupComplete), "The session's draft needs to be set", 500)
 
     describe "_shouldAcceptDrop", ->
       it "should return true if the event is carrying native files", ->


      spyOn(Actions, "fetchFile")

      useDraft.call @, files: [@file1, @file2]
      makeComposer.call @

    it 'starts fetching attached files', ->
      waitsFor ->

    advanceClock()
    expect(Actions.insertAttachmentIntoDraft).toHaveBeenCalled()
    expect(@upload.inline).toEqual(true)
