describe('ConversationSearchView', function() { it('should match partial numbers', function() { var $el = $('
'); var view = new Whisper.ConversationSearchView({el: $el, input: $('')}).render(); var maybe_numbers = [ "+1 415", "+1415", "+1415", "415", "(415)", " (415", "(415) 123 4567", "+1 (415) 123 4567", " +1 (415) 123 4567", "1 (415) 123 4567", "1 415-123-4567", "415-123-4567" ]; maybe_numbers.forEach(function(n) { assert.ok(view.maybeNumber(n), n); }); }); describe('Searching for left groups', function() { var convo = new Whisper.ConversationCollection().add({ id: 'a-left-group', name: 'i left this group', members: [], type: 'group', left: true }); before(function(done) { convo.save().then(done); }); describe('with no messages', function() { var input = $(''); var view = new Whisper.ConversationSearchView({ input: input }).render(); before(function(done) { view.$input.val('left'); view.filterContacts(); view.typeahead_view.collection.on('reset', function() { done(); }); }); it('should not surface left groups with no messages', function() { assert.isUndefined(view.typeahead_view.collection.get(convo.id), 'got left group'); }); }); describe('with messages', function() { var input = $(''); var view = new Whisper.ConversationSearchView({ input: input }).render(); before(function(done) { convo.save({lastMessage: 'asdf'}).then(function() { view.$input.val('left'); view.filterContacts(); view.typeahead_view.collection.on('reset', function() { done(); }); }); }); it('should surface left groups with messages', function() { assert.isDefined(view.typeahead_view.collection.get(convo.id), 'got left group'); }); }); }); describe('Showing all contacts', function() { var input = $(''); var view = new Whisper.ConversationSearchView({ input: input }).render(); view.showAllContacts = true; var convo = new Whisper.ConversationCollection().add({ id: 'a-left-group', name: 'i left this group', members: [], type: 'group', left: true }); before(function(done) { convo.save().then(done); }); describe('with no messages', function() { before(function(done) { view.resetTypeahead(); view.typeahead_view.collection.on('reset', function() { done(); }); }); it('should not surface left groups with no messages', function() { assert.isUndefined(view.typeahead_view.collection.get(convo.id), 'got left group'); }); }); describe('with messages', function() { before(function(done) { convo.save({lastMessage: 'asdf'}).then(function() { view.typeahead_view.collection.on('reset', function() { done(); }); view.resetTypeahead(); }); }); it('should surface left groups with messages', function() { assert.isDefined(view.typeahead_view.collection.get(convo.id), 'got left group'); }); }); }); });