DEV: correctly returns contract error (#32645)

If a user was using invalid values for the contract we would return
"Unexpected error", which is incorrect given we know the exact error.
The user will now get the following exception: "Page size must be less
than or equal to 50"
This commit is contained in:
Joffrey JAFFEUX
2025-05-08 14:30:02 +02:00
committed by GitHub
parent ad5e02a85f
commit 0947a14284
2 changed files with 9 additions and 0 deletions
+1
View File
@@ -83,6 +83,7 @@ module ChatSDK
},
) do
on_success { |messages:| messages }
on_failed_contract { |contract| raise contract.errors.full_messages.join(", ") }
on_failed_policy(:can_view_thread) { raise "Guardian can't view thread" }
on_failed_policy(:target_message_exists) { raise "Target message doesn't exist" }
on_failure { raise "Unexpected error" }
@@ -126,6 +126,14 @@ describe ChatSDK::Thread do
end
end
context "when page_size is too large" do
it "fails" do
expect { described_class.messages(**params, page_size: 9999) }.to raise_error(
"Page size must be less than or equal to 50",
)
end
end
context "when target_message doesnt exist" do
it "fails" do
expect { described_class.messages(**params, target_message_id: -999) }.to raise_error(