mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	node tests: Clear data for presence tests.
I considered using set_info({}, 0) to clear data,
but it has a lot of machinery that could lead
to accidental line coverage and/or extra test
complexity.
			
			
This commit is contained in:
		
				
					committed by
					
						
						Steve Howell
					
				
			
			
				
	
			
			
			
						parent
						
							bbf529f2a5
						
					
				
				
					commit
					f5506c78aa
				
			@@ -74,11 +74,18 @@ people.add_active_user(john);
 | 
			
		||||
people.add_active_user(jane);
 | 
			
		||||
people.initialize_current_user(me.user_id);
 | 
			
		||||
 | 
			
		||||
run_test("my user", () => {
 | 
			
		||||
function test(label, f) {
 | 
			
		||||
    run_test(label, (override) => {
 | 
			
		||||
        presence.clear_internal_data();
 | 
			
		||||
        f(override);
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
test("my user", () => {
 | 
			
		||||
    assert.equal(presence.get_status(me.user_id), "active");
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
run_test("unknown user", (override) => {
 | 
			
		||||
test("unknown user", (override) => {
 | 
			
		||||
    const unknown_user_id = 999;
 | 
			
		||||
    const now = 888888;
 | 
			
		||||
    const presences = {};
 | 
			
		||||
@@ -98,7 +105,7 @@ run_test("unknown user", (override) => {
 | 
			
		||||
    presence.set_info(presences, now);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
run_test("status_from_raw", () => {
 | 
			
		||||
test("status_from_raw", () => {
 | 
			
		||||
    const status_from_raw = presence.status_from_raw;
 | 
			
		||||
 | 
			
		||||
    const now = 5000;
 | 
			
		||||
@@ -135,7 +142,7 @@ run_test("status_from_raw", () => {
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
run_test("set_presence_info", () => {
 | 
			
		||||
test("set_presence_info", () => {
 | 
			
		||||
    const presences = {};
 | 
			
		||||
    const now = 5000;
 | 
			
		||||
    const recent = now + 1 - OFFLINE_THRESHOLD_SECS;
 | 
			
		||||
@@ -210,7 +217,7 @@ run_test("set_presence_info", () => {
 | 
			
		||||
    assert.equal(presence.get_status(jane.user_id), "idle");
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
run_test("falsy values", () => {
 | 
			
		||||
test("falsy values", () => {
 | 
			
		||||
    /*
 | 
			
		||||
        When a user does not have a relevant active timestamp,
 | 
			
		||||
        the server just leaves off the `active_timestamp` field
 | 
			
		||||
@@ -252,7 +259,7 @@ run_test("falsy values", () => {
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
run_test("big realms", () => {
 | 
			
		||||
test("big realms", () => {
 | 
			
		||||
    const presences = {};
 | 
			
		||||
    const now = 5000;
 | 
			
		||||
 | 
			
		||||
@@ -271,7 +278,7 @@ run_test("big realms", () => {
 | 
			
		||||
    people.get_active_human_count = get_active_human_count;
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
run_test("last_active_date", () => {
 | 
			
		||||
test("last_active_date", () => {
 | 
			
		||||
    const unknown_id = 42;
 | 
			
		||||
    presence.presence_info.clear();
 | 
			
		||||
    presence.presence_info.set(alice.user_id, {last_active: 500});
 | 
			
		||||
@@ -282,7 +289,7 @@ run_test("last_active_date", () => {
 | 
			
		||||
    assert.deepEqual(presence.last_active_date(alice.user_id), new Date(500 * 1000));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
run_test("update_info_from_event", () => {
 | 
			
		||||
test("update_info_from_event", () => {
 | 
			
		||||
    let info;
 | 
			
		||||
 | 
			
		||||
    info = {
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,12 @@ import * as server_events from "./server_events";
 | 
			
		||||
const raw_info = new Map();
 | 
			
		||||
export const presence_info = new Map();
 | 
			
		||||
 | 
			
		||||
// We use this internally and export it for testing convenience.
 | 
			
		||||
export function clear_internal_data() {
 | 
			
		||||
    raw_info.clear();
 | 
			
		||||
    presence_info.clear();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Mark users as offline after 140 seconds since their last checkin,
 | 
			
		||||
 * Keep in sync with zerver/tornado/event_queue.py:receiver_is_idle
 | 
			
		||||
 */
 | 
			
		||||
@@ -148,8 +154,7 @@ export function set_info(presences, server_timestamp) {
 | 
			
		||||
        }
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    raw_info.clear();
 | 
			
		||||
    presence_info.clear();
 | 
			
		||||
    clear_internal_data();
 | 
			
		||||
    for (const [user_id_str, info] of Object.entries(presences)) {
 | 
			
		||||
        const user_id = Number.parseInt(user_id_str, 10);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user