discourse/plugins/poll/spec/lib/search_spec.rb
Daniel Waterworth 6e161d3e75
DEV: Allow fab! without block (#24314)
The most common thing that we do with fab! is:

    fab!(:thing) { Fabricate(:thing) }

This commit adds a shorthand for this which is just simply:

    fab!(:thing)

i.e. If you omit the block, then, by default, you'll get a `Fabricate`d object using the fabricator of the same name.
2023-11-09 16:47:59 -06:00

43 lines
1.1 KiB
Ruby

# frozen_string_literal: true
RSpec.describe Search do
fab!(:topic)
fab!(:topic2) { Fabricate(:topic) }
fab!(:regular_post) { Fabricate(:post, topic: topic, raw: <<~RAW) }
Somewhere over the rainbow but no poll.
RAW
fab!(:post_with_poll) { Fabricate(:post, topic: topic2, raw: <<~RAW) }
Somewhere over the rainbow with a poll.
[poll]
* Like
* Dislike
[/poll]
RAW
before do
SearchIndexer.enable
Jobs.run_immediately!
SearchIndexer.index(topic2, force: true)
SearchIndexer.index(topic, force: true)
end
after { SearchIndexer.disable }
context "when using in:polls" do
it "displays only posts containing polls" do
results = Search.execute("rainbow in:polls", guardian: Guardian.new)
expect(results.posts).to contain_exactly(post_with_poll)
end
end
context "when polls are disabled" do
it "ignores in:polls filter" do
SiteSetting.poll_enabled = false
results = Search.execute("rainbow in:polls", guardian: Guardian.new)
expect(results.posts).to contain_exactly(regular_post, post_with_poll)
end
end
end