sinatra_resource 0.4.21 → 0.4.22
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.
- data/Gemfile +18 -0
- data/Gemfile.lock +51 -0
- data/README.mdown +1 -1
- data/VERSION +1 -1
- data/examples/datacatalog/.bundle/config +2 -0
- data/examples/datacatalog/Gemfile +14 -0
- data/examples/datacatalog/Gemfile.lock +33 -0
- data/examples/datacatalog/Rakefile +2 -2
- data/examples/datacatalog/app.rb +0 -2
- data/examples/datacatalog/config/config.rb +5 -7
- data/examples/datacatalog/lib/base.rb +2 -2
- data/examples/datacatalog/lib/resource.rb +5 -5
- data/examples/datacatalog/lib/roles.rb +2 -2
- data/examples/datacatalog/model_helpers/search.rb +6 -6
- data/examples/datacatalog/models/categorization.rb +1 -1
- data/examples/datacatalog/models/note.rb +1 -1
- data/examples/datacatalog/models/source.rb +3 -3
- data/examples/datacatalog/models/usage.rb +2 -2
- data/examples/datacatalog/models/user.rb +7 -7
- data/examples/datacatalog/resources/categories.rb +7 -7
- data/examples/datacatalog/resources/categories_sources.rb +4 -4
- data/examples/datacatalog/resources/notes.rb +1 -1
- data/examples/datacatalog/resources/sources.rb +3 -3
- data/examples/datacatalog/resources/sources_usages.rb +3 -3
- data/examples/datacatalog/resources/users.rb +3 -3
- data/examples/datacatalog/tasks/db.rake +2 -2
- data/examples/datacatalog/tasks/test.rake +1 -1
- data/examples/datacatalog/test/helpers/assertions/assert_include.rb +1 -1
- data/examples/datacatalog/test/helpers/assertions/assert_not_include.rb +1 -1
- data/examples/datacatalog/test/helpers/lib/model_factories.rb +7 -7
- data/examples/datacatalog/test/helpers/lib/model_helpers.rb +1 -1
- data/examples/datacatalog/test/helpers/lib/request_helpers.rb +7 -7
- data/examples/datacatalog/test/helpers/resource_test_helper.rb +1 -1
- data/examples/datacatalog/test/helpers/shared/api_keys.rb +11 -11
- data/examples/datacatalog/test/helpers/shared/common_body_responses.rb +1 -1
- data/examples/datacatalog/test/helpers/shared/model_counts.rb +2 -2
- data/examples/datacatalog/test/helpers/shared/status_codes.rb +4 -4
- data/examples/datacatalog/test/helpers/test_cases/resource_test_case.rb +4 -4
- data/examples/datacatalog/test/helpers/test_helper.rb +4 -10
- data/examples/datacatalog/test/models/categorization_test.rb +6 -6
- data/examples/datacatalog/test/models/category_test.rb +8 -8
- data/examples/datacatalog/test/models/note_test.rb +6 -6
- data/examples/datacatalog/test/models/search_test.rb +4 -4
- data/examples/datacatalog/test/models/source_test.rb +5 -5
- data/examples/datacatalog/test/models/user_test.rb +11 -11
- data/examples/datacatalog/test/resources/categories/categories_delete_test.rb +12 -12
- data/examples/datacatalog/test/resources/categories/categories_get_many_test.rb +9 -9
- data/examples/datacatalog/test/resources/categories/categories_get_one_test.rb +7 -7
- data/examples/datacatalog/test/resources/categories/categories_post_test.rb +16 -16
- data/examples/datacatalog/test/resources/categories/categories_put_test.rb +17 -17
- data/examples/datacatalog/test/resources/categories_sources/categories_sources_delete_test.rb +25 -25
- data/examples/datacatalog/test/resources/categories_sources/categories_sources_get_many_test.rb +5 -5
- data/examples/datacatalog/test/resources/categories_sources/categories_sources_get_one_test.rb +15 -15
- data/examples/datacatalog/test/resources/categories_sources/categories_sources_post_test.rb +31 -31
- data/examples/datacatalog/test/resources/categories_sources/categories_sources_put_test.rb +41 -41
- data/examples/datacatalog/test/resources/notes/notes_get_many_test.rb +15 -15
- data/examples/datacatalog/test/resources/notes/notes_get_one_test.rb +7 -7
- data/examples/datacatalog/test/resources/notes/notes_post_test.rb +12 -12
- data/examples/datacatalog/test/resources/sources/sources_delete_test.rb +12 -12
- data/examples/datacatalog/test/resources/sources/sources_get_many_search_test.rb +20 -20
- data/examples/datacatalog/test/resources/sources/sources_get_many_test.rb +8 -8
- data/examples/datacatalog/test/resources/sources/sources_get_one_test.rb +17 -9
- data/examples/datacatalog/test/resources/sources/sources_post_test.rb +13 -13
- data/examples/datacatalog/test/resources/sources/sources_put_test.rb +30 -30
- data/examples/datacatalog/test/resources/sources_usages/sources_usages_delete_test.rb +24 -24
- data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_many_filter_test.rb +9 -9
- data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_many_test.rb +9 -9
- data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_one_test.rb +15 -15
- data/examples/datacatalog/test/resources/sources_usages/sources_usages_post_test.rb +16 -16
- data/examples/datacatalog/test/resources/sources_usages/sources_usages_put_test.rb +33 -33
- data/examples/datacatalog/test/resources/users/users_delete_test.rb +21 -21
- data/examples/datacatalog/test/resources/users/users_get_many_test.rb +16 -16
- data/examples/datacatalog/test/resources/users/users_get_one_test.rb +8 -8
- data/examples/datacatalog/test/resources/users/users_post_test.rb +13 -13
- data/examples/datacatalog/test/resources/users/users_put_test.rb +18 -18
- data/lib/builder/action_definitions.rb +8 -8
- data/lib/builder/helpers.rb +10 -12
- data/lib/builder/mongo_helpers.rb +13 -14
- data/lib/builder.rb +10 -10
- data/lib/exceptions.rb +1 -1
- data/lib/resource.rb +20 -20
- data/lib/roles.rb +2 -2
- data/lib/utility.rb +2 -2
- data/notes/permissions.mdown +6 -6
- data/sinatra_resource.gemspec +9 -4
- data/spec/spec_helper.rb +1 -1
- data/spec/utility_spec.rb +2 -2
- metadata +30 -4
@@ -5,7 +5,7 @@ class SourcesUsagesPutResourceTest < ResourceTestCase
|
|
5
5
|
include DataCatalog
|
6
6
|
|
7
7
|
def app; Sources end
|
8
|
-
|
8
|
+
|
9
9
|
before do
|
10
10
|
@source = create_source
|
11
11
|
@source.usages << new_usage
|
@@ -35,117 +35,117 @@ class SourcesUsagesPutResourceTest < ResourceTestCase
|
|
35
35
|
before do
|
36
36
|
put "/#{@source.id}/usages/#{@usage_id}"
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
use "return 401 because the API key is missing"
|
40
40
|
use "usage unchanged"
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
context "incorrect API key" do
|
44
44
|
before do
|
45
45
|
put "/#{@source.id}/usages/#{@usage_id}", :api_key => BAD_API_KEY
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
use "return 401 because the API key is invalid"
|
49
49
|
use "usage unchanged"
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
%w(basic).each do |role|
|
54
54
|
context "#{role} : put /:fake_id/usages/:fake_id" do
|
55
55
|
before do
|
56
56
|
put "/#{FAKE_ID}/usages/#{FAKE_ID}", :api_key => api_key_for(role)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
use "return 404 Not Found with empty response body"
|
60
60
|
use "usage unchanged"
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
context "#{role} : put /:fake_id/usages/:id" do
|
64
64
|
before do
|
65
65
|
put "/#{FAKE_ID}/usages/#{@usage_id}", :api_key => api_key_for(role)
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
use "return 404 Not Found with empty response body"
|
69
69
|
use "usage unchanged"
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
context "#{role} : put /:id/usages/:fake_id" do
|
73
73
|
before do
|
74
74
|
put "/#{@source.id}/usages/#{FAKE_ID}", :api_key => api_key_for(role)
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
use "return 401 because the API key is unauthorized"
|
78
78
|
use "usage unchanged"
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
context "#{role} : put /:id/usages/:not_related_id" do
|
82
82
|
before do
|
83
83
|
put "/#{@source.id}/usages/#{@other_usage_id}",
|
84
84
|
:api_key => api_key_for(role)
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
use "return 401 because the API key is unauthorized"
|
88
88
|
use "usage unchanged"
|
89
89
|
end
|
90
|
-
|
90
|
+
|
91
91
|
context "#{role} : put /:id/usages/:id" do
|
92
92
|
before do
|
93
93
|
put "/#{@source.id}/usages/#{@usage_id}", :api_key => api_key_for(role)
|
94
94
|
end
|
95
|
-
|
95
|
+
|
96
96
|
use "return 401 because the API key is unauthorized"
|
97
97
|
use "usage unchanged"
|
98
98
|
end
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
%w(curator admin).each do |role|
|
102
102
|
context "#{role} : put /:fake_id/usages/:fake_id" do
|
103
103
|
before do
|
104
104
|
put "/#{FAKE_ID}/usages/#{FAKE_ID}", :api_key => api_key_for(role)
|
105
105
|
end
|
106
|
-
|
106
|
+
|
107
107
|
use "return 404 Not Found with empty response body"
|
108
108
|
use "usage unchanged"
|
109
109
|
end
|
110
|
-
|
110
|
+
|
111
111
|
context "#{role} : put /:fake_id/usages/:id" do
|
112
112
|
before do
|
113
113
|
put "/#{FAKE_ID}/usages/#{@usage_id}", :api_key => api_key_for(role)
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
use "return 404 Not Found with empty response body"
|
117
117
|
use "usage unchanged"
|
118
118
|
end
|
119
|
-
|
119
|
+
|
120
120
|
context "#{role} : put /:id/usages/:fake_id" do
|
121
121
|
before do
|
122
122
|
put "/#{@source.id}/usages/#{FAKE_ID}", :api_key => api_key_for(role)
|
123
123
|
end
|
124
|
-
|
124
|
+
|
125
125
|
use "return 404 Not Found with empty response body"
|
126
126
|
use "usage unchanged"
|
127
127
|
end
|
128
|
-
|
128
|
+
|
129
129
|
context "#{role} : put /:id/usages/:not_related_id" do
|
130
130
|
before do
|
131
131
|
put "/#{@source.id}/usages/#{@other_usage_id}",
|
132
132
|
:api_key => api_key_for(role)
|
133
133
|
end
|
134
|
-
|
134
|
+
|
135
135
|
use "return 404 Not Found with empty response body"
|
136
136
|
use "usage unchanged"
|
137
137
|
end
|
138
|
-
|
138
|
+
|
139
139
|
context "#{role} : put /:id/usages/:id with no params" do
|
140
140
|
before do
|
141
141
|
put "/#{@source.id}/usages/#{@usage_id}",
|
142
142
|
:api_key => api_key_for(role)
|
143
143
|
end
|
144
|
-
|
144
|
+
|
145
145
|
use "return 400 because no params were given"
|
146
146
|
use "usage unchanged"
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
# TODO: As of 2009-10-29, MongoMapper does not support validations on
|
150
150
|
# EmbeddedDocuments.
|
151
151
|
#
|
@@ -155,7 +155,7 @@ class SourcesUsagesPutResourceTest < ResourceTestCase
|
|
155
155
|
# put "/#{@source.id}/usages/#{@usage_id}",
|
156
156
|
# valid_params_for(role).delete_if { |k, v| k == missing }
|
157
157
|
# end
|
158
|
-
#
|
158
|
+
#
|
159
159
|
# use "return 200 Ok"
|
160
160
|
# doc_properties %w(title url description id)
|
161
161
|
#
|
@@ -168,7 +168,7 @@ class SourcesUsagesPutResourceTest < ResourceTestCase
|
|
168
168
|
# end
|
169
169
|
# end
|
170
170
|
# end
|
171
|
-
|
171
|
+
|
172
172
|
# TODO: As of 2009-10-29, MongoMapper does not support validations on
|
173
173
|
# EmbeddedDocuments.
|
174
174
|
#
|
@@ -178,20 +178,20 @@ class SourcesUsagesPutResourceTest < ResourceTestCase
|
|
178
178
|
# put "/#{@source.id}/usages/#{@usage_id}",
|
179
179
|
# valid_params_for(role).merge(erase => "")
|
180
180
|
# end
|
181
|
-
#
|
181
|
+
#
|
182
182
|
# use "return 400 Bad Request"
|
183
183
|
# use "usage unchanged"
|
184
184
|
# missing_param erase
|
185
185
|
# end
|
186
186
|
# end
|
187
|
-
|
187
|
+
|
188
188
|
[:junk].each do |invalid|
|
189
189
|
context "#{role} : put /:id/usages/:id with #{invalid}" do
|
190
190
|
before do
|
191
191
|
put "/#{@source.id}/usages/#{@usage_id}",
|
192
192
|
valid_params_for(role).merge(invalid => 9)
|
193
193
|
end
|
194
|
-
|
194
|
+
|
195
195
|
use "return 400 Bad Request"
|
196
196
|
use "usage unchanged"
|
197
197
|
invalid_param invalid
|
@@ -202,10 +202,10 @@ class SourcesUsagesPutResourceTest < ResourceTestCase
|
|
202
202
|
before do
|
203
203
|
put "/#{@source.id}/usages/#{@usage_id}", valid_params_for(role)
|
204
204
|
end
|
205
|
-
|
205
|
+
|
206
206
|
use "return 200 Ok"
|
207
207
|
doc_properties %w(title url description id)
|
208
|
-
|
208
|
+
|
209
209
|
test "should change correct fields in database" do
|
210
210
|
source = Source.find_by_id(@source.id)
|
211
211
|
# TODO: use reload instead
|
@@ -218,5 +218,5 @@ class SourcesUsagesPutResourceTest < ResourceTestCase
|
|
218
218
|
end
|
219
219
|
end
|
220
220
|
end
|
221
|
-
|
221
|
+
|
222
222
|
end
|
@@ -14,13 +14,13 @@ class UsersDeleteResourceTest < ResourceTestCase
|
|
14
14
|
after do
|
15
15
|
@user.destroy
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
context "delete /:id" do
|
19
19
|
context "anonymous" do
|
20
20
|
before do
|
21
21
|
delete "/#{@user.id}"
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
use "return 401 because the API key is missing"
|
25
25
|
use "no change in user count"
|
26
26
|
end
|
@@ -29,38 +29,38 @@ class UsersDeleteResourceTest < ResourceTestCase
|
|
29
29
|
before do
|
30
30
|
delete "/#{@user.id}", :api_key => BAD_API_KEY
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
use "return 401 because the API key is invalid"
|
34
34
|
use "no change in user count"
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
%w(basic curator).each do |role|
|
39
39
|
context "#{role} : delete /:fake_id" do
|
40
40
|
before do
|
41
41
|
delete "/#{FAKE_ID}", :api_key => api_key_for(role)
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
use "return 401 because the API key is unauthorized"
|
45
45
|
use "no change in user count"
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
context "#{role} : delete /:id" do
|
49
49
|
before do
|
50
50
|
delete "/#{@user.id}",
|
51
51
|
:api_key => api_key_for(role),
|
52
52
|
:key => "value"
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
use "return 401 because the API key is unauthorized"
|
56
56
|
use "no change in user count"
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
context "#{role} : delete /:id" do
|
60
60
|
before do
|
61
61
|
delete "/#{@user.id}", :api_key => api_key_for(role)
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
use "return 401 because the API key is unauthorized"
|
65
65
|
use "no change in user count"
|
66
66
|
end
|
@@ -73,50 +73,50 @@ class UsersDeleteResourceTest < ResourceTestCase
|
|
73
73
|
:api_key => @user._api_key,
|
74
74
|
:key => "value"
|
75
75
|
end
|
76
|
-
|
77
|
-
use "return 400 because params were
|
76
|
+
|
77
|
+
use "return 400 because invalid params were present"
|
78
78
|
use "no change in user count"
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
context "delete /:id" do
|
82
82
|
before do
|
83
83
|
delete "/#{@user.id}", :api_key => @user._api_key
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
use "return 204 No Content"
|
87
87
|
use "one less user"
|
88
88
|
end
|
89
89
|
end
|
90
|
-
|
90
|
+
|
91
91
|
%(admin).each do |role|
|
92
92
|
context "#{role} : delete /:fake_id" do
|
93
93
|
before do
|
94
94
|
delete "/#{FAKE_ID}", :api_key => api_key_for(role)
|
95
95
|
end
|
96
|
-
|
96
|
+
|
97
97
|
use "return 404 Not Found with empty response body"
|
98
98
|
use "no change in user count"
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
context "#{role} : delete /:id" do
|
102
102
|
before do
|
103
103
|
delete "/#{@user.id}",
|
104
104
|
:api_key => api_key_for(role),
|
105
105
|
:key => "value"
|
106
106
|
end
|
107
|
-
|
108
|
-
use "return 400 because params were
|
107
|
+
|
108
|
+
use "return 400 because invalid params were present"
|
109
109
|
use "no change in user count"
|
110
110
|
end
|
111
|
-
|
111
|
+
|
112
112
|
context "#{role} : delete /:id" do
|
113
113
|
before do
|
114
114
|
delete "/#{@user.id}", :api_key => api_key_for(role)
|
115
115
|
end
|
116
|
-
|
116
|
+
|
117
117
|
use "return 204 No Content"
|
118
118
|
use "one less user"
|
119
119
|
end
|
120
120
|
end
|
121
|
-
|
121
|
+
|
122
122
|
end
|
@@ -17,11 +17,11 @@ class UsersGetManyResourceTest < ResourceTestCase
|
|
17
17
|
)
|
18
18
|
end
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
after do
|
22
22
|
@users.each { |x| x.destroy } if @users
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
NAMES = [
|
26
26
|
"admin User",
|
27
27
|
"basic User",
|
@@ -30,7 +30,7 @@ class UsersGetManyResourceTest < ResourceTestCase
|
|
30
30
|
"User 1",
|
31
31
|
"User 2"
|
32
32
|
].sort
|
33
|
-
|
33
|
+
|
34
34
|
EMAILS = %w(
|
35
35
|
admin-user@inter.net
|
36
36
|
basic-user@inter.net
|
@@ -45,32 +45,32 @@ class UsersGetManyResourceTest < ResourceTestCase
|
|
45
45
|
before do
|
46
46
|
get "/"
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
use "return 401 because the API key is missing"
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
context "incorrect API key" do
|
53
53
|
before do
|
54
54
|
get "/", :api_key => BAD_API_KEY
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
use "return 401 because the API key is invalid"
|
58
58
|
end
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
61
|
%w(basic curator).each do |role|
|
62
62
|
context "#{role} : get /" do
|
63
63
|
before do
|
64
64
|
get "/", :api_key => api_key_for(role)
|
65
65
|
@members = parsed_response_body['members']
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
use "return 200 Ok"
|
69
|
-
|
69
|
+
|
70
70
|
test "body should have 6 users" do
|
71
71
|
assert_equal 6, @members.length
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
test "body should have correct names" do
|
75
75
|
actual = @members.map { |e| e["name"] }
|
76
76
|
assert_equal NAMES, actual.sort
|
@@ -88,25 +88,25 @@ class UsersGetManyResourceTest < ResourceTestCase
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
%w(admin).each do |role|
|
93
93
|
context "#{role} : get /" do
|
94
94
|
before do
|
95
95
|
get "/", :api_key => api_key_for(role)
|
96
96
|
@members = parsed_response_body['members']
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
use "return 200 Ok"
|
100
|
-
|
100
|
+
|
101
101
|
test "body should have 6 users" do
|
102
102
|
assert_equal 6, @members.length
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
105
|
test "body should have correct names" do
|
106
106
|
actual = @members.map { |e| e["name"] }
|
107
107
|
assert_equal NAMES, actual.sort
|
108
108
|
end
|
109
|
-
|
109
|
+
|
110
110
|
test "body should have correct emails" do
|
111
111
|
actual = @members.map { |e| e["email"] }
|
112
112
|
assert_equal EMAILS, actual.sort
|
@@ -120,5 +120,5 @@ class UsersGetManyResourceTest < ResourceTestCase
|
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|
123
|
-
|
123
|
+
|
124
124
|
end
|
@@ -5,7 +5,7 @@ class UsersGetOneResourceTest < ResourceTestCase
|
|
5
5
|
include DataCatalog
|
6
6
|
|
7
7
|
def app; Users end
|
8
|
-
|
8
|
+
|
9
9
|
before do
|
10
10
|
@user = create_user
|
11
11
|
end
|
@@ -19,7 +19,7 @@ class UsersGetOneResourceTest < ResourceTestCase
|
|
19
19
|
before do
|
20
20
|
get "/#{@user.id}"
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
use "return 401 because the API key is missing"
|
24
24
|
end
|
25
25
|
|
@@ -27,7 +27,7 @@ class UsersGetOneResourceTest < ResourceTestCase
|
|
27
27
|
before do
|
28
28
|
get "/#{@user.id}", :api_key => BAD_API_KEY
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
use "return 401 because the API key is invalid"
|
32
32
|
end
|
33
33
|
end
|
@@ -37,7 +37,7 @@ class UsersGetOneResourceTest < ResourceTestCase
|
|
37
37
|
before do
|
38
38
|
get "/#{FAKE_ID}", :api_key => api_key_for(role)
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
use "return 404 Not Found with empty response body"
|
42
42
|
end
|
43
43
|
end
|
@@ -47,7 +47,7 @@ class UsersGetOneResourceTest < ResourceTestCase
|
|
47
47
|
before do
|
48
48
|
get "/#{@user.id}", :api_key => api_key_for(role)
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
use "return 200 Ok"
|
52
52
|
doc_properties %w(name id created_at updated_at)
|
53
53
|
end
|
@@ -57,18 +57,18 @@ class UsersGetOneResourceTest < ResourceTestCase
|
|
57
57
|
before do
|
58
58
|
get "/#{@user.id}", :api_key => @user._api_key
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
61
|
use "return 200 Ok"
|
62
62
|
doc_properties %w(name email role _api_key token
|
63
63
|
id created_at updated_at)
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
%w(admin).each do |role|
|
67
67
|
context "#{role} : get /:id" do
|
68
68
|
before do
|
69
69
|
get "/#{@user.id}", :api_key => api_key_for(role)
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
use "return 200 Ok"
|
73
73
|
doc_properties %w(name email role _api_key token
|
74
74
|
id created_at updated_at)
|
@@ -5,7 +5,7 @@ class UsersPostResourceTest < ResourceTestCase
|
|
5
5
|
include DataCatalog
|
6
6
|
|
7
7
|
def app; Users end
|
8
|
-
|
8
|
+
|
9
9
|
before do
|
10
10
|
@user_count = User.all.length
|
11
11
|
@valid_params = {
|
@@ -23,7 +23,7 @@ class UsersPostResourceTest < ResourceTestCase
|
|
23
23
|
before do
|
24
24
|
post "/", @valid_params
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
use "return 401 because the API key is missing"
|
28
28
|
use "no change in user count"
|
29
29
|
end
|
@@ -32,7 +32,7 @@ class UsersPostResourceTest < ResourceTestCase
|
|
32
32
|
before do
|
33
33
|
post "/", @valid_params.merge(:api_key => BAD_API_KEY)
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
use "return 401 because the API key is invalid"
|
37
37
|
use "no change in user count"
|
38
38
|
end
|
@@ -44,28 +44,28 @@ class UsersPostResourceTest < ResourceTestCase
|
|
44
44
|
before do
|
45
45
|
post "/", valid_params_for(role).delete_if { |k, v| k == missing }
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
use "return 401 because the API key is unauthorized"
|
49
49
|
use "no change in user count"
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
[:role, :_api_key, :id, :created_at, :updated_at, :junk].each do |invalid|
|
54
54
|
context "#{role} : post / but with #{invalid}" do
|
55
55
|
before do
|
56
56
|
post "/", valid_params_for(role).merge(invalid => 9)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
use "return 401 because the API key is unauthorized"
|
60
60
|
use "no change in user count"
|
61
61
|
end
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
context "#{role} : post / with valid params" do
|
65
65
|
before do
|
66
66
|
post "/", valid_params_for(role)
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
use "return 401 because the API key is unauthorized"
|
70
70
|
use "no change in user count"
|
71
71
|
end
|
@@ -78,26 +78,26 @@ class UsersPostResourceTest < ResourceTestCase
|
|
78
78
|
post "/", valid_params_for(role).
|
79
79
|
merge(@extra_admin_params).delete_if { |k, v| k == missing }
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
use "return 400 Bad Request"
|
83
83
|
use "no change in user count"
|
84
84
|
missing_param missing
|
85
85
|
end
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
[:id, :created_at, :updated_at, :junk].each do |invalid|
|
89
89
|
context "#{role} : post / but with #{invalid}" do
|
90
90
|
before do
|
91
91
|
post "/", valid_params_for(role).
|
92
92
|
merge(@extra_admin_params).merge(invalid => 9)
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
95
|
use "return 400 Bad Request"
|
96
96
|
use "no change in user count"
|
97
97
|
invalid_param invalid
|
98
98
|
end
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
context "#{role} : post / with valid params" do
|
102
102
|
before do
|
103
103
|
post "/", valid_params_for(role).merge(@extra_admin_params)
|
@@ -106,7 +106,7 @@ class UsersPostResourceTest < ResourceTestCase
|
|
106
106
|
after do
|
107
107
|
User.find_by_id(parsed_response_body["id"]).destroy
|
108
108
|
end
|
109
|
-
|
109
|
+
|
110
110
|
use "return 201 Created"
|
111
111
|
location_header "users"
|
112
112
|
use "one new user"
|