warden-github-rails 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/lib/warden/github/rails/test_helpers/mock_user.rb +9 -0
- data/spec/integration/controller_helpers_spec.rb +1 -1
- data/spec/integration/membership_spec.rb +19 -19
- data/spec/integration/route_spec.rb +12 -12
- data/spec/rails_app/config/environments/development.rb +1 -0
- data/spec/rails_app/config/environments/production.rb +1 -0
- data/spec/rails_app/config/environments/test.rb +1 -0
- data/spec/spec_helper.rb +0 -2
- data/spec/unit/mock_user_spec.rb +9 -1
- data/spec/unit/test_helpers_spec.rb +12 -20
- data/warden-github-rails.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a96bbb9fc625a4f55a485c3b6be6d1643370446
|
4
|
+
data.tar.gz: 31f25b811a1ca9e55ab0f2a090a5ba475dfd3a20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2e5abd46558cf29888cf3eab6ee6ae3589fb3800d8f65095557bc4610c8138112db42f9f9f4ef999636075c2c906a3322de4952e6ca0adf718022ab8d4916e2
|
7
|
+
data.tar.gz: 1e0b6b703e7d12fb1c3fcd7e37299fb68fe0f453499fd20bf75ff984e749561de59b85c3b4c02afdcf036a121771c33588acb436f6cb2763f5aee21c064dbbab
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -214,7 +214,7 @@ This gems comes with a couple test helpers to make your life easier:
|
|
214
214
|
|
215
215
|
```ruby
|
216
216
|
subject { get '/some-url-that-triggers-oauth' }
|
217
|
-
it {
|
217
|
+
it { is_expected.to be_github_oauth_redirect }
|
218
218
|
```
|
219
219
|
|
220
220
|
- A mock user that allows you to stub team and organization memberships:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.2
|
@@ -25,6 +25,15 @@ module Warden
|
|
25
25
|
def organization_member?(id)
|
26
26
|
memberships[:org].include?(id)
|
27
27
|
end
|
28
|
+
|
29
|
+
def marshal_dump
|
30
|
+
[memberships, super]
|
31
|
+
end
|
32
|
+
|
33
|
+
def marshal_load(data)
|
34
|
+
@memberships, super_data = data
|
35
|
+
super(super_data)
|
36
|
+
end
|
28
37
|
end
|
29
38
|
end
|
30
39
|
end
|
@@ -6,7 +6,7 @@ describe 'request to a protected resource' do
|
|
6
6
|
subject { get '/team/protected' }
|
7
7
|
|
8
8
|
context 'when not logged in' do
|
9
|
-
it {
|
9
|
+
it { is_expected.to be_github_oauth_redirect }
|
10
10
|
end
|
11
11
|
|
12
12
|
context 'when logged in' do
|
@@ -16,12 +16,12 @@ describe 'request to a protected resource' do
|
|
16
16
|
user.stub_membership(team: 123)
|
17
17
|
end
|
18
18
|
|
19
|
-
it {
|
19
|
+
it { is_expected.to be_ok }
|
20
20
|
end
|
21
21
|
|
22
22
|
context 'and not team member' do
|
23
23
|
before { github_login }
|
24
|
-
it {
|
24
|
+
it { is_expected.to be_not_found}
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -30,7 +30,7 @@ describe 'request to a protected resource' do
|
|
30
30
|
subject { get '/team_alias/protected' }
|
31
31
|
|
32
32
|
context 'when not logged in' do
|
33
|
-
it {
|
33
|
+
it { is_expected.to be_github_oauth_redirect }
|
34
34
|
end
|
35
35
|
|
36
36
|
context 'when logged in' do
|
@@ -40,12 +40,12 @@ describe 'request to a protected resource' do
|
|
40
40
|
user.stub_membership(team: 456)
|
41
41
|
end
|
42
42
|
|
43
|
-
it {
|
43
|
+
it { is_expected.to be_ok }
|
44
44
|
end
|
45
45
|
|
46
46
|
context 'and not team member' do
|
47
47
|
before { github_login }
|
48
|
-
it {
|
48
|
+
it { is_expected.to be_not_found}
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -60,12 +60,12 @@ describe 'request to a protected resource' do
|
|
60
60
|
user.stub_membership(team: 123)
|
61
61
|
end
|
62
62
|
|
63
|
-
it {
|
63
|
+
it { is_expected.to be_ok }
|
64
64
|
end
|
65
65
|
|
66
66
|
context 'and not team member' do
|
67
67
|
before { github_login }
|
68
|
-
it {
|
68
|
+
it { is_expected.to be_not_found}
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
@@ -77,7 +77,7 @@ describe 'request to a protected resource' do
|
|
77
77
|
subject { get "/#{key}/protected" }
|
78
78
|
|
79
79
|
context 'when not logged in' do
|
80
|
-
it {
|
80
|
+
it { is_expected.to be_github_oauth_redirect }
|
81
81
|
end
|
82
82
|
|
83
83
|
context 'when logged in' do
|
@@ -87,12 +87,12 @@ describe 'request to a protected resource' do
|
|
87
87
|
user.stub_membership(org: value)
|
88
88
|
end
|
89
89
|
|
90
|
-
it {
|
90
|
+
it { is_expected.to be_ok }
|
91
91
|
end
|
92
92
|
|
93
93
|
context 'and not organization member' do
|
94
94
|
before { github_login }
|
95
|
-
it {
|
95
|
+
it { is_expected.to be_not_found }
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
@@ -108,12 +108,12 @@ describe 'request to a protected resource' do
|
|
108
108
|
user.stub_membership(org: 'some_org')
|
109
109
|
end
|
110
110
|
|
111
|
-
it {
|
111
|
+
it { is_expected.to be_ok }
|
112
112
|
end
|
113
113
|
|
114
114
|
context 'and not organization member' do
|
115
115
|
before { github_login }
|
116
|
-
it {
|
116
|
+
it { is_expected.to be_not_found}
|
117
117
|
end
|
118
118
|
end
|
119
119
|
end
|
@@ -131,12 +131,12 @@ describe 'request to a resource that only exists when logged in' do
|
|
131
131
|
user.stub_membership(team: 123)
|
132
132
|
end
|
133
133
|
|
134
|
-
it {
|
134
|
+
it { is_expected.to be_ok }
|
135
135
|
end
|
136
136
|
|
137
137
|
context 'when not team member' do
|
138
138
|
before { github_login }
|
139
|
-
it {
|
139
|
+
it { is_expected.to be_not_found}
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
@@ -149,12 +149,12 @@ describe 'request to a resource that only exists when logged in' do
|
|
149
149
|
user.stub_membership(team: 456)
|
150
150
|
end
|
151
151
|
|
152
|
-
it {
|
152
|
+
it { is_expected.to be_ok }
|
153
153
|
end
|
154
154
|
|
155
155
|
context 'when not team member' do
|
156
156
|
before { github_login }
|
157
|
-
it {
|
157
|
+
it { is_expected.to be_not_found}
|
158
158
|
end
|
159
159
|
end
|
160
160
|
end
|
@@ -170,12 +170,12 @@ describe 'request to a resource that only exists when logged in' do
|
|
170
170
|
user.stub_membership(org: value)
|
171
171
|
end
|
172
172
|
|
173
|
-
it {
|
173
|
+
it { is_expected.to be_ok }
|
174
174
|
end
|
175
175
|
|
176
176
|
context 'when not organization member' do
|
177
177
|
before { github_login }
|
178
|
-
it {
|
178
|
+
it { is_expected.to be_not_found }
|
179
179
|
end
|
180
180
|
end
|
181
181
|
end
|
@@ -4,12 +4,12 @@ describe 'request to a protected resource' do
|
|
4
4
|
subject { get '/protected' }
|
5
5
|
|
6
6
|
context 'when not logged in' do
|
7
|
-
it {
|
7
|
+
it { is_expected.to be_github_oauth_redirect }
|
8
8
|
end
|
9
9
|
|
10
10
|
context 'when logged in' do
|
11
11
|
before { github_login }
|
12
|
-
it {
|
12
|
+
it { is_expected.to be_ok }
|
13
13
|
end
|
14
14
|
|
15
15
|
context 'with multiple scopes' do
|
@@ -17,12 +17,12 @@ describe 'request to a protected resource' do
|
|
17
17
|
|
18
18
|
context 'when logged in in the wrong scope' do
|
19
19
|
before { github_login }
|
20
|
-
it {
|
20
|
+
it { is_expected.to be_github_oauth_redirect }
|
21
21
|
end
|
22
22
|
|
23
23
|
context 'when logged in in the correct scope' do
|
24
24
|
before { github_login(:admin) }
|
25
|
-
it {
|
25
|
+
it { is_expected.to be_ok }
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -31,12 +31,12 @@ describe 'request to a resource that only exists when logged in' do
|
|
31
31
|
subject { get '/conditional' }
|
32
32
|
|
33
33
|
context 'when not logged in' do
|
34
|
-
it {
|
34
|
+
it { is_expected.to be_not_found }
|
35
35
|
end
|
36
36
|
|
37
37
|
context 'when logged in' do
|
38
38
|
before { github_login }
|
39
|
-
it {
|
39
|
+
it { is_expected.to be_ok }
|
40
40
|
end
|
41
41
|
|
42
42
|
context 'with mutliple scopes' do
|
@@ -44,12 +44,12 @@ describe 'request to a resource that only exists when logged in' do
|
|
44
44
|
|
45
45
|
context 'when logged in in the wrong scope' do
|
46
46
|
before { github_login }
|
47
|
-
it {
|
47
|
+
it { is_expected.to be_not_found }
|
48
48
|
end
|
49
49
|
|
50
50
|
context 'when logged in in the correct scope' do
|
51
51
|
before { github_login(:admin) }
|
52
|
-
it {
|
52
|
+
it { is_expected.to be_ok }
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -58,12 +58,12 @@ describe 'request to a resource that only exists when logged out' do
|
|
58
58
|
subject { get '/conditional_inverse' }
|
59
59
|
|
60
60
|
context 'when not logged in' do
|
61
|
-
it {
|
61
|
+
it { is_expected.to be_ok }
|
62
62
|
end
|
63
63
|
|
64
64
|
context 'when logged in' do
|
65
65
|
before { github_login }
|
66
|
-
it {
|
66
|
+
it { is_expected.to be_not_found }
|
67
67
|
end
|
68
68
|
|
69
69
|
context 'with mutliple scopes' do
|
@@ -71,12 +71,12 @@ describe 'request to a resource that only exists when logged out' do
|
|
71
71
|
|
72
72
|
context 'when logged in in the wrong scope' do
|
73
73
|
before { github_login }
|
74
|
-
it {
|
74
|
+
it { is_expected.to be_ok }
|
75
75
|
end
|
76
76
|
|
77
77
|
context 'when logged in in the correct scope' do
|
78
78
|
before { github_login(:admin) }
|
79
|
-
it {
|
79
|
+
it { is_expected.to be_not_found }
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -25,9 +25,7 @@ ENV['GITHUB_CLIENT_ID'] = 'test_client_id'
|
|
25
25
|
ENV['GITHUB_CLIENT_SECRET'] = 'test_client_secret'
|
26
26
|
|
27
27
|
RSpec.configure do |config|
|
28
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
29
28
|
config.run_all_when_everything_filtered = true
|
30
|
-
config.filter_run :focus
|
31
29
|
config.order = 'random'
|
32
30
|
config.expect_with :rspec do |c|
|
33
31
|
c.syntax = :expect
|
data/spec/unit/mock_user_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Warden::GitHub::Rails::TestHelpers::MockUser do
|
4
|
-
it {
|
4
|
+
it { is_expected.to be_a Warden::GitHub::User }
|
5
5
|
|
6
6
|
describe '#stub_membership' do
|
7
7
|
subject(:user) { described_class.new }
|
@@ -18,4 +18,12 @@ describe Warden::GitHub::Rails::TestHelpers::MockUser do
|
|
18
18
|
expect(user).to be_organization_member('foobar')
|
19
19
|
end
|
20
20
|
end
|
21
|
+
|
22
|
+
it 'can be marshaled' do
|
23
|
+
user = described_class.new
|
24
|
+
user.stub_membership(org: ['apple', 'facebook'], team: [12, 34])
|
25
|
+
marshaled_user = Marshal.load(Marshal.dump(user))
|
26
|
+
|
27
|
+
expect(marshaled_user.memberships).to eq(user.memberships)
|
28
|
+
end
|
21
29
|
end
|
@@ -2,38 +2,30 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Warden::GitHub::Rails::TestHelpers do
|
4
4
|
describe '#github_login' do
|
5
|
+
before { allow(self).to receive(:login_as) }
|
6
|
+
|
5
7
|
context 'when no scope is specified' do
|
6
8
|
it 'uses the default scope from config to login' do
|
7
|
-
Warden::GitHub::Rails.
|
8
|
-
should_receive(:login_as).with do |_, opts|
|
9
|
-
expect(opts.fetch(:scope)).to eq(:foobar)
|
10
|
-
end
|
9
|
+
allow(Warden::GitHub::Rails).to receive(:default_scope) { :foobar }
|
11
10
|
|
12
11
|
github_login
|
12
|
+
|
13
|
+
expect(self).to have_received(:login_as).with(
|
14
|
+
an_instance_of(Warden::GitHub::Rails::TestHelpers::MockUser),
|
15
|
+
match(scope: :foobar)
|
16
|
+
)
|
13
17
|
end
|
14
18
|
end
|
15
19
|
|
16
20
|
context 'when a scope is specified' do
|
17
21
|
it 'uses that scope to login' do
|
18
|
-
should_receive(:login_as).with do |_, opts|
|
19
|
-
expect(opts.fetch(:scope)).to eq(:admin)
|
20
|
-
end
|
21
|
-
|
22
22
|
github_login(:admin)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'logs in a mock user' do
|
27
|
-
expected_user = nil
|
28
23
|
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
expect(self).to have_received(:login_as).with(
|
25
|
+
an_instance_of(Warden::GitHub::Rails::TestHelpers::MockUser),
|
26
|
+
match(scope: :admin)
|
27
|
+
)
|
32
28
|
end
|
33
|
-
|
34
|
-
user = github_login
|
35
|
-
|
36
|
-
expect(user).to eq(expected_user)
|
37
29
|
end
|
38
30
|
end
|
39
31
|
end
|
data/warden-github-rails.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.files = `git ls-files`.split($/) - Dir.glob('example/**/*')
|
15
15
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
16
16
|
|
17
|
-
gem.add_development_dependency 'rspec', '~>
|
17
|
+
gem.add_development_dependency 'rspec', '~> 3.1'
|
18
18
|
gem.add_development_dependency 'rails', '>= 3.2'
|
19
19
|
gem.add_development_dependency 'rack-test', '~> 0.6'
|
20
20
|
gem.add_development_dependency 'addressable', '~> 2.3'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden-github-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philipe Fatio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|