Wir haben gerade das aufgenommen, was wir Smoke Specs oder Core Features Specs nennen, in beiden Skeletten für Plugins und Themes.
Diese Specs stellen sicher, dass das Plugin oder Theme, an dem Sie arbeiten, die grundlegende Funktionalität von Discourse nicht beeinträchtigt.
Es ist einfach, diese Specs zu einem bestehenden Plugin oder Theme hinzuzufügen:
Für ein Plugin
# 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
Für ein Theme
# 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
Wenn das Plugin oder Theme, an dem Sie arbeiten, eine grundlegende Funktionalität von Discourse absichtlich ändert, ist es möglich, einige der Beispiele aus den Core Features Specs zu überspringen:
it_behaves_like "having working core features", skip_examples: %i[login likes]
Hier ist die vollständige Liste der Schlüsselwörter zum Überspringen von Beispielen:
Ich bin kürzlich auf dieses Problem gestoßen. So können die erforderlichen Erweiterungen festgelegt werden:
RSpec.describe "Core features" do
+ SiteSetting.theme_authorized_extensions = "js|css"
before { upload_theme_or_component }
it_behaves_like "having working core features"
end