plugins および themes の両方のスケルトンに、スモークスペック、つまりコア機能スペックと呼ばれるものを追加しました。
これらのスペックは、作業中のプラグインまたはテーマが 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
一度に多くのリポジトリを更新する必要がある場合は、mass-pr ツールのスクリプトが利用可能です。
作業中のプラグインまたはテーマが意図的に Discourse の基本的な機能を変更している場合は、コア機能スペックの一部の例をスキップできます。
it_behaves_like "having working core features", skip_examples: %i[login likes]
以下は、例をスキップするためのキーワードの完全なリストです。
- login
- likes
- profile
- topics
- topics:read
- topics:reply
- topics:create
- search
- search:quick_search
- search:full_page