|
9 | 9 | Resend.api_key = "re_123"
|
10 | 10 | end
|
11 | 11 |
|
12 |
| - it "Resend::Error::InvalidRequestError 400" do |
13 |
| - req = described_class.new |
14 |
| - resp = { |
15 |
| - :statusCode => 400, |
16 |
| - :message => "400" |
17 |
| - } |
18 |
| - expect { req.handle_error!(resp) }.to raise_error(Resend::Error::InvalidRequestError, /400/) |
19 |
| - end |
| 12 | + context '#perform' do |
| 13 | + context 'response is not json' do |
| 14 | + before do |
| 15 | + response = double(HTTParty::Response) |
| 16 | + html = "<html>not json</html>" |
| 17 | + allow(response).to receive(:body).and_return(html) |
| 18 | + allow(HTTParty).to receive(:send).and_return(response) |
| 19 | + end |
20 | 20 |
|
21 |
| - it "Resend::Error::InvalidRequestError 422" do |
22 |
| - req = described_class.new |
23 |
| - resp = { |
24 |
| - :statusCode => 422, |
25 |
| - :message => "422" |
26 |
| - } |
27 |
| - expect { req.handle_error!(resp) }.to raise_error(Resend::Error::InvalidRequestError, /422/) |
| 21 | + it 'should be rescuable' do |
| 22 | + req = described_class.new |
| 23 | + expect { req.perform }.to raise_error(Resend::Error::InternalServerError, /Resend API returned an unexpected response/) |
| 24 | + end |
| 25 | + end |
28 | 26 | end
|
29 | 27 |
|
30 |
| - it "Resend::Error::RateLimitExceededError 429" do |
31 |
| - req = described_class.new |
32 |
| - resp = { |
33 |
| - :statusCode => 429, |
34 |
| - :message => "429" |
35 |
| - } |
36 |
| - expect { req.handle_error!(resp) }.to raise_error(Resend::Error::RateLimitExceededError, /429/) |
37 |
| - end |
| 28 | + context 'handle_error!' do |
| 29 | + |
| 30 | + it "Resend::Error::InvalidRequestError 400" do |
| 31 | + req = described_class.new |
| 32 | + resp = { |
| 33 | + :statusCode => 400, |
| 34 | + :message => "400" |
| 35 | + } |
| 36 | + expect { req.handle_error!(resp) }.to raise_error(Resend::Error::InvalidRequestError, /400/) |
| 37 | + end |
| 38 | + |
| 39 | + it "Resend::Error::InvalidRequestError 422" do |
| 40 | + req = described_class.new |
| 41 | + resp = { |
| 42 | + :statusCode => 422, |
| 43 | + :message => "422" |
| 44 | + } |
| 45 | + expect { req.handle_error!(resp) }.to raise_error(Resend::Error::InvalidRequestError, /422/) |
| 46 | + end |
| 47 | + |
| 48 | + it "Resend::Error::RateLimitExceededError 429" do |
| 49 | + req = described_class.new |
| 50 | + resp = { |
| 51 | + :statusCode => 429, |
| 52 | + :message => "429" |
| 53 | + } |
| 54 | + expect { req.handle_error!(resp) }.to raise_error(Resend::Error::RateLimitExceededError, /429/) |
| 55 | + end |
38 | 56 |
|
39 |
| - it "Resend::Error::InternalServerError 500" do |
40 |
| - req = described_class.new |
41 |
| - resp = { |
42 |
| - :statusCode => 500, |
43 |
| - :message => "500" |
44 |
| - } |
45 |
| - expect { req.handle_error!(resp) }.to raise_error(Resend::Error::InternalServerError, /500/) |
| 57 | + it "Resend::Error::InternalServerError 500" do |
| 58 | + req = described_class.new |
| 59 | + resp = { |
| 60 | + :statusCode => 500, |
| 61 | + :message => "500" |
| 62 | + } |
| 63 | + expect { req.handle_error!(resp) }.to raise_error(Resend::Error::InternalServerError, /500/) |
| 64 | + end |
46 | 65 | end
|
47 | 66 | end
|
0 commit comments