signal-desktop/test/views/message_view_test.js

40 lines
1.3 KiB
JavaScript
Raw Normal View History

2014-09-01 18:52:58 +00:00
describe('MessageView', function() {
2014-10-29 19:53:54 +00:00
var thread = Whisper.Threads.add({id: 'foo'});
var message = thread.messages().add({
threadId: thread.id,
2014-09-01 18:52:58 +00:00
body: 'hello world',
type: 'outgoing',
timestamp: new Date().getTime()
});
2014-09-04 07:25:08 +00:00
it('should display the message text', function() {
2014-09-01 18:52:58 +00:00
var view = new Whisper.MessageView({model: message});
2014-09-04 07:25:08 +00:00
assert.match(view.render().$el.html(), /hello world/);
});
2014-09-01 18:52:58 +00:00
2014-09-04 07:25:08 +00:00
it('should auto-update the message text', function() {
var view = new Whisper.MessageView({model: message});
message.set('body', 'goodbye world');
assert.match(view.$el.html(), /goodbye world/);
});
2014-09-01 18:52:58 +00:00
it('should have a nice timestamp', function() {
var view = new Whisper.MessageView({model: message});
message.set({'timestamp': new Date().getTime() - 5000});
assert.match(view.$el.html(), /seconds ago/);
message.set({'timestamp': new Date().getTime() - 60000});
assert.match(view.$el.html(), /minute ago/);
message.set({'timestamp': new Date().getTime() - 3600000});
assert.match(view.$el.html(), /hour ago/);
});
2014-09-04 07:25:08 +00:00
it('should go away when the model is destroyed', function() {
var view = new Whisper.MessageView({model: message});
var div = $('<div>').append(view.$el);
message.destroy();
assert.strictEqual(div.find(view.$el).length, 0);
2014-09-01 18:52:58 +00:00
});
});