Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.27 KB | None | 0 0
  1. require 'rails_helper'
  2.  
  3. RSpec.describe HTTPClient do
  4.   # basic auth
  5.   let(:user) { 'admin' }
  6.   let(:password) { 'password' }
  7.  
  8.   let(:client) { HTTPClient.new(user: user, password: password) }
  9.   let(:url) { 'http://mock.com:8080' }
  10.  
  11.   let(:http_methods) { [:get, :post, :put, :delete] }
  12.  
  13.   before do
  14.     WebMock.disable_net_connect!(allow_localhost: false)
  15.   end
  16.  
  17.   describe '#test_requests' do
  18.  
  19.     context 'a few successful requests' do
  20.       before do
  21.         http_methods.each do |http_method|
  22.           stub_request(http_method, url).to_return(status: 200)
  23.         end
  24.       end
  25.  
  26.       it 'makes some requests' do
  27.         http_methods.each do |http_method|
  28.           subject { client.run_request(method: http_method, url: url) }
  29.           expect(subject).to be_a HTTPClient::Response
  30.         end
  31.       end
  32.     end
  33.  
  34.     context 'a few failed requests' do
  35.       before do
  36.         http_methods.each do |http_method|
  37.           stub_request(http_method, url).to_return(status: 404)
  38.         end
  39.       end
  40.  
  41.       it 'raises exceptions' do
  42.         http_methods.each do |http_method|
  43.           subject { client.run_request(method: http_method, url: url) }
  44.           expect{ subject }.to raise_error(HTTPClient::Error)
  45.         end
  46.       end
  47.     end
  48.   end
  49. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement