discourse/app/views
Osama Sayegh cd24eff5d9
FEATURE: Introduce theme/component QUnit tests (take 2) (#12661)
This commit allows themes and theme components to have QUnit tests. To add tests to your theme/component, create a top-level directory in your theme and name it `test`, and Discourse will save all the files in that directory (and its sub-directories) as "tests files" in the database. While tests files/directories are not required to be organized in a specific way, we recommend that you follow Discourse core's tests [structure](https://github.com/discourse/discourse/tree/master/app/assets/javascripts/discourse/tests).

Writing theme tests should be identical to writing plugins or core tests; all the `import` statements and APIs that you see in core (or plugins) to define/setup tests should just work in themes.

You do need a working Discourse install to run theme tests, and you have 2 ways to run theme tests:

* In the browser at the `/qunit` route. `/qunit` will run tests of all active themes/components as well as core and plugins. The `/qunit` now accepts a `theme_name` or `theme_url` params that you can use to run tests of a specific theme/component like so: `/qunit?theme_name=<your_theme_name>`.

* In the command line using the `themes:qunit` rake task. This take is meant to run tests of a single theme/component so you need to provide it with a theme name or URL like so: `bundle exec rake themes:qunit[name=<theme_name>]` or `bundle exec rake themes:qunit[url=<theme_url>]`.

There are some refactors to how Discourse processes JavaScript that comes with themes/components, and these refactors may break your JS customizations; see https://meta.discourse.org/t/upcoming-core-changes-that-may-break-some-themes-components-april-12/186252?u=osama for details on how you can check if your themes/components are affected and what you need to do to fix them.

This commit also improves theme error handling in Discourse. We will now be able to catch errors that occur when theme initializers are run and prevent them from breaking the site and other themes/components.
2021-04-12 15:02:58 +03:00
..
about FEATURE: adds last day to about page stats (#12663) 2021-04-12 12:50:33 +10:00
admin/backups FEATURE: further restrict downloading of backups 2017-03-01 08:28:34 -07:00
application FIX: Sync Ember and non-Ember layouts (#9028) 2020-02-25 15:31:04 +02:00
badges FIX: in case of orphan user records skip badge 2019-08-30 17:21:34 +10:00
categories FIX: Resolve Schema.org validation issues 2020-05-05 16:57:16 +03:00
common FEATURE: Implement nonces for Google Tag Manager integration (#12531) 2021-03-26 11:19:31 -04:00
default FIX: Add a `title` to the groups pages 2016-07-25 14:24:43 -04:00
email UX: Remove Helvetica from our font stack (#11876) 2021-02-05 17:01:21 -05:00
embed FIX: use allowlist and blocklist terminology (#10209) 2020-07-27 10:23:54 +10:00
exceptions FIX: Hide empty popular/recent sections in 404 page (#10811) 2020-10-02 15:11:15 -04:00
finish_installation Upgrade to FontAwesome 5 (take two) (#6673) 2018-11-26 16:49:57 -05:00
groups UX: Add og metadata for groups. 2018-02-22 15:03:41 +08:00
invites FIX: better handling of invite links after they are redeemed 2018-05-08 20:17:57 +05:30
layouts FEATURE: Implement browser update in crawler view (#12448) 2021-03-22 19:41:42 +02:00
list Fix i18n issues reported on Crowdin (#11747) 2021-02-02 10:50:04 +01:00
metadata DEV: Add support for Rails 6 2019-05-02 16:23:25 +10:00
offline UX: Remove Helvetica from our font stack (#11876) 2021-02-05 17:01:21 -05:00
posts FIX: RSS feed must have unique GUID 2016-02-22 18:28:09 +05:30
published_pages FIX: use normal logo in published pages if small not available. 2020-09-21 09:20:39 +05:30
qunit FEATURE: Introduce theme/component QUnit tests (take 2) (#12661) 2021-04-12 15:02:58 +03:00
robots_txt Replace `base_uri` with `base_path` (#10879) 2020-10-09 12:51:24 +01:00
safe_mode Upgrade to FontAwesome 5 (take two) (#6673) 2018-11-26 16:49:57 -05:00
search UX: better title on search page 2017-10-27 09:13:04 +05:30
session FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) 2021-02-08 10:04:33 +00:00
static FEATURE: add short site description on login page title 2019-10-14 11:40:09 +05:30
tags FIX: Use new tag routes (#8683) 2020-01-21 19:23:08 +02:00
topics FIX: make crawler linkback list compatible with google schema guidelines. 2020-09-04 04:35:32 +05:30
user_api_keys FEATURE: Delegated authentication via user api keys (#7272) 2019-04-01 13:18:53 -04:00
user_notifications UX: Remove Helvetica from our font stack (#11876) 2021-02-05 17:01:21 -05:00
users FIX: move hp request from /users to /token (#10795) 2020-10-02 09:01:40 +10:00
users_email FIX: Ensure users can confirm new emails using security keys 2020-06-16 14:19:21 +03:00
wizard FEATURE: Dark-mode-friendly wizard (#10739) 2020-09-25 08:56:23 -04:00