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…
Add table
Reference in a new issue