Neue Kernfeatures Systemanforderungen in Plugins und Themes

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 Sie viele Repositories auf einmal aktualisieren müssen, ist ein Skript für unser mass-pr-Tool verfügbar.

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:

  • login
  • likes
  • profile
  • topics
  • topics:read
  • topics:reply
  • topics:create
  • search
  • search:quick_search
  • search:full_page
10 „Gefällt mir“

Meiner bescheidenen Meinung nach wäre es sehr praktisch und hilfreich, diese Details in

und

… oder den Link zu diesem Thema aufzunehmen :slight_smile:

2 „Gefällt mir“

Das ist eine gute Idee, es wurde in DEV: Add short explanations for the core features specs by Flink · Pull Request #52 · discourse/discourse-theme-skeleton · GitHub und DEV: Add short explanations for the core features specs by Flink · Pull Request #78 · discourse/discourse-plugin-skeleton · GitHub :grin: gemacht.

1 „Gefällt mir“

Wenn Ihr Theme andere Theme authorized extensions benötigt, schlagen alle Tests fehl, weil das Theme nicht geladen werden kann.