File tree Expand file tree Collapse file tree 3 files changed +32
-3
lines changed Expand file tree Collapse file tree 3 files changed +32
-3
lines changed Original file line number Diff line number Diff line change 1
1
require File . expand_path ( '../spec_helper' , __FILE__ )
2
2
3
3
describe 'API' do
4
- include Rack ::Test ::Methods
5
-
6
4
let ( :api ) { API . new ( github_client ) }
7
5
let ( :github_client ) { double ( Octokit ::Client ) }
8
6
Original file line number Diff line number Diff line change
1
+ require File . expand_path ( '../spec_helper' , __FILE__ )
2
+
3
+ describe 'SignatureVerifier' do
4
+ let ( :signature_verifier ) { SignatureVerifier . new }
5
+ let ( :payload ) { '{"some_data": "awesome json"}' }
6
+
7
+ it 'returns false with a missing header' do
8
+ result = signature_verifier . verify_signature ( payload , nil )
9
+
10
+ expect ( result ) . to be_falsey
11
+ end
12
+
13
+ it 'returns false with an invalid signature' do
14
+ result = signature_verifier . verify_signature ( payload , 'some_invalid_signature' )
15
+
16
+ expect ( result ) . to be_falsey
17
+ end
18
+
19
+ it 'returns true with a valid signature' do
20
+ valid_signature = 'sha1=' + OpenSSL ::HMAC . hexdigest (
21
+ OpenSSL ::Digest . new ( 'sha1' ) ,
22
+ ENV [ 'WEBHOOK_SECRET_TOKEN' ] ,
23
+ payload
24
+ )
25
+
26
+ result = signature_verifier . verify_signature ( payload , valid_signature )
27
+
28
+ expect ( result ) . to be_truthy
29
+ end
30
+ end
Original file line number Diff line number Diff line change 4
4
ENV [ 'WEBHOOK_ENDPOINT' ] = '/payload'
5
5
ENV [ 'CONTRIBUTOR_TEAM_ID' ] = '1234567'
6
6
ENV [ 'INVITATION_MESSAGE' ] = 'Thanks!'
7
- ENV [ 'GITHUB_TOKEN' ] = '12jove8hgowbuv'
7
+ ENV [ 'GITHUB_TOKEN' ] = '12jove8hgowbuvf3rw' # random string
8
+ ENV [ 'WEBHOOK_SECRET_TOKEN' ] = 'n3iv9aj3v0' # this too
8
9
9
10
require 'octokit'
10
11
require 'sinatra'
You can’t perform that action at this time.
0 commit comments