json-crud-api 0.0.5 → 0.0.7
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/lib/json-crud-api/api.rb +5 -65
- data/lib/json-crud-api/crud.rb +49 -51
- data/lib/json-crud-api/json_errors.rb +45 -0
- data/lib/json-crud-api/json_payload.rb +21 -0
- data/lib/json-crud-api/presenter.rb +26 -18
- data/lib/json-crud-api/session.rb +24 -0
- data/lib/json-crud-api.rb +5 -2
- data/spec/spec_helper.rb +9 -0
- data/spec/unit/api_spec.rb +11 -0
- data/spec/unit/auth_client_spec.rb +30 -30
- data/spec/unit/crud_spec.rb +331 -0
- data/spec/unit/json_errors_spec.rb +120 -0
- data/spec/unit/json_payload_spec.rb +65 -0
- data/spec/unit/presenter_spec.rb +88 -67
- data/spec/unit/service_spec.rb +54 -54
- data/spec/unit/session_spec.rb +120 -0
- metadata +22 -65
- data/spec/helper.rb +0 -12
- data/spec/helpers_spec.rb +0 -3
@@ -0,0 +1,120 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe JsonCrudApi::Session do
|
4
|
+
|
5
|
+
before do
|
6
|
+
class TestClass
|
7
|
+
attr_accessor :user, :logged_in, :auth_client, :settings, :test_env
|
8
|
+
|
9
|
+
def env
|
10
|
+
@test_env
|
11
|
+
end
|
12
|
+
|
13
|
+
include JsonCrudApi::Session
|
14
|
+
end
|
15
|
+
|
16
|
+
@test = TestClass.new
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#process_session' do
|
20
|
+
it 'should set user nil on self and services if :auth_client not configured' do
|
21
|
+
|
22
|
+
service = double('service')
|
23
|
+
|
24
|
+
@test.test_env = "abcdefg"
|
25
|
+
|
26
|
+
@test.settings = OpenStruct.new({
|
27
|
+
:services => { :test => service }
|
28
|
+
})
|
29
|
+
@test.test_env = {}
|
30
|
+
|
31
|
+
expect(service).to receive(:set_user).with(nil)
|
32
|
+
|
33
|
+
@test.process_session
|
34
|
+
|
35
|
+
expect(@test.user).to be_nil
|
36
|
+
expect(@test.logged_in).to be false
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should handle services that do not have set_user if :auth_client not configured' do
|
40
|
+
service = double('service')
|
41
|
+
|
42
|
+
@test.test_env = "abcdefg"
|
43
|
+
|
44
|
+
@test.settings = OpenStruct.new({
|
45
|
+
:services => { :test => service }
|
46
|
+
})
|
47
|
+
@test.test_env = {}
|
48
|
+
|
49
|
+
@test.process_session
|
50
|
+
|
51
|
+
expect(@test.user).to be_nil
|
52
|
+
expect(@test.logged_in).to be false
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should call auth_client get with session key and set logged_in false and services set_user nil if nil' do
|
56
|
+
service = double('service')
|
57
|
+
|
58
|
+
@test.test_env = { 'HTTP_X_SESSION_ID' => "abcdefg" }
|
59
|
+
|
60
|
+
@test.settings = OpenStruct.new({
|
61
|
+
:auth_client => OpenStruct.new,
|
62
|
+
:services => { :test => service }
|
63
|
+
})
|
64
|
+
|
65
|
+
expect(service).to receive(:set_user).with(nil)
|
66
|
+
|
67
|
+
expect(@test.settings[:auth_client]).to receive(:get).with('abcdefg').and_return(nil)
|
68
|
+
|
69
|
+
@test.process_session
|
70
|
+
|
71
|
+
expect(@test.user).to be_nil
|
72
|
+
expect(@test.logged_in).to be false
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'should call auth_client get with session key and set user and logged_in true if not nil' do
|
76
|
+
service = double('service')
|
77
|
+
|
78
|
+
@test.test_env = { 'HTTP_X_SESSION_ID' => "abcdefg" }
|
79
|
+
|
80
|
+
@test.settings = OpenStruct.new({
|
81
|
+
:auth_client => OpenStruct.new,
|
82
|
+
:services => { :test => service }
|
83
|
+
})
|
84
|
+
|
85
|
+
expect(@test.settings[:auth_client]).to receive(:get).with('abcdefg').and_return({:name=>"Tom"})
|
86
|
+
|
87
|
+
@test.process_session
|
88
|
+
|
89
|
+
expect(@test.user).to eq({:name=>"Tom"})
|
90
|
+
expect(@test.logged_in).to be true
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should call set_user with returned user on each service on session get not nil' do
|
94
|
+
service = double('service')
|
95
|
+
|
96
|
+
@test.test_env = { 'HTTP_X_SESSION_ID' => "abcdefg" }
|
97
|
+
|
98
|
+
@test.settings = OpenStruct.new({
|
99
|
+
:auth_client => OpenStruct.new,
|
100
|
+
:services => { :test => service }
|
101
|
+
})
|
102
|
+
|
103
|
+
expect(@test.settings[:auth_client]).to receive(:get).with('abcdefg').and_return({:name=>"Horace"})
|
104
|
+
expect(service).to receive(:set_user).with({:name=>'Horace'})
|
105
|
+
|
106
|
+
@test.process_session
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
describe '#logged_in?' do
|
111
|
+
it 'should return the value of @logged_in' do
|
112
|
+
@test.logged_in = true
|
113
|
+
expect(@test.logged_in?).to be true
|
114
|
+
@test.logged_in = false
|
115
|
+
expect(@test.logged_in?).to be false
|
116
|
+
@test.logged_in = nil
|
117
|
+
expect(@test.logged_in?).to be nil
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
metadata
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json-crud-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Cully
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: coveralls
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: dotenv
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
13
|
- !ruby/object:Gem::Dependency
|
42
14
|
name: rake
|
43
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,25 +67,19 @@ dependencies:
|
|
95
67
|
- !ruby/object:Gem::Version
|
96
68
|
version: '0'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
70
|
+
name: codeclimate-test-reporter
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
100
72
|
requirements:
|
101
|
-
- - ~>
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 2.6.4
|
104
73
|
- - '>='
|
105
74
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
107
|
-
type: :
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
108
77
|
prerelease: false
|
109
78
|
version_requirements: !ruby/object:Gem::Requirement
|
110
79
|
requirements:
|
111
|
-
- - ~>
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: 2.6.4
|
114
80
|
- - '>='
|
115
81
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
82
|
+
version: '0'
|
117
83
|
- !ruby/object:Gem::Dependency
|
118
84
|
name: json
|
119
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,26 +100,6 @@ dependencies:
|
|
134
100
|
- - '>='
|
135
101
|
- !ruby/object:Gem::Version
|
136
102
|
version: 1.8.0
|
137
|
-
- !ruby/object:Gem::Dependency
|
138
|
-
name: mysql2
|
139
|
-
requirement: !ruby/object:Gem::Requirement
|
140
|
-
requirements:
|
141
|
-
- - ~>
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: 0.3.13
|
144
|
-
- - '>='
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: 0.3.13
|
147
|
-
type: :runtime
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ~>
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: 0.3.13
|
154
|
-
- - '>='
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
version: 0.3.13
|
157
103
|
- !ruby/object:Gem::Dependency
|
158
104
|
name: sinatra
|
159
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -203,14 +149,21 @@ files:
|
|
203
149
|
- lib/json-crud-api/api.rb
|
204
150
|
- lib/json-crud-api/auth_client.rb
|
205
151
|
- lib/json-crud-api/crud.rb
|
152
|
+
- lib/json-crud-api/json_errors.rb
|
153
|
+
- lib/json-crud-api/json_payload.rb
|
206
154
|
- lib/json-crud-api/presenter.rb
|
207
155
|
- lib/json-crud-api/service.rb
|
156
|
+
- lib/json-crud-api/session.rb
|
208
157
|
- lib/json-crud-api.rb
|
209
|
-
- spec/
|
210
|
-
- spec/
|
158
|
+
- spec/spec_helper.rb
|
159
|
+
- spec/unit/api_spec.rb
|
211
160
|
- spec/unit/auth_client_spec.rb
|
161
|
+
- spec/unit/crud_spec.rb
|
162
|
+
- spec/unit/json_errors_spec.rb
|
163
|
+
- spec/unit/json_payload_spec.rb
|
212
164
|
- spec/unit/presenter_spec.rb
|
213
165
|
- spec/unit/service_spec.rb
|
166
|
+
- spec/unit/session_spec.rb
|
214
167
|
homepage: http://rubygems.org/gems/json-crud-api
|
215
168
|
licenses:
|
216
169
|
- MIT
|
@@ -231,13 +184,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
184
|
version: '0'
|
232
185
|
requirements: []
|
233
186
|
rubyforge_project:
|
234
|
-
rubygems_version: 2.
|
187
|
+
rubygems_version: 2.0.0.rc.2
|
235
188
|
signing_key:
|
236
189
|
specification_version: 4
|
237
190
|
summary: Sinatra JSON API Framework Classes
|
238
191
|
test_files:
|
239
|
-
- spec/
|
240
|
-
- spec/
|
192
|
+
- spec/spec_helper.rb
|
193
|
+
- spec/unit/api_spec.rb
|
241
194
|
- spec/unit/auth_client_spec.rb
|
195
|
+
- spec/unit/crud_spec.rb
|
196
|
+
- spec/unit/json_errors_spec.rb
|
197
|
+
- spec/unit/json_payload_spec.rb
|
242
198
|
- spec/unit/presenter_spec.rb
|
243
199
|
- spec/unit/service_spec.rb
|
200
|
+
- spec/unit/session_spec.rb
|
data/spec/helper.rb
DELETED
data/spec/helpers_spec.rb
DELETED