saucy 0.14.3 → 0.14.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. data/CHANGELOG.md +5 -0
  2. data/Gemfile +2 -1
  3. data/Gemfile.lock +60 -58
  4. data/app/controllers/accounts_controller.rb +0 -1
  5. data/app/controllers/admin/trial_extensions_controller.rb +13 -0
  6. data/app/views/admin/accounts/show.html.erb +13 -0
  7. data/config/routes.rb +1 -0
  8. data/features/run_features.feature +3 -2
  9. data/lib/generators/saucy/features/templates/features/manage_billing.feature +12 -7
  10. data/lib/generators/saucy/features/templates/features/manage_plan.feature +12 -6
  11. data/lib/generators/saucy/features/templates/features/new_account.feature +4 -9
  12. data/lib/generators/saucy/features/templates/features/sign_up.feature +1 -1
  13. data/lib/generators/saucy/features/templates/features/sign_up_coupon.feature +1 -2
  14. data/lib/generators/saucy/features/templates/features/sign_up_paid.feature +1 -1
  15. data/lib/generators/saucy/features/templates/features/trial_plans.feature +1 -1
  16. data/lib/saucy/account.rb +8 -0
  17. data/lib/saucy/projects_controller.rb +2 -5
  18. data/lib/saucy/subscription.rb +5 -1
  19. data/lib/saucy/version.rb +1 -1
  20. data/saucy.gemspec +2 -2
  21. data/spec/controllers/accounts_controller_spec.rb +9 -9
  22. data/spec/controllers/admin/trial_extensions_controller_spec.rb +67 -0
  23. data/spec/controllers/invitations_controller_spec.rb +13 -7
  24. data/spec/controllers/memberships_controller_spec.rb +10 -7
  25. data/spec/controllers/profiles_controller_spec.rb +8 -2
  26. data/spec/controllers/projects_controller_spec.rb +20 -16
  27. data/spec/environment.rb +3 -3
  28. data/spec/models/account_spec.rb +29 -0
  29. data/spec/models/subscription_spec.rb +33 -11
  30. data/spec/support/clearance.rb +1 -0
  31. data/spec/views/accounts/show.html.erb_spec.rb +41 -0
  32. metadata +59 -14
  33. data/spec/support/clearance_matchers.rb +0 -55
@@ -0,0 +1 @@
1
+ require 'clearance/testing'
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe "admin/accounts/show.html.erb" do
4
+ let(:trial_plan) { Factory.stub(:plan, :trial => true) }
5
+ let(:account) { Factory(:account) }
6
+ let(:user) { Factory.stub(:user) }
7
+ let(:form_destination) { admin_account_trial_extensions_path(account.keyword) }
8
+
9
+ before { view.stubs(:current_user => user) }
10
+
11
+ def render_account
12
+ @account = account
13
+ render
14
+ end
15
+
16
+ context "with a trial account" do
17
+ before do
18
+ account.plan = trial_plan
19
+ render_account
20
+ end
21
+
22
+ it "renders trial status" do
23
+ rendered.should include("This is a trial account")
24
+ end
25
+
26
+ it 'renders a form to extend the trial' do
27
+ rendered.should include(%{action="#{form_destination}"})
28
+ end
29
+ end
30
+
31
+ context "without a trial account" do
32
+ before do
33
+ render_account
34
+ end
35
+
36
+ it "does not render trial status" do
37
+ rendered.should_not include("This is a trial account")
38
+ end
39
+ end
40
+ end
41
+
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saucy
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 45
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 14
8
- - 3
9
- version: 0.14.3
9
+ - 5
10
+ version: 0.14.5
10
11
  platform: ruby
11
12
  authors:
12
13
  - thoughtbot, inc.
@@ -19,43 +20,49 @@ autorequire:
19
20
  bindir: bin
20
21
  cert_chain: []
21
22
 
22
- date: 2011-12-08 00:00:00 -05:00
23
- default_executable:
23
+ date: 2012-01-13 00:00:00 Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: clearance
27
27
  prerelease: false
28
28
  requirement: &id001 !ruby/object:Gem::Requirement
29
+ none: false
29
30
  requirements:
