Nouvelles spécifications du système de fonctionnalités principales dans les plugins et thèmes

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
10 « J'aime »

IMHO, il serait très pratique et utile d’inclure ce détail dans

et

… ou le lien de ce sujet :slight_smile:

2 « J'aime »

C’est une bonne idée, cela a été fait dans DEV: Add short explanations for the core features specs by Flink · Pull Request #52 · discourse/discourse-theme-skeleton · GitHub et DEV: Add short explanations for the core features specs by Flink · Pull Request #78 · discourse/discourse-plugin-skeleton · GitHub :grin:

1 « J'aime »

Si votre thème doit avoir une Extension autorisée du thème différente, tous les tests échouent car le thème ne peut pas se charger.