discourse/spec/jobs/create_recent_post_search_indexes_spec.rb
David Taylor c9dab6fd08
DEV: Automatically require 'rails_helper' in all specs (#16077)
It's very easy to forget to add `require 'rails_helper'` at the top of every core/plugin spec file, and omissions can cause some very confusing/sporadic errors.

By setting this flag in `.rspec`, we can remove the need for `require 'rails_helper'` entirely.
2022-03-01 17:50:50 +00:00

44 lines
1.1 KiB
Ruby

# frozen_string_literal: true
describe Jobs::CreateRecentPostSearchIndexes do
subject { described_class.new }
fab!(:post) do
SearchIndexer.enable
Fabricate(:post)
end
fab!(:post_2) do
SearchIndexer.enable
Fabricate(:post)
end
before do
SearchIndexer.enable
end
describe '#execute' do
it 'should not create the index if requried posts size has not been reached' do
SiteSetting.search_recent_posts_size = 1
SiteSetting.search_enable_recent_regular_posts_offset_size = 3
expect do
subject.execute({})
end.to_not change { SiteSetting.search_recent_regular_posts_offset_post_id }
end
it 'should create the right index' do
SiteSetting.search_recent_posts_size = 1
SiteSetting.search_enable_recent_regular_posts_offset_size = 1
subject.execute({})
expect(SiteSetting.search_recent_regular_posts_offset_post_id).to eq(post_2.id)
expect(DB.query_single(<<~SQL).first).to eq(1)
SELECT 1 FROM pg_indexes WHERE indexname = '#{described_class::REGULAR_POST_SEARCH_DATA_INDEX_NAME}'
SQL
end
end
end