Go to file
Steve Howell f62f8c9238 message tests: Clean up edit-message tests.
Overall, this change eliminates a lot of
optional parameters and conditionals, plus
some legacy logic related to caches.

For all the places we are just editing topics,
we now just call `check_topic` to see that
the topic got updated.

For places where the topic edit failed, we
just inline the checks that message still
has the old topic and content.

And then for successful **content** edits,
we now do a more rigorous, more sane check
that the messages are properly cached.  The
old code here had evolved from 2013 into
something that didn't really make much sense
in the context of editing topics.

Now we are literally pulling data from the
cache and making sure it's valid, rather
than trying to poorly simulate the two
codepaths related to dispatching message
events and fetching messages.  Some of the
history here was that when I introduced
`MessageDict` several years ago, I did a
lot of code sweeping and didn't analyze every
single test to make sure it's still valid,
plus some of the tests still had some value
for catching regressions.  A recent commit
now gets us coverage on that a lot more
explicitly, rather than in passing.
2020-03-27 13:51:50 -07:00
.circleci circleci: Comment out focal backend-frontend job. 2020-03-26 13:11:48 -07:00
.github github: Suggest GIFs too in PR template. 2018-02-16 09:59:22 -08:00
.tx cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
analytics tests: Use email/delivery_email more explicitly. 2020-03-19 16:04:03 -07:00
confirmation confirmation: Add database indexes on confirmation fields. 2020-03-27 02:03:05 -07:00
corporate billing: Set default value of licensed_used to 0 in /billing. 2020-03-25 10:54:10 -07:00
docs docs: Document EMAIL_USE_SSL for smtp providers on port 465. 2020-03-27 00:25:49 -07:00
frontend_tests narrow: Show starred messages from muted topics in starred message view. 2020-03-27 00:17:26 -07:00
locale i18n: Update translation data from transifex. 2019-12-12 20:34:46 -08:00
pgroonga python: Sort migrations/management command imports with isort. 2020-01-14 13:07:47 -08:00
puppet docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
requirements requirements: Get transifex-client from apt. 2020-03-26 21:39:04 -07:00
scripts restart-server: Restart Tornado processes individually. 2020-03-27 06:23:34 -07:00
static portico: Use a backend variable to determine desktop version. 2020-03-27 01:37:56 -07:00
stubs mypy: Remove daemon mode. 2019-08-25 15:04:12 -07:00
templates docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
tools requirements: Get transifex-client from apt. 2020-03-26 21:39:04 -07:00
zerver message tests: Clean up edit-message tests. 2020-03-27 13:51:50 -07:00
zilencer populate_db, tests: Restrict emails in zulip realm. 2020-03-19 16:21:31 -07:00
zproject docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
zthumbor zthumbor: Clean up type ignores. 2019-08-09 17:42:33 -07:00
.browserslistrc webpack: Transpile JS code with Babel. 2019-07-22 17:55:32 -07:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.editorconfig editorconfig: Set JS max_line_length = 100, to match eslintrc. 2019-10-14 17:32:38 -07:00
.eslintignore blueslip: Apply ESLint. 2019-11-01 12:13:59 -07:00
.eslintrc.json dict: Replace with Map. 2020-02-25 15:37:37 -08:00
.gitattributes Revert "gitattributes: Mark yarn.lock as "binary", i.e. suppress diffs." 2019-05-20 19:31:14 -07:00
.gitignore i18n: Move static/locale back to locale. 2019-07-02 14:57:55 -07:00
.gitlint lint: Allow revert commit messages in gitlint. 2018-02-13 09:21:01 -08:00
.isort.cfg tornado: Fix logging of tornado activity level. 2018-04-17 15:59:01 -07:00
.npmignore
.stylelintrc lint: Ban color names in CSS. 2019-01-22 15:33:18 -08:00
.travis.yml ci: Move backend and production tests to Ubuntu 16.04 (xenial). 2019-05-24 17:07:15 -07:00
.yarnrc .yarnrc: Set ignore-scripts true. 2019-08-28 16:15:54 -07:00
CODE_OF_CONDUCT.md docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
CONTRIBUTING.md docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
Dockerfile-postgresql base Zulip PostgreSQL Docker container on PGroonga official one 2019-12-30 10:20:25 -08:00
LICENSE license: Move license application notice from LICENSE to NOTICE. 2018-10-02 12:04:44 -07:00
NOTICE license: Move license application notice from LICENSE to NOTICE. 2018-10-02 12:04:44 -07:00
README.md docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
Vagrantfile Revert "vagrant: Add NFS backend for file synchronization for OSX." 2019-08-12 16:04:00 -07:00
babel.config.js babel: Enable loose mode. 2020-02-05 11:52:52 -08:00
manage.py setup_path_on_import: Replace with setup_path function. 2020-02-25 15:40:21 -08:00
mypy.ini tornado: Rewrite Django integration to duplicate less code. 2020-02-13 16:13:11 -08:00
package.json provision: Add provision support for puppeteer. 2020-03-22 11:42:14 -07:00
postcss.config.js webpack: Move CSS minification to optimization stage. 2019-09-02 21:58:13 -07:00
tsconfig.json tsconfig: Disable automatic inclusion of type packages. 2020-03-26 17:07:50 -07:00
version.py portico: Use a backend variable to determine desktop version. 2020-03-27 01:37:56 -07:00
yarn.lock provision: Add provision support for puppeteer. 2020-03-22 11:42:14 -07:00

README.md

Zulip overview

Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations. Zulip is used by open source projects, Fortune 500 companies, large standards bodies, and others who need a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 500 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

CircleCI branch Coverage Status Mypy coverage GitHub release docs Zulip chat Twitter

Getting started

Click on the appropriate link below. If nothing seems to apply, join us on the Zulip community server and tell us what's up!

You might be interested in:

You may also be interested in reading our blog or following us on twitter. Zulip is distributed under the Apache 2.0 license.