refactor: Extract stream_settings_data.

This is mostly a pure code move.

In passing I remove an unneeded call to
update_calculated_fields in the dispatch code,
plus some tests that don't need them.
This commit is contained in:
Steve Howell
2021-04-04 13:15:18 +00:00
committed by Tim Abbott
parent e7f24ac8d4
commit 4380fe4eaf
17 changed files with 246 additions and 234 deletions

View File

@@ -16,6 +16,7 @@ const peer_data = zrequire("peer_data");
const people = zrequire("people");
const presence = zrequire("presence");
const stream_data = zrequire("stream_data");
const stream_settings_data = zrequire("stream_settings_data");
const user_status = zrequire("user_status");
const buddy_data = zrequire("buddy_data");
@@ -179,7 +180,7 @@ test("compose fade interactions (streams)", () => {
};
stream_data.add_sub(sub);
stream_data.subscribe_myself(sub);
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
people.add_active_user(fred);
@@ -225,7 +226,7 @@ test("compose fade interactions (missing topic)", () => {
};
stream_data.add_sub(sub);
stream_data.subscribe_myself(sub);
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
people.add_active_user(fred);

View File

@@ -187,7 +187,6 @@ test("stream create", (override) => {
const stub = make_stub();
override(stream_data, "create_streams", stub.f);
override(stream_data, "get_sub_by_id", noop);
override(stream_data, "update_calculated_fields", noop);
override(subs, "add_sub_to_table", noop);
override(overlays, "streams_open", () => true);
dispatch(event);

View File

@@ -16,6 +16,7 @@ const narrow_banner = zrequire("narrow_banner");
const narrow_state = zrequire("narrow_state");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const stream_settings_data = zrequire("stream_settings_data");
const {Filter} = zrequire("../js/filter");
const narrow = zrequire("narrow");
@@ -117,7 +118,7 @@ run_test("show_empty_narrow_message", () => {
// for non sub public stream
stream_data.add_sub({name: "ROME", stream_id: 99});
stream_data.update_calculated_fields(stream_data.get_sub("ROME"));
stream_settings_data.update_calculated_fields(stream_data.get_sub("ROME"));
set_filter([["stream", "Rome"]]);
hide_all_empty_narrow_messages();
narrow_banner.show_empty_narrow_message();

View File

@@ -16,6 +16,7 @@ const {page_params} = require("../zjsunit/zpage_params");
const peer_data = zrequire("peer_data");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const stream_settings_data = zrequire("stream_settings_data");
page_params.is_admin = false;
page_params.realm_users = [];
@@ -113,7 +114,7 @@ test("subscribers", () => {
]);
peer_data.set_subscribers(stream_id, [me.user_id, fred.user_id, george.user_id]);
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
assert(stream_data.is_user_subscribed(stream_id, me.user_id));
assert(stream_data.is_user_subscribed(stream_id, fred.user_id));
assert(stream_data.is_user_subscribed(stream_id, george.user_id));
@@ -181,7 +182,7 @@ test("subscribers", () => {
// Verify that we noop and don't crash when unsubscribed.
sub.subscribed = false;
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
peer_data.add_subscriber(stream_id, brutus.user_id);
assert.equal(stream_data.is_user_subscribed(stream_id, brutus.user_id), true);
peer_data.remove_subscriber(stream_id, brutus.user_id);
@@ -195,7 +196,7 @@ test("subscribers", () => {
2,
);
sub.invite_only = true;
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
assert.equal(stream_data.is_user_subscribed(stream_id, brutus.user_id), undefined);
peer_data.remove_subscriber(stream_id, brutus.user_id);
assert.equal(stream_data.is_user_subscribed(stream_id, brutus.user_id), undefined);

View File

@@ -55,6 +55,7 @@ set_global("FormData", _FormData);
const settings_config = zrequire("settings_config");
const settings_bots = zrequire("settings_bots");
const stream_data = zrequire("stream_data");
const stream_settings_data = zrequire("stream_settings_data");
const settings_account = zrequire("settings_account");
const settings_org = zrequire("settings_org");
const dropdown_list_widget = zrequire("dropdown_list_widget");
@@ -901,7 +902,7 @@ test("test get_sorted_options_list", () => {
assert.deepEqual(settings_org.get_sorted_options_list(option_values_2), expected_option_values);
});
test("misc", () => {
test("misc", (override) => {
page_params.is_admin = false;
const stub_notification_disable_parent = $.create("<stub notification_disable parent");
@@ -972,7 +973,7 @@ test("misc", () => {
settings_account.update_email_change_display();
assert(!$("#change_email .button").prop("disabled"));
stream_data.__Rewire__("get_streams_for_settings_page", () => [
override(stream_settings_data, "get_streams_for_settings_page", () => [
{name: "some_stream", stream_id: 75},
{name: "some_stream", stream_id: 42},
]);

View File

@@ -13,6 +13,7 @@ const color_data = zrequire("color_data");
const stream_topic_history = zrequire("stream_topic_history");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const stream_settings_data = zrequire("stream_settings_data");
const settings_config = zrequire("settings_config");
const me = {
@@ -253,7 +254,7 @@ test("admin_options", () => {
// non-admins can't do anything
page_params.is_admin = false;
let sub = make_sub();
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
assert(!sub.is_realm_admin);
assert(!sub.can_change_stream_permissions);
@@ -265,7 +266,7 @@ test("admin_options", () => {
// admins can make public streams become private
sub = make_sub();
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
assert(sub.is_realm_admin);
assert(sub.can_change_stream_permissions);
@@ -274,14 +275,14 @@ test("admin_options", () => {
sub = make_sub();
sub.invite_only = true;
sub.subscribed = false;
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
assert(sub.is_realm_admin);
assert(!sub.can_change_stream_permissions);
sub = make_sub();
sub.invite_only = true;
sub.subscribed = true;
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
assert(sub.is_realm_admin);
assert(sub.can_change_stream_permissions);
});
@@ -317,7 +318,7 @@ test("stream_settings", () => {
stream_data.add_sub(amber);
stream_data.add_sub(blue);
let sub_rows = stream_data.get_streams_for_settings_page();
let sub_rows = stream_settings_data.get_streams_for_settings_page();
assert.equal(sub_rows[0].color, "blue");
assert.equal(sub_rows[1].color, "amber");
assert.equal(sub_rows[2].color, "cinnamon");
@@ -344,17 +345,17 @@ test("stream_settings", () => {
});
stream_data.update_stream_post_policy(sub, 1);
stream_data.update_message_retention_setting(sub, -1);
stream_data.update_calculated_fields(sub);
stream_settings_data.update_calculated_fields(sub);
assert.equal(sub.invite_only, false);
assert.equal(sub.history_public_to_subscribers, false);
assert.equal(sub.stream_post_policy, stream_data.stream_post_policy_values.everyone.code);
assert.equal(sub.message_retention_days, -1);
// For guest user only retrieve subscribed streams
sub_rows = stream_data.get_updated_unsorted_subs();
sub_rows = stream_settings_data.get_updated_unsorted_subs();
assert.equal(sub_rows.length, 3);
page_params.is_guest = true;
sub_rows = stream_data.get_updated_unsorted_subs();
sub_rows = stream_settings_data.get_updated_unsorted_subs();
assert.equal(sub_rows[0].name, "c");
assert.equal(sub_rows[1].name, "a");
assert.equal(sub_rows.length, 2);
@@ -542,7 +543,7 @@ test("notifications", () => {
antarctica.push_notifications = null;
antarctica.wildcard_mentions_notify = null;
const unmatched_streams = stream_data.get_unmatched_streams_for_notification_settings();
const unmatched_streams = stream_settings_data.get_unmatched_streams_for_notification_settings();
const expected_streams = [
{
desktop_notifications: true,
@@ -765,7 +766,7 @@ test("edge_cases", () => {
const bad_stream_ids = [555555, 99999];
// just make sure we don't explode
stream_data.sort_for_stream_settings(bad_stream_ids);
stream_settings_data.sort_for_stream_settings(bad_stream_ids);
});
test("get_invite_stream_data", () => {

View File

@@ -46,6 +46,7 @@ const peer_data = zrequire("peer_data");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const stream_events = zrequire("stream_events");
const stream_settings_data = zrequire("stream_settings_data");
const george = {
email: "george@zulip.com",
@@ -266,7 +267,7 @@ test("marked_subscribed (normal)", (override) => {
const sub = {...frontend};
stream_data.add_sub(sub);
override(stream_data, "subscribe_myself", noop);
override(stream_data, "update_calculated_fields", noop);
override(stream_settings_data, "update_calculated_fields", noop);
override(stream_color, "update_stream_color", noop);
@@ -303,7 +304,7 @@ test("marked_subscribed (normal)", (override) => {
test("marked_subscribed (color)", (override) => {
override(stream_data, "subscribe_myself", noop);
override(stream_data, "update_calculated_fields", noop);
override(stream_settings_data, "update_calculated_fields", noop);
override(message_util, "do_unread_count_updates", noop);
override(stream_list, "add_sidebar_row", noop);
@@ -334,7 +335,7 @@ test("marked_subscribed (color)", (override) => {
test("marked_subscribed (emails)", (override) => {
const sub = {...frontend};
stream_data.add_sub(sub);
override(stream_data, "update_calculated_fields", noop);
override(stream_settings_data, "update_calculated_fields", noop);
override(stream_color, "update_stream_color", noop);
// Test assigning subscriber emails
@@ -357,7 +358,7 @@ test("marked_subscribed (emails)", (override) => {
});
test("mark_unsubscribed (update_settings_for_unsubscribed)", (override) => {
override(stream_data, "update_calculated_fields", noop);
override(stream_settings_data, "update_calculated_fields", noop);
// Test unsubscribe
const sub = {...dev_help};
@@ -378,7 +379,7 @@ test("mark_unsubscribed (render_title_area)", (override) => {
const sub = {...frontend, subscribed: true};
stream_data.add_sub(sub);
override(stream_data, "update_calculated_fields", noop);
override(stream_settings_data, "update_calculated_fields", noop);
// Test update bookend and remove done event
narrow_to_frontend();

View File

@@ -305,9 +305,6 @@ function get_typeahead_result(query, current_stream, current_topic) {
}
test("sort_recipients", () => {
const dev_sub = stream_data.get_sub("Dev");
const linux_sub = stream_data.get_sub("Linux");
// Typeahead for recipientbox [query, "", undefined]
assert.deepEqual(get_typeahead_result("b", ""), [
"b_user_1@zulip.net",
@@ -337,9 +334,6 @@ test("sort_recipients", () => {
peer_data.add_subscriber(1, people.get_user_id(subscriber_email_2));
peer_data.add_subscriber(1, people.get_user_id(subscriber_email_3));
stream_data.update_calculated_fields(dev_sub);
stream_data.update_calculated_fields(linux_sub);
// For splitting based on whether a PM was sent
pm_conversations.set_partner(5);
pm_conversations.set_partner(6);