saucy 0.14.3 → 0.14.5

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 (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