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.
Files changed (88) hide show
  1. data/Gemfile +18 -0
  2. data/Gemfile.lock +51 -0
  3. data/README.mdown +1 -1
  4. data/VERSION +1 -1
  5. data/examples/datacatalog/.bundle/config +2 -0
  6. data/examples/datacatalog/Gemfile +14 -0
  7. data/examples/datacatalog/Gemfile.lock +33 -0
  8. data/examples/datacatalog/Rakefile +2 -2
  9. data/examples/datacatalog/app.rb +0 -2
  10. data/examples/datacatalog/config/config.rb +5 -7
  11. data/examples/datacatalog/lib/base.rb +2 -2
  12. data/examples/datacatalog/lib/resource.rb +5 -5
  13. data/examples/datacatalog/lib/roles.rb +2 -2
  14. data/examples/datacatalog/model_helpers/search.rb +6 -6
  15. data/examples/datacatalog/models/categorization.rb +1 -1
  16. data/examples/datacatalog/models/note.rb +1 -1
  17. data/examples/datacatalog/models/source.rb +3 -3
  18. data/examples/datacatalog/models/usage.rb +2 -2
  19. data/examples/datacatalog/models/user.rb +7 -7
  20. data/examples/datacatalog/resources/categories.rb +7 -7
  21. data/examples/datacatalog/resources/categories_sources.rb +4 -4
  22. data/examples/datacatalog/resources/notes.rb +1 -1
  23. data/examples/datacatalog/resources/sources.rb +3 -3
  24. data/examples/datacatalog/resources/sources_usages.rb +3 -3
  25. data/examples/datacatalog/resources/users.rb +3 -3
  26. data/examples/datacatalog/tasks/db.rake +2 -2
  27. data/examples/datacatalog/tasks/test.rake +1 -1
  28. data/examples/datacatalog/test/helpers/assertions/assert_include.rb +1 -1
  29. data/examples/datacatalog/test/helpers/assertions/assert_not_include.rb +1 -1
  30. data/examples/datacatalog/test/helpers/lib/model_factories.rb +7 -7
  31. data/examples/datacatalog/test/helpers/lib/model_helpers.rb +1 -1
  32. data/examples/datacatalog/test/helpers/lib/request_helpers.rb +7 -7
  33. data/examples/datacatalog/test/helpers/resource_test_helper.rb +1 -1
  34. data/examples/datacatalog/test/helpers/shared/api_keys.rb +11 -11
  35. data/examples/datacatalog/test/helpers/shared/common_body_responses.rb +1 -1
  36. data/examples/datacatalog/test/helpers/shared/model_counts.rb +2 -2
  37. data/examples/datacatalog/test/helpers/shared/status_codes.rb +4 -4
  38. data/examples/datacatalog/test/helpers/test_cases/resource_test_case.rb +4 -4
  39. data/examples/datacatalog/test/helpers/test_helper.rb +4 -10
  40. data/examples/datacatalog/test/models/categorization_test.rb +6 -6
  41. data/examples/datacatalog/test/models/category_test.rb +8 -8
  42. data/examples/datacatalog/test/models/note_test.rb +6 -6
  43. data/examples/datacatalog/test/models/search_test.rb +4 -4
  44. data/examples/datacatalog/test/models/source_test.rb +5 -5
  45. data/examples/datacatalog/test/models/user_test.rb +11 -11
  46. data/examples/datacatalog/test/resources/categories/categories_delete_test.rb +12 -12
  47. data/examples/datacatalog/test/resources/categories/categories_get_many_test.rb +9 -9
  48. data/examples/datacatalog/test/resources/categories/categories_get_one_test.rb +7 -7
  49. data/examples/datacatalog/test/resources/categories/categories_post_test.rb +16 -16
  50. data/examples/datacatalog/test/resources/categories/categories_put_test.rb +17 -17
  51. data/examples/datacatalog/test/resources/categories_sources/categories_sources_delete_test.rb +25 -25
  52. data/examples/datacatalog/test/resources/categories_sources/categories_sources_get_many_test.rb +5 -5
  53. data/examples/datacatalog/test/resources/categories_sources/categories_sources_get_one_test.rb +15 -15
  54. data/examples/datacatalog/test/resources/categories_sources/categories_sources_post_test.rb +31 -31
  55. data/examples/datacatalog/test/resources/categories_sources/categories_sources_put_test.rb +41 -41
  56. data/examples/datacatalog/test/resources/notes/notes_get_many_test.rb +15 -15
  57. data/examples/datacatalog/test/resources/notes/notes_get_one_test.rb +7 -7
  58. data/examples/datacatalog/test/resources/notes/notes_post_test.rb +12 -12
  59. data/examples/datacatalog/test/resources/sources/sources_delete_test.rb +12 -12
  60. data/examples/datacatalog/test/resources/sources/sources_get_many_search_test.rb +20 -20
  61. data/examples/datacatalog/test/resources/sources/sources_get_many_test.rb +8 -8
  62. data/examples/datacatalog/test/resources/sources/sources_get_one_test.rb +17 -9
  63. data/examples/datacatalog/test/resources/sources/sources_post_test.rb +13 -13
  64. data/examples/datacatalog/test/resources/sources/sources_put_test.rb +30 -30
  65. data/examples/datacatalog/test/resources/sources_usages/sources_usages_delete_test.rb +24 -24
  66. data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_many_filter_test.rb +9 -9
  67. data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_many_test.rb +9 -9
  68. data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_one_test.rb +15 -15
  69. data/examples/datacatalog/test/resources/sources_usages/sources_usages_post_test.rb +16 -16
  70. data/examples/datacatalog/test/resources/sources_usages/sources_usages_put_test.rb +33 -33
  71. data/examples/datacatalog/test/resources/users/users_delete_test.rb +21 -21
  72. data/examples/datacatalog/test/resources/users/users_get_many_test.rb +16 -16
  73. data/examples/datacatalog/test/resources/users/users_get_one_test.rb +8 -8
  74. data/examples/datacatalog/test/resources/users/users_post_test.rb +13 -13
  75. data/examples/datacatalog/test/resources/users/users_put_test.rb +18 -18
  76. data/lib/builder/action_definitions.rb +8 -8
  77. data/lib/builder/helpers.rb +10 -12
  78. data/lib/builder/mongo_helpers.rb +13 -14
  79. data/lib/builder.rb +10 -10
  80. data/lib/exceptions.rb +1 -1
  81. data/lib/resource.rb +20 -20
  82. data/lib/roles.rb +2 -2
  83. data/lib/utility.rb +2 -2
  84. data/notes/permissions.mdown +6 -6
  85. data/sinatra_resource.gemspec +9 -4
  86. data/spec/spec_helper.rb +1 -1
  87. data/spec/utility_spec.rb +2 -2
  88. 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 not empty"
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 not empty"
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"