~cytrogen/masto-fe

1ed12d5e2f6dc0f7d891916df84be6e06d37786d — Matt Jankowski 3 years ago 3ea0856
Add basic search specs for chewy indexes (#24065)

A spec/chewy/accounts_index_spec.rb => spec/chewy/accounts_index_spec.rb +31 -0
@@ 0,0 1,31 @@
# frozen_string_literal: true

require 'rails_helper'

describe AccountsIndex do
  describe 'Searching the index' do
    before do
      mock_elasticsearch_response(described_class, raw_response)
    end

    it 'returns results from a query' do
      results = described_class.query(match: { name: 'account' })

      expect(results).to eq []
    end
  end

  def raw_response
    {
      took: 3,
      hits: {
        hits: [
          {
            _id: '0',
            _score: 1.6375021,
          },
        ],
      },
    }
  end
end

A spec/chewy/statuses_index_spec.rb => spec/chewy/statuses_index_spec.rb +31 -0
@@ 0,0 1,31 @@
# frozen_string_literal: true

require 'rails_helper'

describe StatusesIndex do
  describe 'Searching the index' do
    before do
      mock_elasticsearch_response(described_class, raw_response)
    end

    it 'returns results from a query' do
      results = described_class.query(match: { name: 'status' })

      expect(results).to eq []
    end
  end

  def raw_response
    {
      took: 3,
      hits: {
        hits: [
          {
            _id: '0',
            _score: 1.6375021,
          },
        ],
      },
    }
  end
end

A spec/chewy/tags_index_spec.rb => spec/chewy/tags_index_spec.rb +31 -0
@@ 0,0 1,31 @@
# frozen_string_literal: true

require 'rails_helper'

describe TagsIndex do
  describe 'Searching the index' do
    before do
      mock_elasticsearch_response(described_class, raw_response)
    end

    it 'returns results from a query' do
      results = described_class.query(match: { name: 'tag' })

      expect(results).to eq []
    end
  end

  def raw_response
    {
      took: 3,
      hits: {
        hits: [
          {
            _id: '0',
            _score: 1.6375021,
          },
        ],
      },
    }
  end
end

M spec/rails_helper.rb => spec/rails_helper.rb +2 -0
@@ 10,6 10,7 @@ require 'rspec/rails'
require 'webmock/rspec'
require 'paperclip/matchers'
require 'capybara/rspec'
require 'chewy/rspec'

Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }



@@ 45,6 46,7 @@ RSpec.configure do |config|
  config.include Devise::Test::ControllerHelpers, type: :view
  config.include Paperclip::Shoulda::Matchers
  config.include ActiveSupport::Testing::TimeHelpers
  config.include Chewy::Rspec::Helpers
  config.include Redisable

  config.before :each, type: :feature do