sinatra_resource 0.4.21 → 0.4.22

Sign up to get free protection for your applications and to get access to all the features.
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"