mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 02:40:53 -06:00
a53d8d3e61
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 internal code that's responsible for processing themes/components in Discourse, most notably: * `<script type="text/discourse-plugin">` tags are automatically converted to modules. * The `theme-settings` service is removed in favor of a simple `lib` file responsible for managing theme settings. This was done to allow us to register/lookup theme settings very early in our Ember app lifecycle and because there was no reason for it to be an Ember service. These refactors should 100% backward compatible and invisible to theme developers. |
||
---|---|---|
.. | ||
admin | ||
users | ||
about_controller.rb | ||
application_controller.rb | ||
badges_controller.rb | ||
bookmarks_controller.rb | ||
bootstrap_controller.rb | ||
categories_controller.rb | ||
clicks_controller.rb | ||
composer_messages_controller.rb | ||
csp_reports_controller.rb | ||
directory_items_controller.rb | ||
do_not_disturb_controller.rb | ||
draft_controller.rb | ||
drafts_controller.rb | ||
email_controller.rb | ||
embed_controller.rb | ||
exceptions_controller.rb | ||
export_csv_controller.rb | ||
extra_locales_controller.rb | ||
finish_installation_controller.rb | ||
forums_controller.rb | ||
groups_controller.rb | ||
hashtags_controller.rb | ||
highlight_js_controller.rb | ||
inline_onebox_controller.rb | ||
invites_controller.rb | ||
list_controller.rb | ||
metadata_controller.rb | ||
notifications_controller.rb | ||
offline_controller.rb | ||
onebox_controller.rb | ||
permalinks_controller.rb | ||
post_action_users_controller.rb | ||
post_actions_controller.rb | ||
post_readers_controller.rb | ||
posts_controller.rb | ||
published_pages_controller.rb | ||
push_notification_controller.rb | ||
qunit_controller.rb | ||
reviewable_claimed_topics_controller.rb | ||
reviewables_controller.rb | ||
robots_txt_controller.rb | ||
safe_mode_controller.rb | ||
search_controller.rb | ||
session_controller.rb | ||
similar_topics_controller.rb | ||
site_controller.rb | ||
static_controller.rb | ||
steps_controller.rb | ||
stylesheets_controller.rb | ||
svg_sprite_controller.rb | ||
tag_groups_controller.rb | ||
tags_controller.rb | ||
theme_javascripts_controller.rb | ||
topics_controller.rb | ||
uploads_controller.rb | ||
user_actions_controller.rb | ||
user_api_keys_controller.rb | ||
user_avatars_controller.rb | ||
user_badges_controller.rb | ||
users_controller.rb | ||
users_email_controller.rb | ||
webhooks_controller.rb | ||
wizard_controller.rb |