// TODO: These events are not guaranteed to be perfectly // representative of what the server sends. For // now we just want very basic test coverage. We // have more mature tests for events on the backend // side in test_events.py, and we may be able to // re-work both sides (js/python) so that we work off // a shared fixture. exports.test_user = { email: "test@example.com", user_id: 101, full_name: "Test User", }; exports.test_message = { sender_id: exports.test_user.user_id, id: 99, }; exports.fixtures = { alert_words: { type: "alert_words", alert_words: ["fire", "lunch"], }, attachment: { type: "attachment", }, default_streams: { type: "default_streams", default_streams: [ { name: "devel", description: "devel", invite_only: false, stream_id: 1, }, { name: "test", description: "test", invite_only: true, stream_id: 1, }, ], }, hotspots: { type: "hotspots", hotspots: ["nice", "chicken"], }, invites_changed: { type: "invites_changed", }, muted_topics: { type: "muted_topics", muted_topics: [["devel", "js"], ["lunch", "burritos"]], }, presence: { type: "presence", email: "alice@example.com", user_id: 42, presence: { client_name: "electron", is_mirror_dummy: false, // etc. }, server_timestamp: 999999, }, reaction__add: { type: "reaction", op: "add", message_id: 128, emoji_name: "anguished_pig", user_id: "1", user: { id: "1", }, }, reaction__remove: { type: "reaction", op: "remove", message_id: 256, emoji_name: "angery", user_id: "1", user: { id: "1", }, }, // Please keep this next section un-nested, as we want this to partly // be simple documentation on the formats of individual events. realm__update__create_stream_policy: { type: "realm", op: "update", property: "create_stream_policy", value: 2, }, realm__update__invite_to_stream_policy: { type: "realm", op: "update", property: "invite_to_stream_policy", value: 2, }, realm__update__invite_required: { type: "realm", op: "update", property: "invite_required", value: false, }, realm__update__name: { type: "realm", op: "update", property: "name", value: "new_realm_name", }, realm__update__emails_restricted_to_domains: { type: "realm", op: "update", property: "emails_restricted_to_domains", value: false, }, realm__update__bot_creation_policy: { type: "realm", op: "update", property: "bot_creation_policy", value: 1, }, realm__update__email_addresses_visibility: { type: "realm", op: "update", property: "email_address_visibility", value: 3, }, realm__update__disallow_disposable_email_addresses: { type: "realm", op: "update", property: "disallow_disposable_email_addresses", value: false, }, realm__update_default_twenty_four_hour_time: { type: "realm", op: "update", property: "default_twenty_four_hour_time", value: false, }, realm__update_notifications_stream_id: { type: "realm", op: "update", property: "notifications_stream_id", value: 42, }, realm__update_signup_notifications_stream_id: { type: "realm", op: "update", property: "signup_notifications_stream_id", value: 41, }, realm__update_default_code_block_language: { type: "realm", op: "update", property: "default_code_block_language", value: "javascript", }, realm__update_dict__default: { type: "realm", op: "update_dict", property: "default", data: { allow_message_editing: true, message_content_edit_limit_seconds: 5, authentication_methods: { Google: true, }, }, }, realm__update_dict__icon: { type: "realm", op: "update_dict", property: "icon", data: { icon_url: "icon.png", icon_source: "U", }, }, realm__update_dict__logo: { type: "realm", op: "update_dict", property: "logo", data: { logo_url: "logo.png", logo_source: "U", }, }, realm__update_dict__night_logo: { type: "realm", op: "update_dict", property: "night_logo", data: { night_logo_url: "night_logo.png", night_logo_source: "U", }, }, realm__deactivated: { type: "realm", op: "deactivated", }, realm_bot__add: { type: "realm_bot", op: "add", bot: { email: "the-bot@example.com", full_name: "The Bot", // etc. }, }, realm_bot__remove: { type: "realm_bot", op: "remove", bot: { email: "the-bot@example.com", user_id: "42", full_name: "The Bot", }, }, realm_bot__delete: { type: "realm_bot", op: "delete", bot: { email: "the-bot@example.com", user_id: "42", }, }, realm_bot__update: { type: "realm_bot", op: "update", bot: { email: "the-bot@example.com", user_id: 4321, full_name: "The Bot Has A New Name", }, }, realm_emoji: { type: "realm_emoji", realm_emoji: { airplane: { source_url: "some_url", }, }, }, realm_filters: { type: "realm_filters", realm_filters: [ ["#[123]", "ticket %(id)s"], ], }, realm_domains__add: { type: "realm_domains", op: "add", realm_domain: { domain: "ramen", allow_subdomains: false, }, }, realm_domains__change: { type: "realm_domains", op: "change", realm_domain: { domain: "ramen", allow_subdomains: true, }, }, realm_domains__remove: { type: "realm_domains", op: "remove", domain: "ramen", }, realm_user__add: { type: "realm_user", op: "add", person: { email: "added@example.com", full_name: "Added Person", user_id: 1001, }, }, realm_user__remove: { type: "realm_user", op: "remove", person: { email: "added@example.com", user_id: 1001, }, }, realm_user__update: { type: "realm_user", op: "update", person: { email: "alice@example.com", full_name: "Alice NewName", // etc. }, }, restart: { type: "restart", immediate: true, }, stream__update: { type: "stream", op: "update", name: "devel", stream_id: 99, property: "color", value: "blue", }, stream__create: { type: "stream", op: "create", streams: [ {stream_id: 42}, {stream_id: 99}, ], }, stream__delete: { type: "stream", op: "delete", streams: [ {stream_id: 42}, {stream_id: 99}, ], }, submessage: { type: "submessage", submessage_id: 99, sender_id: 42, msg_type: "stream", message_id: 56, content: "test", }, subscription__add: { type: "subscription", op: "add", subscriptions: [ { name: "devel", stream_id: 42, subscribers: ["alice@example.com", "bob@example.com"], email_address: "devel+0138515295f4@zulipdev.com:9991", // etc. }, ], }, subscription__remove: { type: "subscription", op: "remove", subscriptions: [ { name: "devel", stream_id: 42, }, ], }, subscription__peer_add: { type: "subscription", op: "peer_add", user_id: exports.test_user.user_id, stream_id: 42, }, subscription__peer_remove: { type: "subscription", op: "peer_remove", user_id: exports.test_user.user_id, stream_id: 42, }, subscription__update: { type: "subscription", op: "update", name: "devel", stream_id: 43, property: "color", value: "black", }, typing__start: { type: "typing", sender: { user_id: 4, }, op: "start", }, typing__stop: { type: "typing", sender: { user_id: 6, }, op: "stop", }, typing__self: { type: "typing", sender: { user_id: 5, }, }, update_display_settings__default_language: { type: "update_display_settings", setting_name: "default_language", setting: "fr", language_name: "French", }, update_display_settings__left_side_userlist: { type: "update_display_settings", setting_name: "left_side_userlist", setting: true, }, update_display_settings__twenty_four_hour_time: { type: "update_display_settings", setting_name: "twenty_four_hour_time", setting: true, }, update_display_settings__high_contrast_mode: { type: "update_display_settings", setting_name: "high_contrast_mode", setting: true, }, update_display_settings__dense_mode: { type: "update_display_settings", setting_name: "dense_mode", setting: true, }, update_display_settings__color_scheme_automatic: { type: "update_display_settings", setting_name: "color_scheme", setting: 1, }, update_display_settings__color_scheme_dark: { type: "update_display_settings", setting_name: "color_scheme", setting: 2, }, update_display_settings__color_scheme_light: { type: "update_display_settings", setting_name: "color_scheme", setting: 3, }, update_display_settings__starred_message_counts: { type: "update_display_settings", setting_name: "starred_message_counts", setting: true, }, update_display_settings__fluid_layout_width: { type: "update_display_settings", setting_name: "fluid_layout_width", setting: true, }, update_display_settings__demote_inactive_streams: { type: "update_display_settings", setting_name: "demote_inactive_streams", setting: 2, }, update_display_settings__translate_emoticons: { type: "update_display_settings", setting_name: "translate_emoticons", setting: true, }, update_display_settings__emojiset: { type: "update_display_settings", setting_name: "emojiset", setting: "google", }, update_global_notifications: { type: "update_global_notifications", notification_name: "enable_stream_audible_notifications", setting: true, }, update_message_flags__read: { type: "update_message_flags", operation: "add", flag: "read", messages: [999], }, update_message_flags__starred_add: { type: "update_message_flags", operation: "add", flag: "starred", messages: [exports.test_message.id], }, update_message_flags__starred_remove: { type: "update_message_flags", operation: "remove", flag: "starred", messages: [exports.test_message.id], }, delete_message: { type: "delete_message", message_ids: [1337], message_type: "stream", stream_id: 99, topic: "topic1", }, custom_profile_fields: { type: "custom_profile_fields", fields: [ {id: 1, name: "teams", type: 1}, {id: 2, name: "hobbies", type: 1}, ], }, user_group__add: { type: "user_group", op: "add", group: { name: "Mobile", id: "1", members: [1], }, }, user_group__add_members: { type: "user_group", op: "add_members", group_id: 1, user_ids: [2], }, user_group__remove_members: { type: "user_group", op: "remove_members", group_id: 3, user_ids: [99, 100], }, user_group__update: { type: "user_group", op: "update", group_id: 3, data: { name: "Frontend", description: "All Frontend people", }, }, user_status__revoke_away: { type: "user_status", user_id: 63, away: false, }, user_status__set_away: { type: "user_status", user_id: 55, away: true, }, user_status__set_status_text: { type: "user_status", user_id: exports.test_user.user_id, status_text: "out to lunch", }, realm_export: { type: "realm_export", exports: { acting_user_id: 55, event_time: "noon", path: "some_path", }, }, };