プラグインとテーマの新コア機能システムスペック

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
「いいね!」 10

IMHO、これは非常に便利で役立つでしょう。以下に含めることをお勧めします。

および

…または、このトピックのリンク :slight_smile:

「いいね!」 2

それは良いアイデアですね。DEV: Add short explanations for the core features specs by Flink · Pull Request #52 · discourse/discourse-theme-skeleton · GitHubDEV: Add short explanations for the core features specs by Flink · Pull Request #78 · discourse/discourse-plugin-skeleton · GitHub で実施されています :grin:

「いいね!」 1

テーマに異なる Theme authorized extensions を必要とする場合、すべてのテストが失敗します。なぜなら、テーマがロードできないからです。