Новые функции ядра: системные требования для плагинов и тем

Мы только что добавили так называемые smoke-спеки или спецификации основных функций в оба скелета для плагинов и тем.

Эти спеки гарантируют, что плагин или тема, над которыми вы работаете, не нарушат базовую функциональность 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

На мой взгляд, было бы очень удобно и полезно включить эту информацию в

и

… или добавить ссылку на эту тему :slight_smile:

Это хорошая идея, это уже реализовано в DEV: Add short explanations for the core features specs by Flink · Pull Request #52 · discourse/discourse-theme-skeleton · GitHub и DEV: Add short explanations for the core features specs by Flink · Pull Request #78 · discourse/discourse-plugin-skeleton · GitHub :grin:

Если вашей теме требуется указать другие «Разрешённые расширения темы», все тесты завершаются неудачей, так как тема не может быть загружена.