From 3b1117319311e88d8568860112a56784408cfb37 Mon Sep 17 00:00:00 2001 From: manisha1997 Date: Mon, 1 Dec 2025 19:04:20 +0530 Subject: [PATCH 1/2] chore: Support all status codes for delete --- lib/twilio-ruby/framework/rest/version.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/twilio-ruby/framework/rest/version.rb b/lib/twilio-ruby/framework/rest/version.rb index 455eab5bd..016422a76 100644 --- a/lib/twilio-ruby/framework/rest/version.rb +++ b/lib/twilio-ruby/framework/rest/version.rb @@ -105,11 +105,11 @@ def delete(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: n timeout ) - if response.status_code < 200 || response.status_code >= 300 + if response.status_code < 200 || response.status_code >= 400 raise exception(response, 'Unable to delete record') end - response.status_code == 204 + response.status_code >= 200 && response.status_code < 400 end def read_limits(limit = nil, page_size = nil) From aa672925fc0e281550c711b46f94babf774fd72d Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:48:10 +0530 Subject: [PATCH 2/2] test: Add comprehensive delete method status code tests (#767) * Initial plan * Add comprehensive tests for delete method with various status codes Co-authored-by: manisha1997 <28821901+manisha1997@users.noreply.github.com> * Add vendor/bundle to .gitignore and remove from repository Co-authored-by: manisha1997 <28821901+manisha1997@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: manisha1997 <28821901+manisha1997@users.noreply.github.com> --- .gitignore | 1 + spec/framework/version_spec.rb | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/.gitignore b/.gitignore index 9d0f30a4a..2fcd7fe12 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ docs/_build coverage +vendor/bundle diff --git a/spec/framework/version_spec.rb b/spec/framework/version_spec.rb index 3d1ff6a33..db06ca8bb 100644 --- a/spec/framework/version_spec.rb +++ b/spec/framework/version_spec.rb @@ -216,4 +216,44 @@ expect(actual).to_not eq(nil) end + + describe 'delete' do + it 'succeeds with status code 204' do + @holodeck.mock(Twilio::Response.new(204, '')) + actual = @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').messages('MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete + expect(actual).to eq(true) + end + + it 'succeeds with status code 200' do + @holodeck.mock(Twilio::Response.new(200, '')) + actual = @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').messages('MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete + expect(actual).to eq(true) + end + + it 'succeeds with status code 202' do + @holodeck.mock(Twilio::Response.new(202, '')) + actual = @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').messages('MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete + expect(actual).to eq(true) + end + + it 'succeeds with 3xx redirect code (307)' do + @holodeck.mock(Twilio::Response.new(307, '')) + actual = @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').messages('MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete + expect(actual).to eq(true) + end + + it 'fails with 4xx error code (404)' do + @holodeck.mock(Twilio::Response.new(404, '{"message": "Not found"}')) + expect { + @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').messages('MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete + }.to raise_error(Twilio::REST::RestError) + end + + it 'fails with 5xx error code (500)' do + @holodeck.mock(Twilio::Response.new(500, '{"message": "Internal server error"}')) + expect { + @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').messages('MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete + }.to raise_error(Twilio::REST::RestError) + end + end end