2020-06-12 20:26:04 +02:00
|
|
|
// 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: [
|
|
|
|
{
|
2020-06-12 23:05:06 +02:00
|
|
|
name: 'devel',
|
2020-06-12 20:26:04 +02:00
|
|
|
stream_id: 42,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
|
|
|
|
subscription__peer_add: {
|
|
|
|
type: 'subscription',
|
|
|
|
op: 'peer_add',
|
2020-06-12 23:05:06 +02:00
|
|
|
user_id: exports.test_user.user_id,
|
2020-06-12 18:10:58 +02:00
|
|
|
subscriptions: ['devel'],
|
2020-06-12 20:26:04 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
subscription__peer_remove: {
|
|
|
|
type: 'subscription',
|
|
|
|
op: 'peer_remove',
|
2020-06-12 23:05:06 +02:00
|
|
|
user_id: exports.test_user.user_id,
|
|
|
|
subscriptions: ['devel'],
|
2020-06-12 20:26:04 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
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__night_mode: {
|
|
|
|
type: 'update_display_settings',
|
|
|
|
setting_name: 'night_mode',
|
|
|
|
setting: true,
|
|
|
|
},
|
|
|
|
|
|
|
|
update_display_settings__night_mode_false: {
|
|
|
|
type: 'update_display_settings',
|
|
|
|
setting_name: 'night_mode',
|
|
|
|
setting: false,
|
|
|
|
},
|
|
|
|
|
|
|
|
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',
|
2020-06-11 12:12:12 +02:00
|
|
|
message_ids: [1337],
|
2020-06-12 20:26:04 +02:00
|
|
|
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',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|