Мы только что добавили так называемые smoke-спеки или спецификации основных функций в оба скелета для плагинов и тем.
Эти спеки гарантируют, что плагин или тема, над которыми вы работаете, не нарушат базовую функциональность Discourse.
Добавить эти спеки в существующий плагин или тему очень просто:
Для плагина
# spec/system/core_features_spec.rb
RSpec.describe "Core features", type: :system do
before { enable_current_plugin }
it_behaves_like "having working core features"
end
Для темы
# spec/system/core_features_spec.rb
RSpec.describe "Core features", type: :system do
before { upload_theme_or_component }
it_behaves_like "having working core features"
end
Если плагин или тема, над которыми вы работаете, намеренно изменяют базовую функциональность Discourse, можно пропустить некоторые примеры из спецификаций основных функций:
it_behaves_like "having working core features", skip_examples: %i[login likes]
Ниже приведён полный список ключевых слов для пропуска примеров:
Недавно я столкнулся с этой проблемой. Вот как можно задать необходимые расширения:
RSpec.describe "Core features" do
+ SiteSetting.theme_authorized_extensions = "js|css"
before { upload_theme_or_component }
it_behaves_like "having working core features"
end