mirror of https://github.com/zulip/zulip.git
peer_data: Extend get_subscriber_count to allow excluding bots.
The new buddy list code path will want to be able to do this.
This commit is contained in:
parent
a46c4f7b7e
commit
772ed724c0
|
@ -69,9 +69,18 @@ export function potential_subscribers(stream_id: number): User[] {
|
||||||
return people.filter_all_users(is_potential_subscriber);
|
return people.filter_all_users(is_potential_subscriber);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function get_subscriber_count(stream_id: number): number {
|
export function get_subscriber_count(stream_id: number, include_bots = true): number {
|
||||||
const subscribers = get_user_set(stream_id);
|
if (include_bots) {
|
||||||
return subscribers.size;
|
return get_user_set(stream_id).size;
|
||||||
|
}
|
||||||
|
|
||||||
|
let count = 0;
|
||||||
|
for (const user_id of get_user_set(stream_id).keys()) {
|
||||||
|
if (!people.is_valid_bot_user(user_id)) {
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function get_subscribers(stream_id: number): number[] {
|
export function get_subscribers(stream_id: number): number[] {
|
||||||
|
|
|
@ -214,6 +214,13 @@ test("get_subscriber_count", () => {
|
||||||
people.add_active_user(fred);
|
people.add_active_user(fred);
|
||||||
people.add_active_user(gail);
|
people.add_active_user(gail);
|
||||||
people.add_active_user(george);
|
people.add_active_user(george);
|
||||||
|
const welcome_bot = {
|
||||||
|
email: "welcome-bot@example.com",
|
||||||
|
user_id: 40,
|
||||||
|
full_name: "Welcome Bot",
|
||||||
|
is_bot: true,
|
||||||
|
};
|
||||||
|
people.add_active_user(welcome_bot);
|
||||||
|
|
||||||
const india = {
|
const india = {
|
||||||
stream_id: 102,
|
stream_id: 102,
|
||||||
|
@ -235,6 +242,11 @@ test("get_subscriber_count", () => {
|
||||||
|
|
||||||
peer_data.remove_subscriber(india.stream_id, george.user_id);
|
peer_data.remove_subscriber(india.stream_id, george.user_id);
|
||||||
assert.deepStrictEqual(peer_data.get_subscriber_count(india.stream_id), 1);
|
assert.deepStrictEqual(peer_data.get_subscriber_count(india.stream_id), 1);
|
||||||
|
|
||||||
|
peer_data.add_subscriber(india.stream_id, welcome_bot.user_id);
|
||||||
|
assert.deepStrictEqual(peer_data.get_subscriber_count(india.stream_id), 2);
|
||||||
|
// Get the count without bots
|
||||||
|
assert.deepStrictEqual(peer_data.get_subscriber_count(india.stream_id, false), 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("is_subscriber_subset", () => {
|
test("is_subscriber_subset", () => {
|
||||||
|
|
Loading…
Reference in New Issue