2016-08-05 21:44:51 +02:00
|
|
|
var noop = function () {};
|
|
|
|
|
2017-07-01 14:21:20 +02:00
|
|
|
set_global('document', 'document-stub');
|
|
|
|
set_global('$', function () {
|
|
|
|
return {
|
|
|
|
trigger: noop,
|
|
|
|
};
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
// These dependencies are closer to the dispatcher, and they
|
|
|
|
// apply to all tests.
|
|
|
|
set_global('home_msg_list', {
|
2017-03-02 07:29:01 +01:00
|
|
|
rerender: noop,
|
2016-08-05 21:44:51 +02:00
|
|
|
select_id: noop,
|
2016-12-03 23:17:57 +01:00
|
|
|
selected_id: function () {return 1;},
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
set_global('echo', {
|
|
|
|
process_from_server: function (messages) {
|
|
|
|
return messages;
|
|
|
|
},
|
2017-05-09 18:01:43 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
set_global('markdown', {
|
2016-12-03 23:17:57 +01:00
|
|
|
set_realm_filters: noop,
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-07-18 02:58:13 +02:00
|
|
|
set_global('notifications', {
|
|
|
|
redraw_title: noop,
|
|
|
|
});
|
|
|
|
|
|
|
|
set_global('settings_emoji', {
|
|
|
|
update_custom_emoji_ui: noop,
|
|
|
|
});
|
|
|
|
|
2018-03-02 21:44:14 +01:00
|
|
|
set_global('settings_account', {
|
|
|
|
update_email_change_display: noop,
|
|
|
|
update_name_change_display: noop,
|
2018-06-10 07:03:22 +02:00
|
|
|
add_custom_profile_fields_to_settings: noop,
|
2018-03-02 21:44:14 +01:00
|
|
|
});
|
2018-03-05 03:32:05 +01:00
|
|
|
set_global('settings_display', {
|
|
|
|
update_page: noop,
|
|
|
|
});
|
2018-03-02 21:44:14 +01:00
|
|
|
|
2018-03-06 20:51:43 +01:00
|
|
|
set_global('settings_notifications', {
|
|
|
|
update_page: noop,
|
|
|
|
});
|
|
|
|
|
2017-07-18 02:58:13 +02:00
|
|
|
set_global('settings_org', {
|
2018-03-25 15:35:10 +02:00
|
|
|
sync_realm_settings: noop,
|
2017-07-18 02:58:13 +02:00
|
|
|
});
|
|
|
|
|
2018-03-05 18:28:37 +01:00
|
|
|
set_global('message_edit', {
|
|
|
|
update_message_topic_editing_pencil: noop,
|
|
|
|
});
|
|
|
|
|
2018-01-29 16:10:54 +01:00
|
|
|
set_global('settings_bots', {
|
|
|
|
update_bot_permissions_ui: noop,
|
|
|
|
});
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
// page_params is highly coupled to dispatching now
|
|
|
|
set_global('page_params', {test_suite: false});
|
|
|
|
var page_params = global.page_params;
|
|
|
|
|
|
|
|
// alert_words is coupled to dispatching in the sense
|
|
|
|
// that we write directly to alert_words.words
|
2017-11-08 17:10:09 +01:00
|
|
|
zrequire('alert_words');
|
2017-05-31 08:53:09 +02:00
|
|
|
|
2017-03-02 07:29:01 +01:00
|
|
|
// We access various msg_list object to rerender them
|
|
|
|
set_global('current_msg_list', {rerender: noop});
|
|
|
|
|
2017-03-11 20:27:54 +01:00
|
|
|
// We use blueslip to print the traceback
|
|
|
|
set_global('blueslip', {
|
|
|
|
error: function (msg, more_info, stack) {
|
|
|
|
console.log("\nFailed to process an event:\n", more_info.event, "\n");
|
|
|
|
var error = new Error();
|
|
|
|
error.stack = stack;
|
|
|
|
throw error;
|
|
|
|
},
|
|
|
|
exception_msg: function (ex) {
|
|
|
|
return ex.message;
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
2017-11-08 17:10:09 +01:00
|
|
|
zrequire('server_events_dispatch');
|
|
|
|
var sed = server_events_dispatch;
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
function dispatch(ev) {
|
2017-07-01 14:21:20 +02:00
|
|
|
sed.dispatch_normal_event(ev);
|
2016-08-05 21:44:51 +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.
|
|
|
|
var event_fixtures = {
|
|
|
|
alert_words: {
|
|
|
|
type: 'alert_words',
|
2016-12-03 23:17:57 +01:00
|
|
|
alert_words: ['fire', 'lunch'],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
default_streams: {
|
|
|
|
type: 'default_streams',
|
|
|
|
default_streams: [
|
|
|
|
{
|
|
|
|
name: 'devel',
|
|
|
|
description: 'devel',
|
|
|
|
invite_only: false,
|
2016-12-03 23:17:57 +01:00
|
|
|
stream_id: 1,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'test',
|
|
|
|
description: 'test',
|
|
|
|
invite_only: true,
|
2016-12-03 23:17:57 +01:00
|
|
|
stream_id: 1,
|
|
|
|
},
|
|
|
|
],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2017-05-31 06:34:53 +02:00
|
|
|
hotspots: {
|
|
|
|
type: 'hotspots',
|
|
|
|
hotspots: ['nice', 'chicken'],
|
|
|
|
},
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
muted_topics: {
|
|
|
|
type: 'muted_topics',
|
2016-12-03 23:17:57 +01:00
|
|
|
muted_topics: [['devel', 'js'], ['lunch', 'burritos']],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
presence: {
|
|
|
|
type: 'presence',
|
|
|
|
email: 'alice@example.com',
|
|
|
|
presence: {
|
|
|
|
client_name: 'electron',
|
2016-12-03 23:17:57 +01:00
|
|
|
is_mirror_dummy: false,
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
|
|
|
},
|
2016-12-03 23:17:57 +01:00
|
|
|
server_timestamp: 999999,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2017-05-31 06:37:52 +02:00
|
|
|
reaction__add: {
|
|
|
|
type: 'reaction',
|
|
|
|
op: 'add',
|
|
|
|
message_id: 128,
|
|
|
|
emoji_name: 'anguished_pig',
|
2017-12-19 00:55:40 +01:00
|
|
|
user: {
|
|
|
|
id: "1",
|
|
|
|
},
|
2017-05-31 06:37:52 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
reaction__remove: {
|
|
|
|
type: 'reaction',
|
|
|
|
op: 'remove',
|
|
|
|
message_id: 256,
|
|
|
|
emoji_name: 'angery',
|
2017-12-19 00:55:40 +01:00
|
|
|
user: {
|
|
|
|
id: "1",
|
|
|
|
},
|
2017-05-31 06:37:52 +02:00
|
|
|
},
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
// 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_by_admins_only: {
|
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
|
|
|
property: 'create_stream_by_admins_only',
|
2016-12-03 23:17:57 +01:00
|
|
|
value: false,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm__update__invite_by_admins_only: {
|
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
|
|
|
property: 'invite_by_admins_only',
|
2016-12-03 23:17:57 +01:00
|
|
|
value: false,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm__update__invite_required: {
|
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
|
|
|
property: 'invite_required',
|
2016-12-03 23:17:57 +01:00
|
|
|
value: false,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm__update__name: {
|
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
|
|
|
property: 'name',
|
2016-12-03 23:17:57 +01:00
|
|
|
value: 'new_realm_name',
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2018-07-27 23:26:29 +02:00
|
|
|
realm__update__emails_restricted_to_domains: {
|
2016-08-05 21:44:51 +02:00
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
2018-07-27 23:26:29 +02:00
|
|
|
property: 'emails_restricted_to_domains',
|
2016-12-03 23:17:57 +01:00
|
|
|
value: false,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2018-01-29 16:10:54 +01:00
|
|
|
realm__update__bot_creation_policy: {
|
2017-11-24 16:24:24 +01:00
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
2018-01-29 16:10:54 +01:00
|
|
|
property: 'bot_creation_policy',
|
|
|
|
value: 1,
|
2017-11-24 16:24:24 +01:00
|
|
|
},
|
|
|
|
|
2018-03-05 19:19:19 +01:00
|
|
|
realm__update__disallow_disposable_email_addresses: {
|
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
|
|
|
property: 'disallow_disposable_email_addresses',
|
|
|
|
value: false,
|
|
|
|
},
|
|
|
|
|
2018-03-30 22:38:16 +02:00
|
|
|
realm__update_default_twenty_four_hour_time: {
|
|
|
|
type: 'realm',
|
|
|
|
op: 'update',
|
|
|
|
property: 'default_twenty_four_hour_time',
|
|
|
|
value: false,
|
|
|
|
},
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
realm__update_dict__default: {
|
|
|
|
type: 'realm',
|
|
|
|
op: 'update_dict',
|
|
|
|
property: 'default',
|
|
|
|
data: {
|
2016-12-03 03:08:47 +01:00
|
|
|
allow_message_editing: true,
|
2016-12-03 23:17:57 +01:00
|
|
|
message_content_edit_limit_seconds: 5,
|
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm_bot__add: {
|
|
|
|
type: 'realm_bot',
|
|
|
|
op: 'add',
|
|
|
|
bot: {
|
|
|
|
email: 'the-bot@example.com',
|
2016-12-03 23:17:57 +01:00
|
|
|
full_name: 'The Bot',
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm_bot__remove: {
|
|
|
|
type: 'realm_bot',
|
|
|
|
op: 'remove',
|
|
|
|
bot: {
|
|
|
|
email: 'the-bot@example.com',
|
2018-01-22 18:36:53 +01:00
|
|
|
user_id: '42',
|
2016-12-03 23:17:57 +01:00
|
|
|
full_name: 'The Bot',
|
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2018-03-08 16:28:37 +01:00
|
|
|
realm_bot__delete: {
|
|
|
|
type: 'realm_bot',
|
|
|
|
op: 'delete',
|
|
|
|
bot: {
|
|
|
|
email: 'the-bot@example.com',
|
|
|
|
user_id: '42',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
realm_bot__update: {
|
|
|
|
type: 'realm_bot',
|
|
|
|
op: 'update',
|
|
|
|
bot: {
|
|
|
|
email: 'the-bot@example.com',
|
2017-02-15 00:45:38 +01:00
|
|
|
user_id: 4321,
|
2016-12-03 23:17:57 +01:00
|
|
|
full_name: 'The Bot Has A New Name',
|
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm_emoji: {
|
|
|
|
type: 'realm_emoji',
|
|
|
|
realm_emoji: {
|
2016-12-03 03:08:47 +01:00
|
|
|
airplane: {
|
2016-12-03 23:17:57 +01:00
|
|
|
display_url: 'some_url',
|
|
|
|
},
|
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm_filters: {
|
|
|
|
type: 'realm_filters',
|
|
|
|
realm_filters: [
|
2016-12-03 23:17:57 +01:00
|
|
|
['#[123]', 'ticket %(id)s'],
|
|
|
|
],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2017-05-31 07:02:00 +02:00
|
|
|
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',
|
|
|
|
},
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
realm_user__add: {
|
|
|
|
type: 'realm_user',
|
|
|
|
op: 'add',
|
|
|
|
person: {
|
|
|
|
email: 'alice@example.com',
|
2016-12-03 23:17:57 +01:00
|
|
|
full_name: 'Alice User',
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm_user__remove: {
|
|
|
|
type: 'realm_user',
|
|
|
|
op: 'remove',
|
|
|
|
person: {
|
|
|
|
email: 'alice@example.com',
|
2016-12-03 23:17:57 +01:00
|
|
|
full_name: 'Alice User',
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
realm_user__update: {
|
|
|
|
type: 'realm_user',
|
|
|
|
op: 'update',
|
|
|
|
person: {
|
|
|
|
email: 'alice@example.com',
|
2016-12-03 23:17:57 +01:00
|
|
|
full_name: 'Alice NewName',
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
restart: {
|
|
|
|
type: 'restart',
|
2016-12-03 23:17:57 +01:00
|
|
|
immediate: true,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
stream: {
|
|
|
|
type: 'stream',
|
|
|
|
op: 'update',
|
|
|
|
name: 'devel',
|
2017-03-05 02:17:29 +01:00
|
|
|
stream_id: 99,
|
2016-08-05 21:44:51 +02:00
|
|
|
property: 'color',
|
2016-12-03 23:17:57 +01:00
|
|
|
value: 'blue',
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
subscription__add: {
|
|
|
|
type: 'subscription',
|
|
|
|
op: 'add',
|
|
|
|
subscriptions: [
|
|
|
|
{
|
|
|
|
name: 'devel',
|
2016-12-03 23:17:57 +01:00
|
|
|
stream_id: 42,
|
2017-03-05 00:09:48 +01:00
|
|
|
subscribers: ['alice@example.com', 'bob@example.com'],
|
2018-04-05 19:58:27 +02:00
|
|
|
email_address: 'devel+0138515295f4@zulipdev.com:9991',
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
|
|
|
],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
subscription__remove: {
|
|
|
|
type: 'subscription',
|
|
|
|
op: 'remove',
|
|
|
|
subscriptions: [
|
|
|
|
{
|
2016-12-03 23:17:57 +01:00
|
|
|
stream_id: 42,
|
|
|
|
},
|
|
|
|
],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
subscription__peer_add: {
|
|
|
|
type: 'subscription',
|
|
|
|
op: 'peer_add',
|
2016-10-31 20:18:32 +01:00
|
|
|
user_id: 555,
|
2016-08-05 21:44:51 +02:00
|
|
|
subscriptions: [
|
|
|
|
{
|
|
|
|
name: 'devel',
|
2016-12-03 23:17:57 +01:00
|
|
|
stream_id: 42,
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
|
|
|
],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
subscription__peer_remove: {
|
|
|
|
type: 'subscription',
|
|
|
|
op: 'peer_remove',
|
2016-11-08 15:04:18 +01:00
|
|
|
user_id: 555,
|
2016-08-05 21:44:51 +02:00
|
|
|
subscriptions: [
|
|
|
|
{
|
2016-12-03 23:17:57 +01:00
|
|
|
stream_id: 42,
|
2016-08-05 21:44:51 +02:00
|
|
|
// etc.
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
|
|
|
],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
subscription__update: {
|
|
|
|
type: 'subscription',
|
|
|
|
op: 'update',
|
|
|
|
name: 'devel',
|
2017-03-05 02:17:29 +01:00
|
|
|
stream_id: 43,
|
2016-08-05 21:44:51 +02:00
|
|
|
property: 'color',
|
2016-12-03 23:17:57 +01:00
|
|
|
value: 'black',
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2017-05-31 07:48:38 +02:00
|
|
|
typing__start: {
|
|
|
|
type: 'typing',
|
|
|
|
sender: {
|
|
|
|
user_id: 4,
|
|
|
|
},
|
|
|
|
op: 'start',
|
|
|
|
},
|
|
|
|
|
|
|
|
typing__stop: {
|
|
|
|
type: 'typing',
|
|
|
|
sender: {
|
|
|
|
user_id: 6,
|
|
|
|
},
|
|
|
|
op: 'stop',
|
|
|
|
},
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
update_display_settings__default_language: {
|
|
|
|
type: 'update_display_settings',
|
|
|
|
setting_name: 'default_language',
|
2016-12-08 21:09:41 +01:00
|
|
|
setting: 'fr',
|
2018-03-05 03:46:07 +01:00
|
|
|
language_name: 'French',
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
update_display_settings__left_side_userlist: {
|
|
|
|
type: 'update_display_settings',
|
|
|
|
setting_name: 'left_side_userlist',
|
2016-12-08 21:09:41 +01:00
|
|
|
setting: true,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
update_display_settings__twenty_four_hour_time: {
|
|
|
|
type: 'update_display_settings',
|
|
|
|
setting_name: 'twenty_four_hour_time',
|
2016-12-08 21:09:41 +01:00
|
|
|
setting: true,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
2017-07-07 18:15:10 +02:00
|
|
|
update_display_settings__high_contrast_mode: {
|
|
|
|
type: 'update_display_settings',
|
|
|
|
setting_name: 'high_contrast_mode',
|
|
|
|
setting: true,
|
|
|
|
},
|
|
|
|
|
2018-01-15 19:36:32 +01:00
|
|
|
update_display_settings__translate_emoticons: {
|
|
|
|
type: 'update_display_settings',
|
|
|
|
setting_name: 'translate_emoticons',
|
|
|
|
setting: true,
|
|
|
|
},
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
update_global_notifications: {
|
|
|
|
type: 'update_global_notifications',
|
|
|
|
notification_name: 'enable_stream_sounds',
|
2016-12-03 23:17:57 +01:00
|
|
|
setting: true,
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
update_message_flags__read: {
|
|
|
|
type: 'update_message_flags',
|
|
|
|
operation: 'add',
|
|
|
|
flag: 'read',
|
2017-03-11 19:18:57 +01:00
|
|
|
messages: [999],
|
2016-08-05 21:44:51 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
update_message_flags__starred: {
|
|
|
|
type: 'update_message_flags',
|
|
|
|
operation: 'add',
|
|
|
|
flag: 'starred',
|
2017-03-11 19:18:57 +01:00
|
|
|
messages: [99],
|
2016-12-03 23:17:57 +01:00
|
|
|
},
|
2017-05-31 07:20:28 +02:00
|
|
|
|
|
|
|
delete_message: {
|
|
|
|
type: 'delete_message',
|
|
|
|
message_id: 1337,
|
2018-04-02 00:21:21 +02:00
|
|
|
message_type: "stream",
|
|
|
|
stream_id: 99,
|
|
|
|
topic: 'topic1',
|
2017-05-31 07:20:28 +02:00
|
|
|
},
|
2017-12-14 05:51:45 +01:00
|
|
|
|
|
|
|
custom_profile_fields: {
|
|
|
|
type: 'custom_profile_fields',
|
|
|
|
fields: [
|
|
|
|
{id: 1, name: 'teams', type: 1},
|
|
|
|
{id: 2, name: 'hobbies', type: 1},
|
|
|
|
],
|
|
|
|
},
|
2018-04-15 21:26:58 +02:00
|
|
|
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',
|
|
|
|
},
|
|
|
|
},
|
2016-08-05 21:44:51 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
function assert_same(actual, expected) {
|
|
|
|
// This helper prevents us from getting false positives
|
|
|
|
// where actual and expected are both undefined.
|
|
|
|
assert(expected);
|
|
|
|
assert.deepEqual(actual, expected);
|
|
|
|
}
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
var with_overrides = global.with_overrides; // make lint happy
|
2016-08-05 21:44:51 +02:00
|
|
|
|
2017-06-07 21:36:43 +02:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// alert_words
|
2017-06-07 21:36:43 +02:00
|
|
|
override('alert_words_ui.render_alert_words_ui', noop);
|
2016-08-05 21:44:51 +02:00
|
|
|
var event = event_fixtures.alert_words;
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(global.alert_words.words, ['fire', 'lunch']);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2018-04-15 21:26:58 +02:00
|
|
|
with_overrides(function (override) {
|
|
|
|
// User groups
|
|
|
|
var event = event_fixtures.user_group__add;
|
|
|
|
override('settings_user_groups.reload', noop);
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('user_groups.add', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('group');
|
|
|
|
assert_same(args.group, event.group);
|
|
|
|
});
|
|
|
|
|
|
|
|
event = event_fixtures.user_group__add_members;
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('user_groups.add_members', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('group_id', 'user_ids');
|
|
|
|
assert_same(args.group_id, event.group_id);
|
|
|
|
assert_same(args.user_ids, event.user_ids);
|
|
|
|
});
|
|
|
|
|
|
|
|
event = event_fixtures.user_group__remove_members;
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('user_groups.remove_members', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('group_id', 'user_ids');
|
|
|
|
assert_same(args.group_id, event.group_id);
|
|
|
|
assert_same(args.user_ids, event.user_ids);
|
|
|
|
});
|
|
|
|
|
|
|
|
event = event_fixtures.user_group__update;
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('user_groups.update', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('event');
|
|
|
|
assert_same(args.event.group_id, event.group_id);
|
|
|
|
assert_same(args.event.data.name, event.data.name);
|
|
|
|
assert_same(args.event.data.description, event.data.description);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-12-14 05:51:45 +01:00
|
|
|
with_overrides(function (override) {
|
|
|
|
// custom profile fields
|
|
|
|
var event = event_fixtures.custom_profile_fields;
|
|
|
|
override('settings_profile_fields.populate_profile_fields', noop);
|
|
|
|
override('settings_profile_fields.report_success', noop);
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(global.page_params.custom_profile_fields, event.fields);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// default_streams
|
|
|
|
var event = event_fixtures.default_streams;
|
2017-04-08 21:02:08 +02:00
|
|
|
override('settings_streams.update_default_streams_table', noop);
|
2017-08-22 18:20:00 +02:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('stream_data.set_realm_default_streams', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('realm_default_streams');
|
|
|
|
assert_same(args.realm_default_streams, event.default_streams);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
});
|
|
|
|
|
2017-05-31 06:34:53 +02:00
|
|
|
with_overrides(function (override) {
|
|
|
|
// hotspots
|
|
|
|
var event = event_fixtures.hotspots;
|
2017-07-14 03:21:30 +02:00
|
|
|
override('hotspots.load_new', noop);
|
2017-05-31 06:34:53 +02:00
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.hotspots, event.hotspots);
|
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// muted_topics
|
|
|
|
var event = event_fixtures.muted_topics;
|
|
|
|
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('muting_ui.handle_updates', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('muted_topics');
|
|
|
|
assert_same(args.muted_topics, event.muted_topics);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// presence
|
|
|
|
var event = event_fixtures.presence;
|
|
|
|
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('activity.set_user_status', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('email', 'presence', 'server_time');
|
|
|
|
assert_same(args.email, 'alice@example.com');
|
|
|
|
assert_same(args.presence, event.presence);
|
|
|
|
assert_same(args.server_time, event.server_timestamp);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-05-31 06:37:52 +02:00
|
|
|
with_overrides(function (override) {
|
|
|
|
// reaction
|
|
|
|
var event = event_fixtures.reaction__add;
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('reactions.add_reaction', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('event');
|
|
|
|
assert_same(args.event.emoji_name, event.emoji_name);
|
|
|
|
assert_same(args.event.message_id, event.message_id);
|
|
|
|
});
|
|
|
|
|
|
|
|
event = event_fixtures.reaction__remove;
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('reactions.remove_reaction', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('event');
|
|
|
|
assert_same(args.event.emoji_name, event.emoji_name);
|
|
|
|
assert_same(args.event.message_id, event.message_id);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// realm
|
|
|
|
function test_realm_boolean(event, parameter_name) {
|
|
|
|
page_params[parameter_name] = true;
|
|
|
|
event = _.clone(event);
|
|
|
|
event.value = false;
|
|
|
|
dispatch(event);
|
|
|
|
assert.equal(page_params[parameter_name], false);
|
|
|
|
event = _.clone(event);
|
|
|
|
event.value = true;
|
|
|
|
dispatch(event);
|
|
|
|
assert.equal(page_params[parameter_name], true);
|
|
|
|
}
|
|
|
|
|
|
|
|
var event = event_fixtures.realm__update__create_stream_by_admins_only;
|
|
|
|
test_realm_boolean(event, 'realm_create_stream_by_admins_only');
|
|
|
|
|
|
|
|
event = event_fixtures.realm__update__invite_by_admins_only;
|
|
|
|
test_realm_boolean(event, 'realm_invite_by_admins_only');
|
|
|
|
|
|
|
|
event = event_fixtures.realm__update__invite_required;
|
|
|
|
test_realm_boolean(event, 'realm_invite_required');
|
|
|
|
|
|
|
|
event = event_fixtures.realm__update__name;
|
2017-03-11 17:19:19 +01:00
|
|
|
override('notifications.redraw_title', noop);
|
2016-08-05 21:44:51 +02:00
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.realm_name, 'new_realm_name');
|
|
|
|
|
2018-07-27 23:26:29 +02:00
|
|
|
event = event_fixtures.realm__update__emails_restricted_to_domains;
|
|
|
|
test_realm_boolean(event, 'realm_emails_restricted_to_domains');
|
2016-08-05 21:44:51 +02:00
|
|
|
|
2018-03-05 19:19:19 +01:00
|
|
|
event = event_fixtures.realm__update__disallow_disposable_email_addresses;
|
|
|
|
test_realm_boolean(event, 'realm_disallow_disposable_email_addresses');
|
|
|
|
|
2017-11-24 16:24:24 +01:00
|
|
|
event = event_fixtures.realm__update__create_stream_by_admins_only;
|
|
|
|
test_realm_boolean(event, 'realm_create_stream_by_admins_only');
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
event = event_fixtures.realm__update_dict__default;
|
|
|
|
page_params.realm_allow_message_editing = false;
|
|
|
|
page_params.realm_message_content_edit_limit_seconds = 0;
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.realm_allow_message_editing, true);
|
|
|
|
assert_same(page_params.realm_message_content_edit_limit_seconds, 5);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// realm_bot
|
|
|
|
var event = event_fixtures.realm_bot__add;
|
2017-03-10 09:23:59 +01:00
|
|
|
global.with_stub(function (bot_stub) {
|
|
|
|
global.with_stub(function (admin_stub) {
|
|
|
|
override('bot_data.add', bot_stub.f);
|
2017-04-08 20:08:35 +02:00
|
|
|
override('settings_users.update_user_data', admin_stub.f);
|
2017-03-10 09:23:59 +01:00
|
|
|
dispatch(event);
|
|
|
|
var args = bot_stub.get_args('bot');
|
|
|
|
assert_same(args.bot, event.bot);
|
|
|
|
|
2017-08-23 08:32:52 +02:00
|
|
|
admin_stub.get_args('update_user_id', 'update_bot_data');
|
2017-03-10 09:23:59 +01:00
|
|
|
});
|
2017-03-11 19:18:57 +01:00
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.realm_bot__remove;
|
2017-03-10 09:23:59 +01:00
|
|
|
global.with_stub(function (bot_stub) {
|
|
|
|
global.with_stub(function (admin_stub) {
|
|
|
|
override('bot_data.deactivate', bot_stub.f);
|
2017-04-08 20:08:35 +02:00
|
|
|
override('settings_users.update_user_data', admin_stub.f);
|
2017-03-10 09:23:59 +01:00
|
|
|
dispatch(event);
|
2018-01-22 18:36:53 +01:00
|
|
|
var args = bot_stub.get_args('user_id');
|
|
|
|
assert_same(args.user_id, event.bot.user_id);
|
2017-03-10 09:23:59 +01:00
|
|
|
|
2018-03-08 16:28:37 +01:00
|
|
|
admin_stub.get_args('update_user_id', 'update_bot_data');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
event = event_fixtures.realm_bot__delete;
|
|
|
|
global.with_stub(function (bot_stub) {
|
|
|
|
global.with_stub(function (admin_stub) {
|
|
|
|
override('bot_data.delete', bot_stub.f);
|
|
|
|
override('settings_users.update_user_data', admin_stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = bot_stub.get_args('bot_id');
|
|
|
|
assert_same(args.bot_id, event.bot.user_id);
|
|
|
|
|
2017-08-23 08:32:52 +02:00
|
|
|
admin_stub.get_args('update_user_id', 'update_bot_data');
|
2017-03-10 09:23:59 +01:00
|
|
|
});
|
2017-03-11 19:18:57 +01:00
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.realm_bot__update;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (bot_stub) {
|
|
|
|
global.with_stub(function (admin_stub) {
|
|
|
|
override('bot_data.update', bot_stub.f);
|
2017-04-08 20:08:35 +02:00
|
|
|
override('settings_users.update_user_data', admin_stub.f);
|
2017-03-11 19:18:57 +01:00
|
|
|
|
|
|
|
dispatch(event);
|
|
|
|
|
2018-01-22 18:36:53 +01:00
|
|
|
var args = bot_stub.get_args('user_id', 'bot');
|
|
|
|
assert_same(args.user_id, event.bot.user_id);
|
2017-03-11 19:18:57 +01:00
|
|
|
assert_same(args.bot, event.bot);
|
2016-08-05 21:44:51 +02:00
|
|
|
|
2017-03-11 19:18:57 +01:00
|
|
|
args = admin_stub.get_args('update_user_id', 'update_bot_data');
|
|
|
|
assert_same(args.update_user_id, event.bot.user_id);
|
|
|
|
assert_same(args.update_bot_data, event.bot);
|
|
|
|
});
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// realm_emoji
|
|
|
|
var event = event_fixtures.realm_emoji;
|
|
|
|
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('emoji.update_emojis', stub.f);
|
2017-04-08 17:24:07 +02:00
|
|
|
override('settings_emoji.populate_emoji', noop);
|
2017-07-19 00:28:56 +02:00
|
|
|
override('emoji_picker.generate_emoji_picker_data', noop);
|
2017-03-11 19:18:57 +01:00
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('realm_emoji');
|
|
|
|
assert_same(args.realm_emoji, event.realm_emoji);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// realm_filters
|
|
|
|
var event = event_fixtures.realm_filters;
|
|
|
|
page_params.realm_filters = [];
|
2017-04-08 23:24:03 +02:00
|
|
|
override('settings_filters.populate_filters', noop);
|
2016-08-05 21:44:51 +02:00
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.realm_filters, event.realm_filters);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2017-05-31 07:02:00 +02:00
|
|
|
with_overrides(function (override) {
|
|
|
|
// realm_domains
|
|
|
|
var event = event_fixtures.realm_domains__add;
|
|
|
|
page_params.realm_domains = [];
|
|
|
|
override('settings_org.populate_realm_domains', noop);
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.realm_domains, [event.realm_domain]);
|
|
|
|
|
|
|
|
event = event_fixtures.realm_domains__change;
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.realm_domains, [event.realm_domain]);
|
|
|
|
|
|
|
|
event = event_fixtures.realm_domains__remove;
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.realm_domains, []);
|
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// realm_user
|
|
|
|
var event = event_fixtures.realm_user__add;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('people.add_in_realm', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('person');
|
|
|
|
assert_same(args.person, event.person);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.realm_user__remove;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('people.deactivate', stub.f);
|
2018-08-04 19:44:31 +02:00
|
|
|
override('stream_events.remove_deactivated_user_from_all_streams', noop);
|
2017-03-11 19:18:57 +01:00
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('person');
|
|
|
|
assert_same(args.person, event.person);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.realm_user__update;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('user_events.update_person', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('person');
|
|
|
|
assert_same(args.person, event.person);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// restart
|
|
|
|
var event = event_fixtures.restart;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('reload.initiate', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('options');
|
|
|
|
assert.equal(args.options.save_pointer, true);
|
|
|
|
assert.equal(args.options.immediate, true);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// stream
|
|
|
|
var event = event_fixtures.stream;
|
|
|
|
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
2017-03-19 16:03:07 +01:00
|
|
|
override('stream_events.update_property', stub.f);
|
2017-04-08 21:02:08 +02:00
|
|
|
override('settings_streams.update_default_streams_table', noop);
|
2017-03-11 19:18:57 +01:00
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('stream_id', 'property', 'value');
|
|
|
|
assert_same(args.stream_id, event.stream_id);
|
|
|
|
assert_same(args.property, event.property);
|
|
|
|
assert_same(args.value, event.value);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// subscription
|
2016-10-31 20:18:32 +01:00
|
|
|
|
|
|
|
// This next section can go away when we start handling
|
|
|
|
// user_ids more directly in some of subscriptions code.
|
2017-03-11 17:19:19 +01:00
|
|
|
override('people.get_person_from_user_id', function (user_id) {
|
2016-10-31 20:18:32 +01:00
|
|
|
assert_same(user_id, 555);
|
2016-11-09 16:05:30 +01:00
|
|
|
return {email: 'this-is-not-really-used-in-the-test'};
|
2016-10-31 20:18:32 +01:00
|
|
|
});
|
|
|
|
|
2016-08-05 21:44:51 +02:00
|
|
|
var event = event_fixtures.subscription__add;
|
2018-04-05 19:58:27 +02:00
|
|
|
global.with_stub(function (subscription_stub) {
|
|
|
|
global.with_stub(function (stream_email_stub) {
|
|
|
|
override('stream_data.get_sub_by_id', function (stream_id) {
|
|
|
|
return {stream_id: stream_id};
|
|
|
|
});
|
|
|
|
override('stream_events.mark_subscribed', subscription_stub.f);
|
|
|
|
override('stream_data.update_stream_email_address', stream_email_stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = subscription_stub.get_args('sub', 'subscribers');
|
|
|
|
assert_same(args.sub.stream_id, event.subscriptions[0].stream_id);
|
|
|
|
assert_same(args.subscribers, event.subscriptions[0].subscribers);
|
|
|
|
args = stream_email_stub.get_args('sub', 'email_address');
|
|
|
|
assert_same(args.email_address, event.subscriptions[0].email_address);
|
|
|
|
assert_same(args.sub.stream_id, event.subscriptions[0].stream_id);
|
2017-03-11 19:18:57 +01:00
|
|
|
});
|
2017-03-05 00:09:48 +01:00
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.subscription__peer_add;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('stream_data.add_subscriber', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('sub', 'user_id');
|
|
|
|
assert_same(args.sub, event.subscriptions[0]);
|
|
|
|
assert_same(args.user_id, 555);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.subscription__peer_remove;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('stream_data.remove_subscriber', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('sub', 'user_id');
|
|
|
|
assert_same(args.sub, event.subscriptions[0]);
|
|
|
|
assert_same(args.user_id, 555);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.subscription__remove;
|
|
|
|
var stream_id_looked_up;
|
|
|
|
var sub_stub = 'stub';
|
2017-03-11 17:19:19 +01:00
|
|
|
override('stream_data.get_sub_by_id', function (stream_id) {
|
2016-08-05 21:44:51 +02:00
|
|
|
stream_id_looked_up = stream_id;
|
|
|
|
return sub_stub;
|
|
|
|
});
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
2017-03-19 16:47:30 +01:00
|
|
|
override('stream_events.mark_unsubscribed', stub.f);
|
2017-03-11 19:18:57 +01:00
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('sub');
|
|
|
|
assert_same(stream_id_looked_up, event.subscriptions[0].stream_id);
|
|
|
|
assert_same(args.sub, sub_stub);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
|
|
|
|
event = event_fixtures.subscription__update;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
2017-03-19 16:03:07 +01:00
|
|
|
override('stream_events.update_property', stub.f);
|
2017-03-11 19:18:57 +01:00
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('stream_id', 'property', 'value');
|
|
|
|
assert_same(args.stream_id, event.stream_id);
|
|
|
|
assert_same(args.property, event.property);
|
|
|
|
assert_same(args.value, event.value);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-05-31 07:48:38 +02:00
|
|
|
with_overrides(function (override) {
|
|
|
|
// typing
|
|
|
|
var event = event_fixtures.typing__start;
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('typing_events.display_notification', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('event');
|
|
|
|
assert_same(args.event.sender.user_id, 4);
|
|
|
|
});
|
|
|
|
|
|
|
|
event = event_fixtures.typing__stop;
|
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('typing_events.hide_notification', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('event');
|
|
|
|
assert_same(args.event.sender.user_id, 6);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// update_display_settings
|
|
|
|
var event = event_fixtures.update_display_settings__default_language;
|
|
|
|
page_params.default_language = 'en';
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.default_language, 'fr');
|
|
|
|
|
|
|
|
event = event_fixtures.update_display_settings__left_side_userlist;
|
|
|
|
page_params.left_side_userlist = false;
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.left_side_userlist, true);
|
|
|
|
|
2017-03-11 17:19:19 +01:00
|
|
|
override('message_list.narrowed', noop);
|
2016-08-05 21:44:51 +02:00
|
|
|
event = event_fixtures.update_display_settings__twenty_four_hour_time;
|
|
|
|
page_params.twenty_four_hour_time = false;
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.twenty_four_hour_time, true);
|
|
|
|
|
2018-01-15 19:36:32 +01:00
|
|
|
event = event_fixtures.update_display_settings__translate_emoticons;
|
|
|
|
page_params.translate_emoticons = false;
|
|
|
|
dispatch(event);
|
|
|
|
assert_same(page_params.translate_emoticons, true);
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// update_global_notifications
|
|
|
|
var event = event_fixtures.update_global_notifications;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('notifications.handle_global_notification_updates', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('name', 'setting');
|
|
|
|
assert_same(args.name, event.notification_name);
|
|
|
|
assert_same(args.setting, event.setting);
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// update_message_flags__read
|
|
|
|
var event = event_fixtures.update_message_flags__read;
|
2017-03-11 19:18:57 +01:00
|
|
|
|
|
|
|
global.with_stub(function (stub) {
|
2017-08-03 00:28:16 +02:00
|
|
|
override('unread_ops.process_read_messages_event', stub.f);
|
2017-03-11 19:18:57 +01:00
|
|
|
dispatch(event);
|
2017-08-03 00:28:16 +02:00
|
|
|
var args = stub.get_args('message_ids');
|
|
|
|
assert_same(args.message_ids, [999]);
|
2017-03-11 19:18:57 +01:00
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
|
|
|
|
2018-08-01 02:29:10 +02:00
|
|
|
// notify_server_message_read requires message_store and these dependencies.
|
|
|
|
zrequire('unread_ops');
|
|
|
|
zrequire('unread');
|
|
|
|
zrequire('topic_data');
|
|
|
|
zrequire('stream_list');
|
|
|
|
zrequire("message_flags");
|
|
|
|
set_global('message_store', {
|
|
|
|
get: function () {return {};},
|
|
|
|
});
|
|
|
|
|
2017-03-11 21:07:24 +01:00
|
|
|
with_overrides(function (override) {
|
2016-08-05 21:44:51 +02:00
|
|
|
// update_message_flags__starred
|
|
|
|
var event = event_fixtures.update_message_flags__starred;
|
2017-03-11 19:18:57 +01:00
|
|
|
global.with_stub(function (stub) {
|
2018-08-01 19:02:38 +02:00
|
|
|
override('ui.update_starred_view', stub.f);
|
2017-03-11 19:18:57 +01:00
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('message_id', 'new_value');
|
|
|
|
assert_same(args.message_id, 99);
|
|
|
|
assert_same(args.new_value, true); // for 'add'
|
|
|
|
});
|
2016-08-05 21:44:51 +02:00
|
|
|
});
|
2017-05-31 07:20:28 +02:00
|
|
|
|
|
|
|
with_overrides(function (override) {
|
|
|
|
// delete_message
|
|
|
|
var event = event_fixtures.delete_message;
|
2018-02-16 23:41:38 +01:00
|
|
|
|
2018-03-04 21:26:19 +01:00
|
|
|
override('stream_list.update_streams_sidebar', noop);
|
2017-05-31 07:20:28 +02:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('ui.remove_message', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('message_id');
|
|
|
|
assert_same(args.message_id, 1337);
|
|
|
|
});
|
2018-02-16 23:41:38 +01:00
|
|
|
global.with_stub(function (stub) {
|
2018-04-01 21:12:45 +02:00
|
|
|
override('unread_ops.process_read_messages_event', stub.f);
|
2018-02-16 23:41:38 +01:00
|
|
|
dispatch(event);
|
2018-04-01 21:12:45 +02:00
|
|
|
var args = stub.get_args('message_ids');
|
|
|
|
assert_same(args.message_ids, [1337]);
|
2018-02-16 23:41:38 +01:00
|
|
|
});
|
2018-03-04 21:26:19 +01:00
|
|
|
global.with_stub(function (stub) {
|
|
|
|
override('topic_data.remove_message', stub.f);
|
|
|
|
dispatch(event);
|
|
|
|
var args = stub.get_args('opts');
|
|
|
|
assert_same(args.opts.stream_id, 99);
|
|
|
|
assert_same(args.opts.topic_name, 'topic1');
|
|
|
|
});
|
2017-05-31 07:20:28 +02:00
|
|
|
});
|