forked from github/github-services
-
Notifications
You must be signed in to change notification settings - Fork 0
/
codeclimate_test.rb
40 lines (31 loc) · 1.03 KB
/
codeclimate_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
require File.expand_path('../helper', __FILE__)
class CodeClimateTest < Service::TestCase
def setup
@stubs = Faraday::Adapter::Test::Stubs.new
@svc = service(data, payload)
end
def test_reads_token_from_data
assert_equal "5373dd4a3648b88fa9acb8e46ebc188a", @svc.token
end
def test_strips_whitespace_from_token
svc = service({'token' => '5373dd4a3648b88fa9acb8e46ebc188a '}, payload)
assert_equal '5373dd4a3648b88fa9acb8e46ebc188a', svc.token
end
def test_posts_payload
@stubs.post '/github_pushes' do |env|
assert_equal 'https', env[:url].scheme
assert_equal 'codeclimate.com', env[:url].host
assert_equal basic_auth('github', '5373dd4a3648b88fa9acb8e46ebc188a'),
env[:request_headers]['authorization']
assert_equal payload, JSON.parse(Rack::Utils.parse_query(env[:body])['payload'])
end
@svc.receive_push
end
private
def service(*args)
super Service::CodeClimate, *args
end
def data
{ 'token' => '5373dd4a3648b88fa9acb8e46ebc188a' }
end
end