Abbiamo appena incluso quelle che chiamiamo specifiche per il fumo o specifiche delle funzionalità principali in entrambi gli scheletri per plugin e temi.
Queste specifiche assicurano che il plugin o il tema su cui stai lavorando non compromettano la funzionalità di base di Discourse.
È facile aggiungere queste specifiche a un plugin o tema esistente:
Per 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
Per 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
Se il plugin o il tema su cui stai lavorando modifica intenzionalmente una funzionalità di base di Discourse, allora è possibile saltare alcuni degli esempi dalle specifiche delle funzionalità principali:
it_behaves_like "having working core features", skip_examples: %i[login likes]
Ecco l’elenco completo delle parole chiave per saltare gli esempi:
Ho recentemente riscontrato questo problema. Ecco come è possibile impostare le estensioni richieste:
RSpec.describe "Core features" do
+ SiteSetting.theme_authorized_extensions = "js|css"
before { upload_theme_or_component }
it_behaves_like "having working core features"
end