30
31
  - - ~>
31
32
  - !ruby/object:Gem::Version
33
+ hash: 39
32
34
  segments:
33
35
  - 0
34
- - 11
35
- - 2
36
- version: 0.11.2
36
+ - 14
37
+ - 0
38
+ version: 0.14.0
37
39
  type: :runtime
38
40
  version_requirements: *id001
39
41
  - !ruby/object:Gem::Dependency
40
42
  name: formtastic
41
43
  prerelease: false
42
44
  requirement: &id002 !ruby/object:Gem::Requirement
45
+ none: false
43
46
  requirements:
44
- - - ">="
47
+ - - ~>
45
48
  - !ruby/object:Gem::Version
49
+ hash: 23
46
50
  segments:
47
51
  - 1
48
52
  - 2
49
- version: "1.2"
53
+ - 4
54
+ version: 1.2.4
50
55
  type: :runtime
51
56
  version_requirements: *id002
52
57
  - !ruby/object:Gem::Dependency
53
58
  name: railties
54
59
  prerelease: false
55
60
  requirement: &id003 !ruby/object:Gem::Requirement
61
+ none: false
56
62
  requirements:
57
63
  - - ">="
58
64
  - !ruby/object:Gem::Version
65
+ hash: 1
59
66
  segments:
60
67
  - 3
61
68
  - 0
@@ -67,9 +74,11 @@ dependencies:
67
74
  name: braintree
68
75
  prerelease: false
69
76
  requirement: &id004 !ruby/object:Gem::Requirement
77
+ none: false
70
78
  requirements:
71
79
  - - ">="
72
80
  - !ruby/object:Gem::Version
81
+ hash: 19
73
82
  segments:
74
83
  - 2
75
84
  - 6
@@ -81,9 +90,11 @@ dependencies:
81
90
  name: sham_rack
82
91
  prerelease: false
83
92
  requirement: &id005 !ruby/object:Gem::Requirement
93
+ none: false
84
94
  requirements:
85
95
  - - "="
86
96
  - !ruby/object:Gem::Version
97
+ hash: 29
87
98
  segments:
88
99
  - 1
89
100
  - 3
@@ -95,9 +106,11 @@ dependencies:
95
106
  name: sinatra
96
107
  prerelease: false
97
108
  requirement: &id006 !ruby/object:Gem::Requirement
109
+ none: false
98
110
  requirements:
99
111
  - - ">="
100
112
  - !ruby/object:Gem::Version
113
+ hash: 23
101
114
  segments:
102
115
  - 1
103
116
  - 1
@@ -109,9 +122,11 @@ dependencies:
109
122
  name: airbrake
110
123
  prerelease: false
111
124
  requirement: &id007 !ruby/object:Gem::Requirement
125
+ none: false
112
126
  requirements:
113
127
  - - ~>
114
128
  - !ruby/object:Gem::Version
129
+ hash: 15
115
130
  segments:
116
131
  - 3
117
132
  - 0
@@ -123,9 +138,11 @@ dependencies:
123
138
  name: aruba
124
139
  prerelease: false
125
140
  requirement: &id008 !ruby/object:Gem::Requirement
141
+ none: false
126
142
  requirements:
127
143
  - - ~>
128
144
  - !ruby/object:Gem::Version
145
+ hash: 3
129
146
  segments:
130
147
  - 0
131
148
  - 4
@@ -136,9 +153,11 @@ dependencies:
136
153
  name: shoulda-matchers
137
154
  prerelease: false
138
155
  requirement: &id009 !ruby/object:Gem::Requirement
156
+ none: false
139
157
  requirements:
140
158
  - - ~>
141
159
  - !ruby/object:Gem::Version
160
+ hash: 23
142
161
  segments:
143
162
  - 1
144
163
  - 0
@@ -150,9 +169,11 @@ dependencies:
150
169
  name: bourne
151
170
  prerelease: false
152
171
  requirement: &id010 !ruby/object:Gem::Requirement
172
+ none: false
153
173
  requirements:
154
174
  - - ">="
155
175
  - !ruby/object:Gem::Version
176
+ hash: 3
156
177
  segments:
