Nous venons d’inclure ce que nous appelons des « smoke specs » ou « core features specs » dans les deux squelettes pour les plugins et les thèmes.
Ces spécifications garantissent que le plugin ou le thème sur lequel vous travaillez ne casse pas les fonctionnalités de base de Discourse.
Il est facile d’ajouter ces spécifications à un plugin ou un thème existant :
Pour un 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
Pour un thème
# 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
Si vous avez besoin de mettre à jour plusieurs dépôts à la fois, un script pour notre outil mass-pr est disponible.
Si le plugin ou le thème sur lequel vous travaillez modifie intentionnellement une fonctionnalité de base de Discourse, il est alors possible d’ignorer certains exemples des spécifications des fonctionnalités de base :
it_behaves_like "having working core features", skip_examples: %i[login likes]
Voici la liste complète des mots-clés pour ignorer les exemples :
- login
- likes
- profile
- topics
- topics:read
- topics:reply
- topics:create
- search
- search:quick_search
- search:full_page