diff --git a/js/views/inbox_view.js b/js/views/inbox_view.js index ceb359894..2263577e1 100644 --- a/js/views/inbox_view.js +++ b/js/views/inbox_view.js @@ -28,8 +28,8 @@ $el = view.$el; } $el.prependTo(this.el); - conversation.trigger('opened'); } + conversation.trigger('opened'); }, }); diff --git a/test/index.html b/test/index.html index 76ad1ad62..5a8c945f4 100644 --- a/test/index.html +++ b/test/index.html @@ -624,6 +624,7 @@ + diff --git a/test/views/inbox_view_test.js b/test/views/inbox_view_test.js new file mode 100644 index 000000000..341e09a45 --- /dev/null +++ b/test/views/inbox_view_test.js @@ -0,0 +1,41 @@ +describe('InboxView', function() { + var inboxView = new Whisper.InboxView({ + model: {}, + window: window, + initialLoadComplete: function() {} + }).render(); + + var conversation = new Whisper.Conversation({ id: '1234', type: 'private'}); + + describe('the conversation stack', function() { + it('should be rendered', function() { + assert.ok(inboxView.$('.conversation-stack').length === 1); + }); + + describe('opening a conversation', function() { + var triggeredOpenedCount = 0; + + before(function() { + conversation.on('opened', function() { + triggeredOpenedCount++; + }); + + inboxView.conversation_stack.open(conversation); + }); + + it('should trigger an opened event', function() { + assert.ok(triggeredOpenedCount === 1); + }); + + describe('and then opening it again immediately', function() { + before(function() { + inboxView.conversation_stack.open(conversation); + }); + + it('should trigger the opened event again', function() { + assert.ok(triggeredOpenedCount === 2); + }); + }); + }); + }); +});