Hemos incluido lo que llamamos especificaciones de humo o especificaciones de características principales en ambos esqueletos para plugins y temas.
Estas especificaciones aseguran que el plugin o tema en el que estás trabajando no rompa la funcionalidad básica de Discourse.
Es fácil añadir estas especificaciones a un plugin o tema existente:
Para 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
Para un tema
# 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 el plugin o tema en el que estás trabajando cambia intencionadamente una funcionalidad básica de Discourse, entonces es posible omitir algunos de los ejemplos de las especificaciones de características principales:
it_behaves_like "having working core features", skip_examples: %i[login likes]
Aquí está la lista completa de palabras clave para omitir ejemplos:
Recientemente me encontré con este problema. Así es como se pueden configurar las extensiones requeridas:
RSpec.describe "Core features" do
+ SiteSetting.theme_authorized_extensions = "js|css"
before { upload_theme_or_component }
it_behaves_like "having working core features"
end