简体   繁体   中英

How to wait for ES indexing to finish in Rspec and Capybara?

How to avoid using sleep 1 in that example for wait until ES indexing will be finished?

describe Question do
  before do
    create :question, content: "Some test question",
                      app: @app
    create :question, content: "Some other question",
                      app: @app
    sleep 1
  end

  it_behaves_like "search results found" do
    let(:query) { "Some" }
    let(:results) { ["Some test question", "Some other question"] }
  end
end

Make a call to the 'refresh' API endpoint. If you're using Tire and the ActiveModel integration feature, it would be:

Question.tire.index.refresh

Alternatively you can use curl to hit the endpoint directly.

您可以在索引上调用refresh ,这将导致它重建:

Question.index.refresh

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM