Commit 224a1ec1ee1ac90df5f89497a7f5475a02b39f27

Authored by audreyschwarz
1 parent a924c1a9

Refactor test, fix build with mongoid2/3/5

Showing 2 changed files with 15 additions and 15 deletions   Show diff stats
lib/searchkick.rb
... ... @@ -103,12 +103,10 @@ module Searchkick
103 103 if items.any?
104 104 response = client.bulk(body: items)
105 105 if response["errors"]
106   - messages = response["items"].map do |item|
  106 + first_with_error = response["items"].map do |item|
107 107 (item["index"] || item["delete"])
108   - end.select { |item| item["error"] }.map do |item|
109   - "#{item["error"]} on item with id '#{item["_id"]}'"
110   - end.join "\n"
111   - raise Searchkick::ImportError, messages
  108 + end.find { |item| item["error"] }
  109 + raise Searchkick::ImportError, "#{first_with_error["error"]} on item with id '#{first_with_error["_id"]}'"
112 110 end
113 111 end
114 112 end
... ...
test/errors_test.rb
... ... @@ -2,16 +2,18 @@ require_relative "test_helper"
2 2  
3 3 class ErrorsTest < Minitest::Test
4 4 def test_bulk_import_raises_with_full_message
5   - valid_dog = Dog.new(name: "2016-01-01")
6   - invalid_dog_1 = Dog.new(name: "Bucket")
7   - invalid_dog_2 = Dog.new(name: "Ol' One-Leg")
8   - index = Searchkick::Index.new "dogs"
9   - message = nil
10   - begin
11   - index.bulk_index [valid_dog, invalid_dog_1, invalid_dog_2]
12   - rescue Searchkick::ImportError => e
13   - message = e.message
  5 + valid_dog = Dog.new(name: "2016-01-02")
  6 + invalid_dog = Dog.new(name: "Ol' One-Leg")
  7 + index = Searchkick::Index.new "dogs", mappings: {
  8 + dog: {
  9 + properties: {
  10 + name: { type: "date" }
  11 + }
  12 + }
  13 + }
  14 + error = assert_raises(Searchkick::ImportError) do
  15 + index.bulk_index [valid_dog, invalid_dog]
14 16 end
15   - assert_match /MapperParsingException.*Bucket.*Ol' One-Leg/m, message
  17 + assert_match /MapperParsingException.*Ol' One-Leg/, error.message
16 18 end
17 19 end
... ...