46 lines
1.1 KiB
Ruby
46 lines
1.1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'rails_helper'
|
||
|
|
||
|
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
|