mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	This lets us simplify the long-ish ‘../../static/js’ paths, and will remove the need for the ‘zrequire’ wrapper. Signed-off-by: Anders Kaseorg <anders@zulip.com>
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
const {strict: assert} = require("assert");
 | 
						|
 | 
						|
const {mock_jquery, zrequire} = require("./lib/namespace");
 | 
						|
const {run_test} = require("./lib/test");
 | 
						|
 | 
						|
mock_jquery((selector) => {
 | 
						|
    switch (selector) {
 | 
						|
        case "#stream_message_recipient_stream":
 | 
						|
            return {
 | 
						|
                val() {
 | 
						|
                    return "social";
 | 
						|
                },
 | 
						|
            };
 | 
						|
        case "#stream_message_recipient_topic":
 | 
						|
            return {
 | 
						|
                val() {
 | 
						|
                    return "lunch";
 | 
						|
                },
 | 
						|
            };
 | 
						|
        /* istanbul ignore next */
 | 
						|
        default:
 | 
						|
            throw new Error(`Unknown selector ${selector}`);
 | 
						|
    }
 | 
						|
});
 | 
						|
 | 
						|
const stream_data = zrequire("stream_data");
 | 
						|
const peer_data = zrequire("peer_data");
 | 
						|
const people = zrequire("people");
 | 
						|
const compose_fade = zrequire("compose_fade");
 | 
						|
const compose_fade_helper = zrequire("compose_fade_helper");
 | 
						|
 | 
						|
const me = {
 | 
						|
    email: "me@example.com",
 | 
						|
    user_id: 30,
 | 
						|
    full_name: "Me Myself",
 | 
						|
};
 | 
						|
 | 
						|
const alice = {
 | 
						|
    email: "alice@example.com",
 | 
						|
    user_id: 31,
 | 
						|
    full_name: "Alice",
 | 
						|
};
 | 
						|
 | 
						|
const bob = {
 | 
						|
    email: "bob@example.com",
 | 
						|
    user_id: 32,
 | 
						|
    full_name: "Bob",
 | 
						|
};
 | 
						|
 | 
						|
people.add_active_user(me);
 | 
						|
people.initialize_current_user(me.user_id);
 | 
						|
 | 
						|
people.add_active_user(alice);
 | 
						|
people.add_active_user(bob);
 | 
						|
 | 
						|
run_test("set_focused_recipient", () => {
 | 
						|
    const sub = {
 | 
						|
        stream_id: 101,
 | 
						|
        name: "social",
 | 
						|
        subscribed: true,
 | 
						|
    };
 | 
						|
 | 
						|
    compose_fade.set_focused_recipient("stream");
 | 
						|
 | 
						|
    // If a stream is unknown, then we turn off the compose-fade
 | 
						|
    // feature, since a mix won't happen if the message can't be
 | 
						|
    // delivered.
 | 
						|
    stream_data.clear_subscriptions();
 | 
						|
    assert.equal(compose_fade_helper.would_receive_message(bob.user_id), true);
 | 
						|
 | 
						|
    stream_data.add_sub(sub);
 | 
						|
    peer_data.set_subscribers(sub.stream_id, [me.user_id, alice.user_id]);
 | 
						|
    compose_fade.set_focused_recipient("stream");
 | 
						|
 | 
						|
    assert.equal(compose_fade_helper.would_receive_message(me.user_id), true);
 | 
						|
    assert.equal(compose_fade_helper.would_receive_message(alice.user_id), true);
 | 
						|
    assert.equal(compose_fade_helper.would_receive_message(bob.user_id), false);
 | 
						|
 | 
						|
    const good_msg = {
 | 
						|
        type: "stream",
 | 
						|
        stream_id: 101,
 | 
						|
        topic: "lunch",
 | 
						|
    };
 | 
						|
    const bad_msg = {
 | 
						|
        type: "stream",
 | 
						|
        stream_id: 999,
 | 
						|
        topic: "lunch",
 | 
						|
    };
 | 
						|
    assert.ok(!compose_fade_helper.should_fade_message(good_msg));
 | 
						|
    assert.ok(compose_fade_helper.should_fade_message(bad_msg));
 | 
						|
});
 |