Files
zulip/frontend_tests/node_tests/ui_init.js
Steve Howell ab34ee0800 search performance: Stop at max_items.
Once we have max_items results, stop trying
to get more items.

This should really help large realms when
you do a search on streams that turns up
more than N streams (where N is about 12).
We won't even bother to find people.
2019-12-28 11:09:28 -08:00

171 lines
4.2 KiB
JavaScript

/*
This test suite is designed to find errors
in our initialization sequence. It doesn't
really validate any behavior, other than just
making sure things don't fail. For more
directed testing of individual modules, you
should create dedicated test suites.
Also, we stub a lot of initialization here that
is tricky to test due to dependencies on things
like jQuery. A good project is to work through
ignore_modules and try to make this test more
complete.
Also, it's good to be alert here for things
that can be cleaned up in the code--for example,
not everything needs to happen in `initialization`--
some things can happen later in a `launch` method.
*/
set_global('i18n', global.stub_i18n);
set_global('document', {
location: {
protocol: 'http',
},
});
set_global('csrf_token', 'whatever');
set_global('$', () => {});
set_global('resize', {});
set_global('feature_flags', {});
set_global('page_params', {});
const ignore_modules = [
'activity',
'click_handlers',
'compose_pm_pill',
'copy_and_paste',
'drafts',
'emoji',
'emoji_picker',
'gear_menu',
'hashchange',
'hotspots',
'message_scroll',
'message_viewport',
'night_mode',
'panels',
'popovers',
'reload',
'scroll_bar',
'server_events',
'settings_sections',
'settings_panel_menu',
'settings_toggle',
'subs',
'timerender',
'ui',
'unread_ui',
];
_.each(ignore_modules, (mod) => {
set_global(mod, {
initialize: () => {},
});
});
zrequire('util');
util.is_mobile = () => false;
global.stub_templates(() => 'some-html');
ui.get_scroll_element = element => element;
zrequire('echo');
zrequire('colorspace');
zrequire('stream_color');
zrequire('stream_edit');
zrequire('color_data');
zrequire('stream_data');
zrequire('muting');
zrequire('condense');
zrequire('lightbox');
zrequire('overlays');
zrequire('invite');
zrequire('tab_bar');
zrequire('narrow_state');
zrequire('people');
zrequire('search_pill_widget');
zrequire('user_groups');
zrequire('unread');
zrequire('bot_data');
zrequire('message_fetch');
set_global('marked', zrequire('marked', 'third/marked/lib/marked'));
zrequire('fenced_code');
zrequire('markdown');
zrequire('upload');
zrequire('compose');
zrequire('composebox_typeahead');
zrequire('narrow');
zrequire('search_suggestion');
zrequire('search');
zrequire('tutorial');
zrequire('notifications');
zrequire('pointer');
zrequire('pm_conversations');
zrequire('compose_fade');
zrequire('pm_list');
zrequire('list_cursor');
zrequire('keydown_util');
zrequire('stream_sort');
zrequire('stream_list');
zrequire('topic_list');
zrequire('topic_zoom');
zrequire('sent_messages');
zrequire('typing');
zrequire('top_left_corner');
zrequire('starred_messages');
zrequire('user_status');
zrequire('user_status_ui');
const ui_init = zrequire('ui_init');
zrequire('settings_display');
set_global('$', global.make_zjquery());
const document_stub = $.create('document-stub');
document.to_$ = () => document_stub;
document_stub.on = () => {};
document_stub.idle = () => {};
const window_stub = $.create('window-stub');
set_global('to_$', () => window_stub);
window_stub.idle = () => {};
ui_init.initialize_kitchen_sink_stuff = () => {};
page_params.realm_default_streams = [];
page_params.subscriptions = [];
page_params.unsubscribed = [];
page_params.never_subscribed = [];
page_params.realm_notifications_stream_id = -1;
page_params.unread_msgs = {};
page_params.recent_private_conversations = [];
$('#tab_bar').append = () => {};
$('#compose').filedrop = () => {};
server_events.home_view_loaded = () => true;
resize.watch_manual_resize = () => {};
$("#stream_message_recipient_stream").typeahead = () => {};
$("#stream_message_recipient_topic").typeahead = () => {};
$("#private_message_recipient").typeahead = () => {};
$("#compose-textarea").typeahead = () => {};
$("#search_query").typeahead = () => {};
const value_stub = $.create('value');
const count_stub = $.create('count');
count_stub.set_find_results('.value', value_stub);
$(".top_left_starred_messages").set_find_results('.count', count_stub);
$("#tab_list .stream").length = 0;
run_test('initialize_everything', () => {
ui_init.initialize_everything();
});