Skip to content

Commit

Permalink
Add simple rspec tests to json_endpoint (#105)
Browse files Browse the repository at this point in the history
* Add simple rspec tests to json_endpoint

* Move json_endpoint_spec to spec folder

* Remove async/debug from import

---------

Co-authored-by: a.chuzhynov <[email protected]>
  • Loading branch information
AndriiChuzhynov and a-chuzhynov authored May 15, 2024
1 parent badbe2a commit 2776ff6
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions spec/consul/async/json_endpoint_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# frozen_string_literal: true

require 'rspec'
require 'spec_helper'
require 'consul/async/json_endpoint'
require 'webmock/rspec'

RSpec.describe Consul::Async do
context 'default parameters' do
it 'request 200' do
mock_url = 'http://perfectly.working.url'
conf = Consul::Async::JSONConfiguration.new(url: mock_url)
default_value = '[]'

json_endpoint = nil
response_body = %w[a b]
stub_request(:get, mock_url)
.to_return(body: response_body.to_json, status: 200)
EM.run_block do
json_endpoint = Consul::Async::JSONEndpoint.new(conf, mock_url, default_value)
end
expect(json_endpoint.ready?).to eq(true)
expect(json_endpoint.last_result.data).to eq(response_body.to_json)
end

it 'request 500' do
mock_url = 'http://error.working.url'
conf = Consul::Async::JSONConfiguration.new(url: mock_url)
default_value = ''

json_endpoint = nil
stub_request(:get, mock_url)
.to_return(body: '', status: 500)
EM.run_block do
json_endpoint = Consul::Async::JSONEndpoint.new(conf, mock_url, default_value)
end
expect(json_endpoint.ready?).to_not eq(true)
expect(json_endpoint.last_result.retry_in).to be_positive
end

it 'on timeout' do
mock_url = 'http://not.working.url'
conf = Consul::Async::JSONConfiguration.new(url: mock_url)
default_value = ''

stub_request(:get, mock_url).to_timeout
json_endpoint = nil
EM.run_block do
json_endpoint = Consul::Async::JSONEndpoint.new(conf, mock_url, default_value, enforce_json_200: true)
end
expect(json_endpoint.ready?).to_not eq(true)
expect(json_endpoint.last_result.retry_in).to be_positive
end
end
end

0 comments on commit 2776ff6

Please sign in to comment.