DEV: ensure state is clean prior to spec (#12399)

Corrects flaky spec

Previously we were only clearing state after our spec ran, leaving possible
edge cases where `Discourse.plugins` had data.

Clean-up source of the plugin leak

1 pop was not enough to clear the plugin, plus make specs a bit more
deliberate
This commit is contained in:
Sam
2021-03-15 19:11:23 +11:00
committed by GitHub
parent 139a547f22
commit 6c57f6f49d
2 changed files with 20 additions and 7 deletions

View File

@ -28,14 +28,20 @@ describe Stylesheet::Compiler do
end
context "with a plugin" do
before do
let :plugin1 do
plugin1 = Plugin::Instance.new
plugin1.path = "#{Rails.root}/spec/fixtures/plugins/my_plugin/plugin.rb"
plugin1.register_css "body { background: $primary }"
plugin1
end
let :plugin2 do
plugin2 = Plugin::Instance.new
plugin2.path = "#{Rails.root}/spec/fixtures/plugins/scss_plugin/plugin.rb"
plugin2
end
before do
Discourse.plugins << plugin1
Discourse.plugins << plugin2
plugin1.activate!
@ -44,7 +50,8 @@ describe Stylesheet::Compiler do
end
after do
Discourse.plugins.pop
Discourse.plugins.delete plugin1
Discourse.plugins.delete plugin2
Stylesheet::Importer.register_imports!
DiscoursePluginRegistry.reset!
end