Commit Graph

185 Commits

Author SHA1 Message Date
Anders Kaseorg
a05899f1b5 js: Convert static/js/csrf.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-03-26 10:17:56 -07:00
Anders Kaseorg
38ffd47b90 js: Convert static/js/page_params.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-03-26 10:17:56 -07:00
Anders Kaseorg
bb1b2048bd js: Convert static/js/i18n.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-03-26 10:17:56 -07:00
Anders Kaseorg
3ef6f6e2e2 js: Convert static/js/blueslip.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-03-17 08:47:15 -04:00
Steve Howell
ce9c31ca6b node tests: Clean up settings_org.
I add a test() wrapper and use override()
more liberally.
2021-03-14 10:46:45 -04:00
Anders Kaseorg
ea9ca6b7d0 js: Use jQuery as a module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-03-12 10:08:25 -08:00
Anders Kaseorg
876806eb4d zjsunit: Lift restriction against mocking third party modules.
Use fully resolvable request paths because we need to be able to refer
to third party modules, and to increase uniformity and explicitness.

Signed-off-by: Anders Kaseorg <[email protected]>
2021-03-12 10:06:30 -08:00
Steve Howell
eea78df688 node tests: Clean up mock_module calls.
This is a deceptively ugly diff.  It makes
the actual code way more tidy.

I basically inlined some calls to mock_module
and put some statements in lexical order.
2021-03-07 09:35:58 -05:00
Steve Howell
f54f7cfc33 node tests: Introduce mock_module helper. 2021-03-06 13:15:04 -05:00
Steve Howell
167fda142c node tests: Remove __esModule cruft.
We just set __esModule in our rewiremock helper.
2021-03-06 12:36:07 -05:00
Steve Howell
30c7108955 zjsunit: Remove rewiremock dependency.
We now just use a module._load hook to inject
stubs into our code.

For conversion purposes I temporarily maintain
the API of rewiremock, apart from the enable/disable
pieces, but I will make a better wrapper in an
upcoming commit.

We can detect when rewiremock is called after
zrequire now, and I fix all the violations in
this commit, mostly by using override.

We can also detect when a mock is needlessly
created, and I fix all the violations in this
commit.

The one minor nuisance that this commit introduces
is that you can only stub out modules in the Zulip
source tree, which is now static/js.  This should
not really be a problem--there are usually better
techniques to deal with third party depenencies.
In the prior commit I show a typical workaround,
which is to create a one-line wrapper in your
test code.  It's often the case that you can simply
use override(), as well.

In passing I kill off `reset_modules`, and I
eliminated the second argument to zrequire,
which dates back to pre-es6 days.
2021-03-06 11:10:57 -05:00
Anders Kaseorg
7ec8b8980f js: Convert static/js/dropdown_list_widget.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-03-02 17:06:35 -08:00
Anders Kaseorg
2a2373307f node_tests: Remove unused rewiremocks.
Found by running the tests after

