Add Github tests
This commit is contained in:
parent
0f2013f002
commit
067097825f
3 changed files with 142 additions and 0 deletions
93
spec/fixtures/cassettes/github_lastrelease.yml
vendored
Normal file
93
spec/fixtures/cassettes/github_lastrelease.yml
vendored
Normal file
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
http_interactions:
|
||||
- request:
|
||||
method: get
|
||||
uri: https://api.github.com/repos/sgmap/tps/releases/latest
|
||||
body:
|
||||
encoding: US-ASCII
|
||||
string: ''
|
||||
headers:
|
||||
Accept:
|
||||
- "*/*"
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
User-Agent:
|
||||
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.1p112
|
||||
response:
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
headers:
|
||||
Server:
|
||||
- GitHub.com
|
||||
Date:
|
||||
- Thu, 15 Dec 2016 15:48:21 GMT
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
Status:
|
||||
- 200 OK
|
||||
X-Ratelimit-Limit:
|
||||
- '60'
|
||||
X-Ratelimit-Remaining:
|
||||
- '46'
|
||||
X-Ratelimit-Reset:
|
||||
- '1481819650'
|
||||
Cache-Control:
|
||||
- public, max-age=60, s-maxage=60
|
||||
Vary:
|
||||
- Accept
|
||||
- Accept-Encoding
|
||||
Etag:
|
||||
- W/"104562bed37a43b27f0e4ba70c1d2cff"
|
||||
Last-Modified:
|
||||
- Thu, 17 Nov 2016 10:56:47 GMT
|
||||
X-Github-Media-Type:
|
||||
- github.v3
|
||||
Access-Control-Expose-Headers:
|
||||
- ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
|
||||
X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
||||
Access-Control-Allow-Origin:
|
||||
- "*"
|
||||
Content-Security-Policy:
|
||||
- default-src 'none'
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubdomains; preload
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- deny
|
||||
X-Xss-Protection:
|
||||
- 1; mode=block
|
||||
X-Served-By:
|
||||
- 46808ddc41c302090177e58148908b23
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
X-Github-Request-Id:
|
||||
- B918B84A:73B5:C61DB9:5852BB44
|
||||
body:
|
||||
encoding: ASCII-8BIT
|
||||
string: !binary |-
|
||||
H4sIAAAAAAAAA6VVy27bMBD8FUKXXBzTap4V0hZFeikQNIe0RdEHDFqiZQaU
|
||||
yHJJt6mRf+nV3+Ef65BSnMTIA0ZPssTd4ezs7niRBaezIpt5b6ngXFg1rJWf
|
||||
hcmwNA130hriVDfCcgTgXUtBkvj+4fHBwdFeNsgEkfQ0/i8Y3oEALVhtRLWB
|
||||
1n2kbYj1iIs3rWjkQIuJ1NeAn/lGb4DfqfaBOr2o+TwfHg9jqarKir7wQYaT
|
||||
cQSHeOsAL1wt/RjKNcormuGsEeSlQ3Ife4oz2XqhnCRmhWPlTDSWmPRMNKul
|
||||
VsYJr0zLKsn0jvxtjfPxd2WIlHQ0BFTlxNRnxVRokmhA8DPjsmKRaVOrFnd+
|
||||
uQz6fd4TzvdG+f7LwxEC5wIENzuVPt5oG0i60rQeDFP/A79JfzN/FSWoXY8S
|
||||
tchiw54anwhHfE3nafXXYVOjtfmFzE2q92fzLjhf54BS91u19db5yFlw42cS
|
||||
KoF6nJha0XPTfY9Iil/w+BirKiIQ9HVyc6Y3Fu0eRp8BKr9asFikNUxQYUKl
|
||||
UzYOyDbq3MsDjnG1aNWfNGjb4CCPkJ5cYQtxUzzy5BxztU1il7Dg1qm5KK+i
|
||||
BE6WUs0h59ZgG5nA8lc2ru8ntDqKq7wci6qJK5RW63qQWSd7y1uvW+mk8Lhf
|
||||
YAOzF6P8cDfPd/Ojj/mo2DsuXoy+AsqGicb6Pxx1cFjsH8Wo3vSKbz+im7iJ
|
||||
0Jve9Iwb90m3BvVH2e1R+qRblImprlDbyWzv9QcT5hIGs1rSCcf7d/e9PQm6
|
||||
e2qVnp9aNtXhdzSpaHy9uTFJnjVCRS8RLcyNyJRqtWSrv9HyfgZEd85X7QS4
|
||||
XWdvTExVsj6Li41yrFJUBhgoI7talmqqkBivYCBlAs5jMoVL6YeJG+9JnfCe
|
||||
ZfoK5m/vmuvjxZzdWi6tPTeycUzDsEWJEq2oW4xAcHhnqyXEWVv3ajlk5y2z
|
||||
MsC0IZpxkADm3tm4bNnpxecB+3J2Ef3+/N3FkL1DrTrQ4K5WqIy667x3ahI8
|
||||
qCS5omo3ShFsugfGRc9Uf2pgQWVa90f7eBvTqToJNRraltKlBsbyUYwGlx3I
|
||||
EAhlg5VDW2QyJPYzKNZKRjtiOlVgqzz+4AgY6e7UtgdoZtf/AIfUb6aECAAA
|
||||
http_version:
|
||||
recorded_at: Thu, 15 Dec 2016 15:48:21 GMT
|
||||
recorded_with: VCR 3.0.3
|
26
spec/lib/github/api_spec.rb
Normal file
26
spec/lib/github/api_spec.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Github::API do
|
||||
|
||||
describe '.base_uri' do
|
||||
it { expect(described_class.base_uri).to eq 'https://api.github.com' }
|
||||
end
|
||||
|
||||
describe '.latest_release' do
|
||||
subject { described_class.latest_release }
|
||||
|
||||
context 'when github is up', vcr: {cassette_name: 'github_lastrelease'} do
|
||||
it { expect(subject).to be_a RestClient::Response }
|
||||
it { expect(subject.code).to eq 200 }
|
||||
end
|
||||
|
||||
context 'when github is down' do
|
||||
|
||||
before do
|
||||
allow_any_instance_of(RestClient::Resource).to receive(:get).and_raise(RestClient::Forbidden)
|
||||
end
|
||||
|
||||
it { is_expected.to be_nil }
|
||||
end
|
||||
end
|
||||
end
|
23
spec/lib/github/releases_spec.rb
Normal file
23
spec/lib/github/releases_spec.rb
Normal file
|
@ -0,0 +1,23 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Github::Releases do
|
||||
|
||||
describe '.latest' do
|
||||
|
||||
subject { described_class.latest }
|
||||
|
||||
context 'when github is up', vcr: {cassette_name: 'github_lastrelease'} do
|
||||
it { expect(subject.url).to eq 'https://api.github.com/repos/sgmap/tps/releases/4685573' }
|
||||
it { expect(subject.body).to match /.*[Nouveautés].*/ }
|
||||
it { expect(subject.published_at).to match /[0-9][0-9][\/][0-9][0-9][\/][0-9][0-9][0-9][0-9]/ }
|
||||
end
|
||||
|
||||
context 'when github is down' do
|
||||
before do
|
||||
allow_any_instance_of(RestClient::Resource).to receive(:get).and_raise(RestClient::Forbidden)
|
||||
end
|
||||
|
||||
it { is_expected.to be_nil }
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue