sinatra_resource 0.2.5 → 0.2.6

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.5
1
+ 0.2.6
@@ -37,7 +37,7 @@ module DataCatalog
37
37
  category.log += " after_create"
38
38
  end
39
39
 
40
- callback :before_update do |action|
40
+ callback :before_update do |action, category|
41
41
  action.params["log"] = "before_update"
42
42
  end
43
43
 
@@ -45,7 +45,7 @@ module DataCatalog
45
45
  category.log += " after_update"
46
46
  end
47
47
 
48
- callback :before_destroy do |action|
48
+ callback :before_destroy do |action, category|
49
49
  action.headers 'X-Test-Callbacks' => 'before_destroy'
50
50
  end
51
51
 
@@ -39,6 +39,15 @@ class CategoriesPutResourceTest < ResourceTestCase
39
39
  end
40
40
 
41
41
  %w(basic).each do |role|
42
+ context "#{role} : put /:id with no params" do
43
+ before do
44
+ put "/#{@category.id}", :api_key => api_key_for(role)
45
+ end
46
+
47
+ use "return 401 because the API key is unauthorized"
48
+ use "category unchanged"
49
+ end
50
+
42
51
  [:created_at, :updated_at, :sources, :junk].each do |invalid|
43
52
  context "#{role} : put /:id but with #{invalid}" do
44
53
  before do
@@ -61,11 +70,11 @@ class CategoriesPutResourceTest < ResourceTestCase
61
70
  end
62
71
  end
63
72
 
64
- context "#{role} : put /:id with no params" do
73
+ context "#{role} : put /:fake_id with valid params" do
65
74
  before do
66
- put "/#{@category.id}", :api_key => api_key_for(role)
75
+ put "/#{FAKE_ID}", valid_params_for(role)
67
76
  end
68
-
77
+
69
78
  use "return 401 because the API key is unauthorized"
70
79
  use "category unchanged"
71
80
  end
@@ -81,6 +90,25 @@ class CategoriesPutResourceTest < ResourceTestCase
81
90
  end
82
91
 
83
92
  %w(curator admin).each do |role|
93
+ context "#{role} : put /:fake_id with no params" do
94
+ before do
95
+ put "/#{FAKE_ID}", :api_key => api_key_for(role)
96
+ end
97
+
98
+ use "return 400 because no params were given"
99
+ # (The 400 'takes precedence' over the 404.)
100
+ use "category unchanged"
101
+ end
102
+
103
+ context "#{role} : put /:id with no params" do
104
+ before do
105
+ put "/#{@category.id}", :api_key => api_key_for(role)
106
+ end
107
+
108
+ use "return 400 because no params were given"
109
+ use "category unchanged"
110
+ end
111
+
84
112
  [:created_at, :updated_at, :sources, :junk].each do |invalid|
85
113
  context "#{role} : put /:id but with #{invalid}" do
86
114
  before do
@@ -93,6 +121,18 @@ class CategoriesPutResourceTest < ResourceTestCase
93
121
  end
94
122
  end
95
123
 
124
+ [:name].each do |erase|
125
+ context "#{role} : put /:fake_id but blanking out #{erase}" do
126
+ before do
127
+ put "/#{FAKE_ID}", valid_params_for(role).merge(erase => "")
128
+ end
129
+
130
+ use "return 404 Not Found with empty response body"
131
+ # (The 404 'takes precedence' over the 400.)
132
+ use "category unchanged"
133
+ end
134
+ end
135
+
96
136
  [:name].each do |erase|
97
137
  context "#{role} : put /:id but blanking out #{erase}" do
98
138
  before do
@@ -105,12 +145,12 @@ class CategoriesPutResourceTest < ResourceTestCase
105
145
  end
106
146
  end
107
147
 
108
- context "#{role} : put /:id with no params" do
148
+ context "#{role} : put /:fake_id with valid params" do
109
149
  before do
110
- put "/#{@category.id}", :api_key => api_key_for(role)
150
+ put "/#{FAKE_ID}", valid_params_for(role)
111
151
  end
112
-
113
- use "return 400 because no params were given"
152
+
153
+ use "return 404 Not Found with empty response body"
114
154
  use "category unchanged"
115
155
  end
116
156
 
@@ -73,6 +73,15 @@ class SourcesPutResourceTest < ResourceTestCase
73
73
  use "source unchanged"
74
74
  end
75
75
  end
76
+
77
+ context "#{role} : put /:fake_id with valid params" do
78
+ before do
79
+ put "/#{FAKE_ID}", valid_params_for(role)
80
+ end
81
+
82
+ use "return 401 because the API key is unauthorized"
83
+ use "source unchanged"
84
+ end
76
85
 
77
86
  context "#{role} : put /:id with valid params" do
78
87
  before do
@@ -97,6 +106,18 @@ class SourcesPutResourceTest < ResourceTestCase
97
106
  end
98
107
  end
99
108
 
109
+ [:title, :url].each do |erase|
110
+ context "#{role} : put /:fake_id but blanking out #{erase}" do
111
+ before do
112
+ put "/#{FAKE_ID}", valid_params_for(role).merge(erase => "")
113
+ end
114
+
115
+ use "return 404 Not Found with empty response body"
116
+ # (The 404 'takes precedence' over the 400.)
117
+ use "source unchanged"
118
+ end
119
+ end
120
+
100
121
  [:title, :url].each do |erase|
101
122
  context "#{role} : put /:id but blanking out #{erase}" do
102
123
  before do
@@ -128,6 +149,15 @@ class SourcesPutResourceTest < ResourceTestCase
128
149
  end
129
150
  end
130
151
 
152
+ context "#{role} : put /:fake_id with valid params" do
153
+ before do
154
+ put "/#{FAKE_ID}", valid_params_for(role)
155
+ end
156
+
157
+ use "return 404 Not Found with empty response body"
158
+ use "source unchanged"
159
+ end
160
+
131
161
  context "#{role} : put /:id with valid params" do
132
162
  before do
133
163
  put "/#{@source.id}", valid_params_for(role)
@@ -146,6 +176,25 @@ class SourcesPutResourceTest < ResourceTestCase
146
176
  end
147
177
 
148
178
  %w(admin).each do |role|
179
+ context "#{role} : put /:fake_id with no params" do
180
+ before do
181
+ put "/#{FAKE_ID}", :api_key => api_key_for(role)
182
+ end
183
+
184
+ use "return 400 because no params were given"
185
+ # (The 400 'takes precedence' over the 404.)
186
+ use "source unchanged"
187
+ end
188
+
189
+ context "#{role} : put /:id with no params" do
190
+ before do
191
+ put "/#{@source.id}", :api_key => api_key_for(role)
192
+ end
193
+
194
+ use "return 400 because no params were given"
195
+ use "source unchanged"
196
+ end
197
+
149
198
  [:created_at, :updated_at, :categories, :junk].each do |invalid|
150
199
  context "#{role} : put /:id but with #{invalid}" do
151
200
  before do
@@ -159,6 +208,19 @@ class SourcesPutResourceTest < ResourceTestCase
159
208
  end
160
209
  end
161
210
 
211
+ [:title, :url].each do |erase|
212
+ context "#{role} : put /:fake_id but blanking out #{erase}" do
213
+ before do
214
+ put "/#{FAKE_ID}", valid_params_for(role).
215
+ merge(@extra_admin_params).merge(erase => "")
216
+ end
217
+
218
+ use "return 404 Not Found with empty response body"
219
+ # (The 404 'takes precedence' over the 400.)
220
+ use "source unchanged"
221
+ end
222
+ end
223
+
162
224
  [:title, :url].each do |erase|
163
225
  context "#{role} : put /:id but blanking out #{erase}" do
164
226
  before do
@@ -172,15 +234,6 @@ class SourcesPutResourceTest < ResourceTestCase
172
234
  end
173
235
  end
174
236
 
175
- context "#{role} : put /:id with no params" do
176
- before do
177
- put "/#{@source.id}", :api_key => api_key_for(role)
178
- end
179
-
180
- use "return 400 because no params were given"
181
- use "source unchanged"
182
- end
183
-
184
237
  [:title, :url].each do |missing|
185
238
  context "#{role} : put /:id without #{missing}" do
186
239
  before do
@@ -201,6 +254,15 @@ class SourcesPutResourceTest < ResourceTestCase
201
254
  end
202
255
  end
203
256
 
257
+ context "#{role} : put /:fake_id with valid params" do
258
+ before do
259
+ put "/#{FAKE_ID}", valid_params_for(role).merge(@extra_admin_params)
260
+ end
261
+
262
+ use "return 404 Not Found with empty response body"
263
+ use "source unchanged"
264
+ end
265
+
204
266
  context "#{role} : put /:id with valid params" do
205
267
  before do
206
268
  put "/#{@source.id}", valid_params_for(role).merge(@extra_admin_params)
@@ -77,6 +77,15 @@ class UsersPutResourceTest < ResourceTestCase
77
77
  end
78
78
  end
79
79
 
80
+ context "#{role} : put /:fake_id with valid params" do
81
+ before do
82
+ put "/#{FAKE_ID}", valid_params_for(role)
83
+ end
84
+
85
+ use "return 401 because the API key is unauthorized"
86
+ use "user unchanged"
87
+ end
88
+
80
89
  context "#{role} : put /:id with valid params" do
81
90
  before do
82
91
  put "/#{@user.id}", valid_params_for(role)
@@ -88,6 +97,25 @@ class UsersPutResourceTest < ResourceTestCase
88
97
  end
89
98
 
90
99
  %w(admin).each do |role|
100
+ context "#{role} : put /:fake_id with no params" do
101
+ before do
102
+ put "/#{FAKE_ID}", :api_key => api_key_for(role)
103
+ end
104
+
105
+ use "return 400 because no params were given"
106
+ # (The 400 'takes precedence' over the 404.)
107
+ use "user unchanged"
108
+ end
109
+
110
+ context "#{role} : put /:id with no params" do
111
+ before do
112
+ put "/#{@user.id}", :api_key => api_key_for(role)
113
+ end
114
+
115
+ use "return 400 because no params were given"
116
+ use "user unchanged"
117
+ end
118
+
91
119
  [:created_at, :updated_at, :junk].each do |invalid|
92
120
  context "#{role} : put /:id but with #{invalid}" do
93
121
  before do
@@ -114,13 +142,16 @@ class UsersPutResourceTest < ResourceTestCase
114
142
  end
115
143
  end
116
144
 
117
- context "#{role} : put /:id with no params" do
118
- before do
119
- put "/#{@user.id}", :api_key => api_key_for(role)
145
+ [:name, :role].each do |missing|
146
+ context "#{role} : put /:fake_id without #{missing}" do
147
+ before do
148
+ put "/#{FAKE_ID}", valid_params_for(role).
149
+ merge(@extra_admin_params).delete_if { |k, v| k == missing }
150
+ end
151
+
152
+ use "return 404 Not Found with empty response body"
153
+ use "user unchanged"
120
154
  end
121
-
122
- use "return 400 because no params were given"
123
- use "user unchanged"
124
155
  end
125
156
 
126
157
  [:name, :role].each do |missing|
@@ -143,6 +174,15 @@ class UsersPutResourceTest < ResourceTestCase
143
174
  end
144
175
  end
145
176
 
177
+ context "#{role} : put /:fake_id with valid params" do
178
+ before do
179
+ put "/#{FAKE_ID}", valid_params_for(role).merge(@extra_admin_params)
180
+ end
181
+
182
+ use "return 404 Not Found with empty response body"
183
+ use "user unchanged"
184
+ end
185
+
146
186
  context "#{role} : put /:id with valid params" do
147
187
  before do
148
188
  put "/#{@user.id}", valid_params_for(role).merge(@extra_admin_params)
@@ -43,7 +43,7 @@ module SinatraResource
43
43
  check_related?(parent_document, association, id)
44
44
  end
45
45
  check_params(:update, role, resource_config, leaf)
46
- do_callback(:before_update, resource_config, nil)
46
+ do_callback(:before_update, resource_config, find_document!(model, id))
47
47
  document = update_document!(model, id)
48
48
  do_callback(:after_update, resource_config, document)
49
49
  document
@@ -55,7 +55,7 @@ module SinatraResource
55
55
  check_related?(parent_document, association, id)
56
56
  end
57
57
  check_params(:delete, role, resource_config, leaf)
58
- do_callback(:before_destroy, resource_config, nil)
58
+ do_callback(:before_destroy, resource_config, find_document!(model, id))
59
59
  document = delete_document!(model, id)
60
60
  do_callback(:after_destroy, resource_config, document)
61
61
  document
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra_resource}
8
- s.version = "0.2.5"
8
+ s.version = "0.2.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David James"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David James