sed -i 's/\.with(/.toBeUsed().with(/g' frontend_tests/node_tests/*.js

Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
2501a0412f js: Convert static/js/settings_org.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
5ebc3f1477 js: Convert static/js/realm_logo.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
f577489aa4 js: Convert static/js/realm_icon.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
45b8e0244e js: Convert static/js/overlays.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
26710a4370 js: Convert static/js/ui_report.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
e58666e512 js: Convert static/js/list_widget.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
245d6c3a3e js: Convert static/js/stream_data.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
09920af211 js: Convert static/js/channel.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
3faae49dc0 js: Convert static/js/loading.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Anders Kaseorg
48c67700ed node_tests: Convert rewiremock.proxy uses to low level API.
This seems easier to understand and much easier to produce
automatically.

Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-28 14:23:00 -08:00
Steve Howell
5437a16602 zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
Steve Howell
1a241cef88 node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
Anders Kaseorg
7e3735b9ba node_tests: Don’t read page_params from deprecated global variable.
Follow up to commit 89aa3155a9 (#17262).

Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-22 19:46:42 -08:00
Steve Howell
64c7eb67eb zjquery: Make zjquery a singleton.
We no longer export make_zjquery().

We now instead have a singleton zjquery instance
that we attach to global.$ in index.js.

We call $.clear_all_elements() before each module.
(We will soon get even more aggressive about doing
it in run_test.)

Test functions can still override $ with set_global.
A good example of this is copy_and_paste using the
real jquery module.

We no longer exempt $ as a global variable, so
test modules that use the zjquery $ need to do:

    const $ = require("../zjsunit/zjquery");
2021-02-21 17:34:55 -05:00
Anders Kaseorg
2f6c9b8d0e zjsunit: Change override API to work with non-global modules.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-11 07:35:28 -05:00
Anders Kaseorg
e16687af83 js: Convert static/js/settings_ui.js to ES6 module.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-10 10:27:14 -08:00
Anders Kaseorg
89aa3155a9 node_tests: Don’t read from most deprecated global variables.
We still need to write to these globals with set_global because the
code being tested reads from them, but the tests themselves should
never need to read from them.

Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-10 07:40:22 -08:00
Anders Kaseorg
aa650a4c88 js: Escape strings interpolated into CSS selectors with CSS.escape.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-02-04 11:00:06 -08:00
Rohitt Vashishtha
75a0fa5b91 Rename list_render -> ListWidget.
Similar to DropdownListWidget, list_render is actually a widget. The
changed case more accurately represents how its supposed to be used
as a Class.
2021-01-29 09:36:35 -08:00
Anders Kaseorg
1e7347349c eslint: Fix unicorn/no-array-push-push.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-01-25 14:53:19 -08:00
Anders Kaseorg
552f4e3d22 eslint: Fix unicorn/no-array-for-each.
Signed-off-by: Anders Kaseorg <[email protected]>
2021-01-25 14:53:19 -08:00
Anders Kaseorg
ce42d1194d node_tests: Skip unnecessary explicit uses of global.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-12-01 07:14:00 -05:00
Anders Kaseorg
21d432e12c zjsunit: Deglobalize run_test.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-12-01 07:14:00 -05:00
Anders Kaseorg
83fedb4057 zjsunit: Deglobalize handlebars.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-12-01 07:14:00 -05:00
Anders Kaseorg
3715e68598 zjsunit: Deglobalize zjquery.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-12-01 07:14:00 -05:00
Anders Kaseorg
425f1789e2 zjsunit: Deglobalize namespace.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-12-01 07:14:00 -05:00
Anders Kaseorg
7b03d48798 zjsunit: Deglobalize assert.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-12-01 07:14:00 -05:00
Anders Kaseorg
192f1eb0fc styles: Convert [disabled] selectors to :disabled pseudo-class.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-10-30 11:46:57 -07:00
Anders Kaseorg
d72423ef21 eslint: Replace empty-returns with consistent-return.
Instead of prohibiting ‘return undefined’ (#8669), we require that a
function must return an explicit value always or never.  This prevents
you from forgetting to return a value in some cases.  It will also be
important for TypeScript, which distinguishes between undefined and
void.

Signed-off-by: Anders Kaseorg <[email protected]>
2020-09-25 15:17:59 -07:00
Aman Agrawal
2de98ab6e1 settings: Don't use css classes starting with icon.
Fixes #16252.

icon* classes are used by bootstrap for displaying glyphicons.
We removed these classes in our custom version of bootstrap 2.1.1;
but since our reset to v2.3.2, they have been added again and hence
any classes starting with icon* in zulip will have to be renamed.
2020-09-01 10:56:02 -07:00
Priyank Patel
9884226ffb settings_account: Don't redirect to login page during password change.
This handles a rare race condition that occurs when the session hash
is not updated by the backend during the password change process.
This mostly occurs in puppeteer tests, but could occur to a user.
2020-08-30 14:58:49 -07:00
Anders Kaseorg
6ec808b8df js: Add "use strict" directive to CommonJS files.
ES and TypeScript modules are strict by default and don’t need this
directive.  ESLint will remind us to add it to new CommonJS files and
remove it from ES and TypeScript modules.

Signed-off-by: Anders Kaseorg <[email protected]>
2020-07-31 22:09:46 -07:00
Steve Howell
fb06aa9419 node tests: Swap actual/expected in various assert calls. 2020-07-28 11:48:55 -04:00
Steve Howell
10bb60e13d node test: Use override in more places.
I also removed some useless stubs in passing.
2020-07-26 12:50:07 -04:00
Anders Kaseorg
498fe285fa js: Access ‘disabled’ as a property, not an attribute.
Signed-off-by: Anders Kaseorg <[email protected]>
2020-07-22 12:20:23 -07:00
jagansivam28
90cb72b103 upload widget: Rename image upload widget delete button CSS class.
Previously, image upload widget delete button CSS class name was
`settings-page-delete-button`.
We can change the CSS class name to `image-delete-button`
so that the name can be more generic.
2020-07-21 16:19:20 -07:00
Anders Kaseorg
96dcc0ce6e js: Use ES6 object literal shorthand syntax.
Generated by ESLint.

Signed-off-by: Anders Kaseorg <[email protected]>
2020-07-21 12:42:22 -07:00