mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 21:43:21 +00:00
The following elements in the top left corner
are major components of our app:
All messages
Private messages
Starred messages
Mentions
We can now find them directly:
$('.top_left_all_messages')
$('.top_left_private_messages')
$('.top_left_starred_messages')
$('.top_left_mentions')
Before this, we had to build up complicated selectors
like below:
exports.get_global_filter_li = function (filter_name) {
var selector = "#global_filters li[data-name='"
+ filter_name + "']";
return $(selector);
};
I don't think any newbie would know to grep for "global_filter",
and I've seen a PR where somebody added specific markup here
to "Private messages" because they couldn't grok the old scheme.
Another thing to note is that we still have a "home-link"
class for "All messages", which overlapped with portico
code that had the same name. (There were some inaccurate
comments in the code relating to the tab bar, but we don't
actually have a way to click to the home view in the tab
bar any more.) I'll eliminate that cruft in another commit.
For this commit the four elements still have the
"global-filter" class, since there's some benefit to being
able to style them all as a group, although we should give
it a nicer name in a subsequent commit.
Most of this PR is basic search/replace, but I did add a
two-line helper: `top_left_corner.update_starred_count`
166 lines
4.0 KiB
JavaScript
166 lines
4.0 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',
|
|
},
|
|
});
|
|
|
|
global.patch_builtin('window', {});
|
|
|
|
set_global('csrf_token', 'whatever');
|
|
|
|
set_global('$', () => {});
|
|
set_global('resize', {});
|
|
set_global('feature_flags', {});
|
|
set_global('page_params', {});
|
|
set_global('templates', {});
|
|
|
|
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;
|
|
templates.render = () => 'some-html';
|
|
|
|
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');
|
|
zrequire('marked', 'third/marked/lib/marked');
|
|
zrequire('fenced_code');
|
|
zrequire('markdown');
|
|
zrequire('upload');
|
|
zrequire('compose');
|
|
zrequire('composebox_typeahead');
|
|
zrequire('narrow');
|
|
zrequire('search');
|
|
zrequire('tutorial');
|
|
zrequire('notifications');
|
|
zrequire('pointer');
|
|
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');
|
|
zrequire('ui_init');
|
|
|
|
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');
|
|
window.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;
|
|
|
|
$('#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);
|
|
|
|
|
|
run_test('initialize_everything', () => {
|
|
ui_init.initialize_everything();
|
|
});
|