157
178
  - 0
158
179
  version: "0"
@@ -162,9 +183,11 @@ dependencies:
162
183
  name: sqlite3
163
184
  prerelease: false
164
185
  requirement: &id011 !ruby/object:Gem::Requirement
186
+ none: false
165
187
  requirements:
166
188
  - - ">="
167
189
  - !ruby/object:Gem::Version
190
+ hash: 3
168
191
  segments:
169
192
  - 0
170
193
  version: "0"
@@ -174,9 +197,11 @@ dependencies:
174
197
  name: factory_girl
175
198
  prerelease: false
176
199
  requirement: &id012 !ruby/object:Gem::Requirement
200
+ none: false
177
201
  requirements:
178
202
  - - ">="
179
203
  - !ruby/object:Gem::Version
204
+ hash: 3
180
205
  segments:
181
206
  - 0
182
207
  version: "0"
@@ -186,9 +211,11 @@ dependencies:
186
211
  name: timecop
187
212
  prerelease: false
188
213
  requirement: &id013 !ruby/object:Gem::Requirement
214
+ none: false
189
215
  requirements:
190
216
  - - ">="
191
217
  - !ruby/object:Gem::Version
218
+ hash: 3
192
219
  segments:
193
220
  - 0
194
221
  version: "0"
@@ -198,9 +225,11 @@ dependencies:
198
225
  name: rake
199
226
  prerelease: false
200
227
  requirement: &id014 !ruby/object:Gem::Requirement
228
+ none: false
201
229
  requirements:
202
230
  - - ">="
203
231
  - !ruby/object:Gem::Version
232
+ hash: 3
204
233
  segments:
205
234
  - 0
206
235
  version: "0"
@@ -210,9 +239,11 @@ dependencies:
210
239
  name: cucumber
211
240
  prerelease: false
212
241
  requirement: &id015 !ruby/object:Gem::Requirement
242
+ none: false
213
243
  requirements:
214
244
  - - ~>
215
245
  - !ruby/object:Gem::Version
246
+ hash: 27
216
247
  segments:
217
248
  - 1
218
249
  - 0
@@ -224,9 +255,11 @@ dependencies:
224
255
  name: rspec-rails
225
256
  prerelease: false
226
257
  requirement: &id016 !ruby/object:Gem::Requirement
258
+ none: false
227
259
  requirements:
228
260
  - - ">="
229
261
  - !ruby/object:Gem::Version
262
+ hash: 3
230
263
  segments:
231
264
  - 0
232
265
  version: "0"
@@ -236,9 +269,11 @@ dependencies:
236
269
  name: rails
237
270
  prerelease: false
238
271
  requirement: &id017 !ruby/object:Gem::Requirement
272
+ none: false
239
273
  requirements:
240
274
  - - ">="
241
275
  - !ruby/object:Gem::Version
276
+ hash: 1
242
277
  segments:
243
278
  - 3
244
279
  - 0
@@ -250,9 +285,11 @@ dependencies:
250
285
  name: thin
251
286
  prerelease: false
252
287
  requirement: &id018 !ruby/object:Gem::Requirement
288
+ none: false
253
289
  requirements:
254
290
  - - ">="
255
291
  - !ruby/object:Gem::Version
292
+ hash: 3
256
293
  segments:
257
294
  - 0
258
295
  version: "0"
@@ -278,6 +315,7 @@ files:
278
315
  - app/controllers/accounts_controller.rb
279
316
  - app/controllers/admin/accounts_controller.rb
280
317
  - app/controllers/admin/base_controller.rb
318
+ - app/controllers/admin/trial_extensions_controller.rb
281
319
  - app/controllers/admin/users_controller.rb
282
320
  - app/controllers/billings_controller.rb
283
321
  - app/controllers/invitations_controller.rb
@@ -413,6 +451,7 @@ files:
413
451
  - spec/controllers/accounts_controller_spec.rb
414
452
  - spec/controllers/admin/accounts_controller_spec.rb
415
453
  - spec/controllers/admin/base_controller_spec.rb
454
+ - spec/controllers/admin/trial_extensions_controller_spec.rb
416
455
  - spec/controllers/admin/users_controller_spec.rb
