You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			106 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
describe('ConversationSearchView', function() {
 | 
						|
  it('should match partial numbers', function() {
 | 
						|
    var $el = $('<div><div class="new-contact contact hide"></div></div>');
 | 
						|
    var view = new Whisper.ConversationSearchView({el: $el, input: $('<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 = $('<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 = $('<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 = $('<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');
 | 
						|
          });
 | 
						|
      });
 | 
						|
  });
 | 
						|
 | 
						|
});
 |