flunk 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -41,7 +41,7 @@ It's your typical rails integration test, but inherits from Flunk:
41
41
 
42
42
  You write tests that SHOULD pass to test your app's basic functionality all works:
43
43
 
44
- test "Create User" do
44
+ test "User", "Create" do
45
45
  desc "Creating a new Langwich user."
46
46
  path "signup"
47
47
  method :post
@@ -57,7 +57,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
57
57
  }
58
58
  end
59
59
 
60
- test "Log In" do
60
+ test "User", "Log In" do
61
61
  desc "Obtain a users API token by logging in with their username and password"
62
62
  path "login"
63
63
  method :get
@@ -68,7 +68,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
68
68
  }
69
69
  end
70
70
 
71
- test "Log In With Email" do
71
+ test "User", "Log In With Email" do
72
72
  path "login"
73
73
  method :get
74
74
  body username: @user.email, password: @user.password
@@ -78,7 +78,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
78
78
  }
79
79
  end
80
80
 
81
- test "Read User" do
81
+ test "User", "Read" do
82
82
  desc "Read a users information."
83
83
  path "account"
84
84
  method :get
@@ -86,7 +86,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
86
86
  status :ok
87
87
  end
88
88
 
89
- test "Update User" do
89
+ test "User", "Update" do
90
90
  desc "Update the username, e-mail, password and/or name"
91
91
  path "account"
92
92
  method :put
@@ -98,7 +98,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
98
98
  }
99
99
  end
100
100
 
101
- test "Update E-mail" do
101
+ test "User", "Update E-mail" do
102
102
  path "account"
103
103
  method :put
104
104
  username @user.api_token
@@ -109,7 +109,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
109
109
  }
110
110
  end
111
111
 
112
- test "Update User Password" do
112
+ test "User", "Update User Password" do
113
113
  path "account"
114
114
  method :put
115
115
  username @user.api_token
@@ -117,7 +117,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
117
117
  status :ok
118
118
  end
119
119
 
120
- test "Update Name" do
120
+ test "User", "Update Name" do
121
121
  path "account"
122
122
  method :put
123
123
  username @user.api_token
@@ -128,7 +128,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
128
128
  }
129
129
  end
130
130
 
131
- test "Delete User" do
131
+ test "User", "Destroy" do
132
132
  path "account"
133
133
  method :delete
134
134
  username @user.api_token
@@ -140,7 +140,7 @@ You write tests that SHOULD pass to test your app's basic functionality all work
140
140
  Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests correctly/gracefully:
141
141
 
142
142
 
143
- flunk "Create User", "Missing username" do
143
+ flunk "User", "Create", "Missing username" do
144
144
  desc "Attempting to create a user without a username."
145
145
  path "signup"
146
146
  method :post
@@ -148,21 +148,21 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
148
148
  status :unprocessable_entity
149
149
  end
150
150
 
151
- flunk "Create User", "Username already taken" do
151
+ flunk "User", "Create", "Username already taken" do
152
152
  path "signup"
153
153
  method :post
154
154
  body user: FactoryGirl.attributes_for(:user, username: @user.username)
155
155
  status :unprocessable_entity
156
156
  end
157
157
 
158
- flunk "Create User", "Invalid username" do
158
+ flunk "User", "Create", "Invalid username" do
159
159
  path "signup"
160
160
  method :post
161
161
  body user: FactoryGirl.attributes_for(:user, username: "a234$2aa" )
162
162
  status :unprocessable_entity
163
163
  end
164
164
 
165
- flunk "Create User", "Missing e-mail" do
165
+ flunk "User", "Create", "Missing e-mail" do
166
166
  desc "Attempting to create a user without a e-mail."
167
167
  path "signup"
168
168
  method :post
@@ -170,7 +170,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
170
170
  status :unprocessable_entity
171
171
  end
172
172
 
173
- flunk "Create User", "E-mail already taken" do
173
+ flunk "User", "Create", "E-mail already taken" do
174
174
  desc "Attempting to create a user with an e-mail that's already taken."
175
175
  path "signup"
176
176
  method :post
@@ -178,14 +178,14 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
178
178
  status :unprocessable_entity
179
179
  end
180
180
 
181
- flunk "Create User", "Invalid e-mail" do
181
+ flunk "User", "Create", "Invalid e-mail" do
182
182
  path "signup"
183
183
  method :post
184
184
  body user: FactoryGirl.attributes_for(:user, email: "aaaa@aakk")
185
185
  status :unprocessable_entity
186
186
  end
187
187
 
188
- flunk "Create User", "Missing password" do
188
+ flunk "User", "Create", "Missing password" do
189
189
  desc "Attempting to create a user without a password."
190
190
  path "signup"
191
191
  method :post
@@ -193,7 +193,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
193
193
  status :unprocessable_entity
194
194
  end
195
195
 
196
- flunk "Create User", "Missing name" do
196
+ flunk "User", "Create", "Missing name" do
197
197
  path "signup"
198
198
  method :post
199
199
  body user: FactoryGirl.attributes_for(:user, name: nil)
@@ -203,7 +203,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
203
203
 
204
204
 
205
205
 
206
- flunk "Log In", "No username" do
206
+ flunk "User", "Log In", "No username" do
207
207
  desc "Attempting to obtain an API token with the wrong password"
208
208
  path "login"
209
209
  method :get
@@ -211,7 +211,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
211
211
  status :unauthorized
212
212
  end
213
213
 
214
- flunk "Log In", "Wrong password" do
214
+ flunk "User", "Log In", "Wrong password" do
215
215
  desc "Attempting to obtain an API token with the wrong password"
216
216
  path "login"
217
217
  method :get
@@ -222,7 +222,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
222
222
 
223
223
 
224
224
 
225
- flunk "Read User", "Wrong API token" do
225
+ flunk "User", "Read", "Wrong API token" do
226
226
  path "login"
227
227
  method :get
228
228
  username "a"
@@ -232,7 +232,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
232
232
 
233
233
 
234
234
 
235
- flunk "Update User", "Wrong password" do
235
+ flunk "User", "Update", "Wrong password" do
236
236
  path "account"
237
237
  method :put
238
238
  username "a"
@@ -240,7 +240,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
240
240
  status :unauthorized
241
241
  end
242
242
 
243
- flunk "Update User", "Username already taken" do
243
+ flunk "User", "Update", "Username already taken" do
244
244
  path "account"
245
245
  method :put
246
246
  username @user.api_token
@@ -249,7 +249,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
249
249
  status :unprocessable_entity
250
250
  end
251
251
 
252
- flunk "Update User", "Invalid username" do
252
+ flunk "User", "Update", "Invalid username" do
253
253
  path "account"
254
254
  method :put
255
255
  username @user.api_token
@@ -257,7 +257,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
257
257
  status :unprocessable_entity
258
258
  end
259
259
 
260
- flunk "Update User", "E-mail already taken" do
260
+ flunk "User", "Update", "E-mail already taken" do
261
261
  desc "Attempting to update a user with an e-mail that's already taken."
262
262
  path "account"
263
263
  method :put
@@ -267,7 +267,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
267
267
  status :unprocessable_entity
268
268
  end
269
269
 
270
- flunk "Update User", "Invalid e-mail" do
270
+ flunk "User", "Update", "Invalid e-mail" do
271
271
  desc "Attempting to update the user with an invalid e-mail"
272
272
  path "account"
273
273
  method :put
@@ -279,7 +279,7 @@ Then, write tests that SHOULDN'T pass to make sure your app rejects bad requests
279
279
 
280
280
 
281
281
 
282
- flunk "Delete User", "Wrong password" do
282
+ flunk "User", "Delete", "Wrong password" do
283
283
  path "account"
284
284
  method :delete
285
285
  username "a"
data/flunk.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "flunk"
3
- s.version = "0.0.6"
3
+ s.version = "0.0.7"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ["Adam Kirk"]
6
6
  s.email = %q{atomkirk@gmail.com}
data/lib/flunk.rb CHANGED
@@ -2,22 +2,24 @@ require 'rails/test_help'
2
2
 
3
3
  class Flunk < ActionDispatch::IntegrationTest
4
4
 
5
- def self.test(name, &block)
5
+ def self.test(resource, action, &block)
6
6
  new_proc = Proc.new do
7
7
  instance_eval(&block)
8
8
  result
9
9
  @assertions.call unless @assertions.nil?
10
10
  end
11
11
 
12
- super name, &new_proc
13
- end
12
+ if !action || !resource
13
+ name = action || resource
14
+ else
15
+ name = resource + ": " + action
16
+ end
14
17
 
15
- def self.flunk(action, failure_reason, &block)
16
- test("FLUNKED: #{action} (#{failure_reason})", &block)
18
+ super name, &new_proc
17
19
  end
18
20
 
19
- def self.base_url=(base_url)
20
- @@base_url = base_url
21
+ def self.flunk(resource, action, failure_reason, &block)
22
+ test("FLUNKED! #{resource}: #{action} (#{failure_reason})", nil, &block)
21
23
  end
22
24
 
23
25
  def result
@@ -29,10 +31,6 @@ class Flunk < ActionDispatch::IntegrationTest
29
31
  @headers["HTTP_AUTHORIZATION"] = "Basic #{Base64.encode64(@username.to_s + ":" + @password.to_s)}".strip
30
32
  end
31
33
 
32
- if @@base_url
33
- @path = File.join(@@base_url, @path)
34
- end
35
-
36
34
  send @method, @path, @body, @headers
37
35
 
38
36
  @response = response
@@ -6,7 +6,7 @@ class <%= class_name.pluralize %>Test < Flunk
6
6
  end
7
7
 
8
8
  # Write tests that should succeed to make sure the required functionality works.
9
- test "Test Title" do
9
+ test "Resource", "Action" do
10
10
  desc "A description of the function this tests"
11
11
  path "resource/:id"
12
12
  method :get
@@ -20,7 +20,7 @@ class <%= class_name.pluralize %>Test < Flunk
20
20
 
21
21
 
22
22
  # Write a test that SHOULD fail to ensure your application handles bad requests gracefully.
23
- flunk "Test Title", "Why it flunks" do
23
+ flunk "Resource", "Action, "Why it flunks" do
24
24
  path "/resource/:id"
25
25
  method :get
26
26
  status :unauthorized
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flunk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-23 00:00:00.000000000 Z
12
+ date: 2013-01-25 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: A gem for testing Ruby on Rails web APIs by simulating a client.
15
15
  email: atomkirk@gmail.com