File tree Expand file tree Collapse file tree 2 files changed +42
-1
lines changed
Expand file tree Collapse file tree 2 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,21 @@ def self.parse_query(original_options, allowed_params = [])
3333 end
3434 end
3535
36- private_class_method :parse
36+ def self . message_builder ( current_message , method_name )
37+ "#{ current_message } \n Hint: It might not be working because maybe you're not up " \
38+ "to date with the Meilisearch version that `#{ method_name } ` call requires."
39+ end
40+
41+ def self . version_error_handler ( method_name )
42+ yield if block_given?
43+ rescue MeiliSearch ::ApiError => e
44+ message = message_builder ( e . http_message , method_name )
45+
46+ raise MeiliSearch ::ApiError . new ( e . http_code , message , e . http_body )
47+ rescue StandardError => e
48+ raise e . class , message_builder ( e . message , method_name )
49+ end
50+
51+ private_class_method :parse , :message_builder
3752 end
3853end
Original file line number Diff line number Diff line change 4646 )
4747 end
4848 end
49+
50+ describe '.version_error_handler' do
51+ it 'spawns same error message' do
52+ expect do
53+ MeiliSearch ::Utils . version_error_handler ( :my_method ) do
54+ raise MeiliSearch ::ApiError . new ( 405 , 'I came from Meili server' , { } )
55+ end
56+ end . to raise_error ( MeiliSearch ::ApiError , /I came from Meili server/ )
57+ end
58+
59+ it 'spawns message with version hint' do
60+ expect do
61+ MeiliSearch ::Utils . version_error_handler ( :my_method ) do
62+ raise MeiliSearch ::ApiError . new ( 405 , 'I came from Meili server' , { } )
63+ end
64+ end . to raise_error ( MeiliSearch ::ApiError , /that `my_method` call requires/ )
65+ end
66+
67+ it 'adds hints to all error types' do
68+ expect do
69+ MeiliSearch ::Utils . version_error_handler ( :my_method ) do
70+ raise MeiliSearch ::CommunicationError , 'I am an error'
71+ end
72+ end . to raise_error ( MeiliSearch ::CommunicationError , /that `my_method` call requires/ )
73+ end
74+ end
4975end
You can’t perform that action at this time.
0 commit comments