mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	In stream settings, if user add subscriber to unsubscribed public stream from `Add` input widget it gives lots of blueslip warnings, cause user isn't subscribed to public stream. Fix this by changing condition to `sub.can_access_subscriber` from `sub.subscribed` in blueslip warning, cause user can access subscribers in such cases even if not subscribed to stream. Tweaked by tabbott to make the node tests pass.
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
set_global('$', function () {
 | 
						|
});
 | 
						|
set_global('blueslip', {});
 | 
						|
global.blueslip.warn = function () {};
 | 
						|
 | 
						|
zrequire('util');
 | 
						|
zrequire('stream_data');
 | 
						|
zrequire('people');
 | 
						|
zrequire('compose_fade');
 | 
						|
 | 
						|
var me = {
 | 
						|
    email: 'me@example.com',
 | 
						|
    user_id: 30,
 | 
						|
    full_name: 'Me Myself',
 | 
						|
};
 | 
						|
 | 
						|
var alice = {
 | 
						|
    email: 'alice@example.com',
 | 
						|
    user_id: 31,
 | 
						|
    full_name: 'Alice',
 | 
						|
};
 | 
						|
 | 
						|
var bob = {
 | 
						|
    email: 'bob@example.com',
 | 
						|
    user_id: 32,
 | 
						|
    full_name: 'Bob',
 | 
						|
};
 | 
						|
 | 
						|
people.add(me);
 | 
						|
people.initialize_current_user(me.user_id);
 | 
						|
 | 
						|
people.add(alice);
 | 
						|
people.add(bob);
 | 
						|
 | 
						|
 | 
						|
(function test_set_focused_recipient() {
 | 
						|
    var sub = {
 | 
						|
        stream_id: 101,
 | 
						|
        name: 'social',
 | 
						|
        subscribed: true,
 | 
						|
        can_access_subscribers: true,
 | 
						|
    };
 | 
						|
    stream_data.add_sub('social', sub);
 | 
						|
    stream_data.set_subscribers(sub, [me.user_id, alice.user_id]);
 | 
						|
 | 
						|
    global.$ = function (selector) {
 | 
						|
        switch (selector) {
 | 
						|
        case '#stream':
 | 
						|
            return {
 | 
						|
                val: function () {
 | 
						|
                    return 'social';
 | 
						|
                },
 | 
						|
            };
 | 
						|
        case '#subject':
 | 
						|
            return {
 | 
						|
                val: function () {
 | 
						|
                    return 'lunch';
 | 
						|
                },
 | 
						|
            };
 | 
						|
        }
 | 
						|
    };
 | 
						|
 | 
						|
    compose_fade.set_focused_recipient('stream');
 | 
						|
 | 
						|
    assert(compose_fade.would_receive_message('me@example.com'));
 | 
						|
    assert(compose_fade.would_receive_message('alice@example.com'));
 | 
						|
    assert(!compose_fade.would_receive_message('bob@example.com'));
 | 
						|
 | 
						|
    var good_msg = {
 | 
						|
        type: 'stream',
 | 
						|
        stream_id: 101,
 | 
						|
        subject: 'lunch',
 | 
						|
    };
 | 
						|
    var bad_msg = {
 | 
						|
        type: 'stream',
 | 
						|
        stream_id: 999,
 | 
						|
        subject: 'lunch',
 | 
						|
    };
 | 
						|
    assert(!compose_fade.should_fade_message(good_msg));
 | 
						|
    assert(compose_fade.should_fade_message(bad_msg));
 | 
						|
}());
 |