       .then null, err
 
       tick()
+
+  # ## Singleton Objects
+  describe "Singleton Resource", ->
+    # ### Mock Server on `/me`
+    beforeEach inject ($httpBackend) ->
+      _data =
+        name: "Pascal"
+        awesomeness: 42
+
+      $httpBackend.whenGET('/me').respond (method, url, data) ->
+        log "GET /me"
+        [200, _data, {}]
+
+      $httpBackend.whenPOST('/me').respond (method, url, data) ->
+        log "POST /me", data
+        _data = _.extend(data, _data)
+        log "new data", _data
+        [200, _data, {}]
+
+    # ### Initialize new Collection each time
+    Me = null
+    beforeEach inject (Collection) ->
+      Me = Collection.new "Me", is_singleton: true
+
+    it 'should fetch an object', (done) ->
+      me = Me.all()
+
+      me.$promise.then ->
+        expect(me.data).to.be.an('object')
+        expect(me.data).to.contain.keys('name', 'awesomeness')
+        done(null)
+      .then null, (err) ->
+        done new Error JSON.stringify err
+
+      tick()
+
+    it 'should update an object', (done) ->
+      oldMe = me = Me.all()
+
+      me.$promise.then ->
+        oldMe = _.cloneDeep(me)
+        log "awesomeness", me.data.awesomeness
+        me.data.awesomeness += 1
+        log "awesomeness", me.data.awesomeness
+        Me.save(me.data)
+      .then (newMe) ->
+        expect(newMe.awesomeness).to.be.above oldMe.data.awesomeness
+        expect(newMe.name).to.eql oldMe.data.name
+
+        done(null)
+      .then null, (err) ->
+        done new Error JSON.stringify err
+
+      tick()
+

        new_subject = 'Shiny Message'

        # Clone message and edit the clone so it is a new reference
        updated_message = _.clone(message.data)
        updated_message.subject = new_subject

        saved_message = Messages.save(updated_message)


      $httpBackend.whenPOST(messageDetailUrl).respond (method, url, data) ->
        id = messageDetailUrl.exec(url)[1]
        log "POST /messages/#{id}"
        message = _.findWhere messages, id: id
        message = data
        [200, message, {}]