417
456
  - spec/controllers/application_controller_spec.rb
418
457
  - spec/controllers/billings_controller_spec.rb
@@ -448,10 +487,10 @@ files:
448
487
  - spec/support/authentication_helpers.rb
449
488
  - spec/support/authorization_helpers.rb
450
489
  - spec/support/braintree.rb
451
- - spec/support/clearance_matchers.rb
490
+ - spec/support/clearance.rb
452
491
  - spec/support/notifications.rb
453
492
  - spec/views/accounts/_account.html.erb_spec.rb
454
- has_rdoc: true
493
+ - spec/views/accounts/show.html.erb_spec.rb
455
494
  homepage: http://github.com/thoughtbot/saucy
456
495
  licenses: []
457
496
 
@@ -461,23 +500,27 @@ rdoc_options: []
461
500
  require_paths:
462
501
  - lib
463
502
  required_ruby_version: !ruby/object:Gem::Requirement
503
+ none: false
464
504
  requirements:
465
505
  - - ">="
466
506
  - !ruby/object:Gem::Version
507
+ hash: 3
467
508
  segments:
468
509
  - 0
469
510
  version: "0"
470
511
  required_rubygems_version: !ruby/object:Gem::Requirement
512
+ none: false
471
513
  requirements:
472
514
  - - ">="
473
515
  - !ruby/object:Gem::Version
516
+ hash: 3
474
517
  segments:
475
518
  - 0
476
519
  version: "0"
477
520
  requirements: []
478
521
 
479
522
  rubyforge_project:
480
- rubygems_version: 1.3.6
523
+ rubygems_version: 1.8.11
481
524
  signing_key:
482
525
  specification_version: 3
483
526
  summary: Clearance-based Rails engine for SaaS
@@ -491,6 +534,7 @@ test_files:
491
534
  - spec/controllers/accounts_controller_spec.rb
492
535
  - spec/controllers/admin/accounts_controller_spec.rb
493
536
  - spec/controllers/admin/base_controller_spec.rb
537
+ - spec/controllers/admin/trial_extensions_controller_spec.rb
494
538
  - spec/controllers/admin/users_controller_spec.rb
495
539
  - spec/controllers/application_controller_spec.rb
496
540
  - spec/controllers/billings_controller_spec.rb
@@ -526,6 +570,7 @@ test_files:
526
570
  - spec/support/authentication_helpers.rb
527
571
  - spec/support/authorization_helpers.rb
528
572
  - spec/support/braintree.rb
529
- - spec/support/clearance_matchers.rb
573
+ - spec/support/clearance.rb
530
574
  - spec/support/notifications.rb
531
575
  - spec/views/accounts/_account.html.erb_spec.rb
576
+ - spec/views/accounts/show.html.erb_spec.rb
@@ -1,55 +0,0 @@
1
- module ClearanceMatchers
2
- class DenyAccessMatcher
3
- include Shoulda::Matchers::ActionController
4
-
5
- def initialize(context)
6
- @context = context
7
- end
8
-
9
- def matches?(controller)
10
- if @method
11
- @context.__send__(@method, *@args)
12
- end
13
-
14
- begin
15
- if @flash
16
- controller.should set_the_flash.to(@flash)
17
- else
18
- controller.should_not set_the_flash
19
- end
20
-
21
- url = controller.__send__(:sign_in_url)
22
- controller.should redirect_to(url).in_context(@context)
23
-
24
- true
25
- rescue RSpec::Expectations::ExpectationNotMetError => failure
26
- @failure_message = failure.message
27
- false
28
- end
29
- end
30
-
31
- def flash(flash)
32
- @flash = flash
33
- self
34
- end
35
-
36
- def on(method, *args)
37
- @method = method
38
- @args = args
39
- self
40
- end
41
-
42
- def failure_message_for_should
43
- @failure_message
44
- end
45
- end
46
-
47
- def deny_access
48
- DenyAccessMatcher.new(self)
49
- end
50
- end
51
-
52
-
53
- RSpec.configure do |config|
54
- config.include ClearanceMatchers
55
- end