forked from benbalter/add-to-org-demo
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmy_app_spec.rb
50 lines (39 loc) · 1.72 KB
/
my_app_spec.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
41
42
43
44
45
46
47
48
49
50
# Copied from https://github.com/benbalter/add-to-org/blob/master/spec/add-to-org_spec.rb
require "spec_helper"
describe "logged in user" do
include Rack::Test::Methods
def app
AddToOrg::App
end
before do
@user = make_user('login' => 'benbaltertest')
login_as @user
end
it "denies acccess to invalid users" do
with_env "GITHUB_ORG_ID", "some_org" do
stub_request(:get, "https://api.github.com/orgs/some_org/members/benbaltertest").
to_return(:status => 404)
stub_request(:get, "https://api.github.com/user/emails").
to_return(:status => 200, :body => fixture("invalid_emails.json"), :headers => { 'Content-Type'=>'application/json' })
get "/"
expect(last_response.status).to eql(403)
expect(last_response.body).to match(/We're unable to verify your eligibility at this time/)
end
end
it "adds valid users" do
with_env "GITHUB_ORG_ID", "some_org" do
stub_request(:get, "https://api.github.com/orgs/some_org/members/benbaltertest").
to_return(:status => 404)
stub_request(:get, "https://api.github.com/user/emails").
to_return(:status => 200, :body => fixture("emails.json"), :headers => { 'Content-Type'=>'application/json' })
stub = stub_request(:put, "https://api.github.com/teams/memberships/benbaltertest").
to_return(:status => 204)
get "/foo"
expect(stub).to have_been_requested
expect(last_response.status).to eql(200)
expect(last_response.body).to match(/confirm your invitation to join the organization/)
expect(last_response.body).to match(/https:\/\/github.com\/orgs\/some_org\/invitation/)
expect(last_response.body).to match(/\?return_to=https:\/\/github.com\/foo/)
end
end
end