Commit 224a1ec1ee1ac90df5f89497a7f5475a02b39f27
1 parent
a924c1a9
Exists in
master
and in
21 other branches
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 | ... | ... |