susply 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/README.rdoc +1 -0
- data/app/controllers/susply/application_controller.rb +1 -1
- data/app/controllers/susply/change_plans_controller.rb +32 -0
- data/app/controllers/susply/renovations_controller.rb +37 -0
- data/app/models/susply/subscription.rb +8 -0
- data/app/services/susply/renews_subscription.rb +4 -4
- data/config/locales/susply.en.yml +8 -0
- data/config/routes.rb +4 -0
- data/lib/generators/susply/install_generator.rb +11 -0
- data/lib/generators/templates/config/initializers/susply.rb +1 -0
- data/lib/susply.rb +6 -0
- data/lib/susply/version.rb +1 -1
- data/spec/controllers/susply/change_plans_controller_spec.rb +95 -0
- data/spec/controllers/susply/renovations_controller_spec.rb +87 -0
- data/spec/dummy/app/assets/javascripts/companies.js +2 -0
- data/spec/dummy/app/assets/stylesheets/companies.css +4 -0
- data/spec/dummy/app/assets/stylesheets/scaffold.css +56 -0
- data/spec/dummy/app/controllers/companies_controller.rb +58 -0
- data/spec/dummy/app/helpers/companies_helper.rb +2 -0
- data/spec/dummy/app/models/company.rb +2 -0
- data/spec/dummy/app/views/companies/_form.html.erb +21 -0
- data/spec/dummy/app/views/companies/edit.html.erb +6 -0
- data/spec/dummy/app/views/companies/index.html.erb +27 -0
- data/spec/dummy/app/views/companies/new.html.erb +5 -0
- data/spec/dummy/app/views/companies/show.html.erb +9 -0
- data/spec/dummy/config/initializers/susply.rb +1 -0
- data/spec/dummy/config/locales/susply.en.yml +6 -0
- data/spec/dummy/config/routes.rb +2 -2
- data/spec/dummy/db/migrate/20150525181508_create_companies.rb +9 -0
- data/spec/dummy/log/development.log +300 -0
- data/spec/dummy/log/test.log +26916 -0
- data/spec/models/susply/subscription_spec.rb +39 -0
- data/spec/services/susply/renews_subscription_spec.rb +25 -16
- metadata +35 -6
- data/spec/dummy/spec/factories/organizations.rb +0 -8
- data/spec/dummy/spec/models/organization_spec.rb +0 -4
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Susply
|
4
4
|
describe Subscription, type: :model do
|
5
|
+
let(:time) { Time.zone.now }
|
5
6
|
describe "validations" do
|
6
7
|
it "shoulda validate" do
|
7
8
|
subscription = build(:susply_subscription)
|
@@ -98,5 +99,43 @@ module Susply
|
|
98
99
|
expect(subscription.active?).to eq false
|
99
100
|
end
|
100
101
|
end
|
102
|
+
|
103
|
+
describe "#expired?" do
|
104
|
+
it "returns true when current_period_end is less than now" do
|
105
|
+
subscription = build(:susply_subscription,
|
106
|
+
current_period_end: time - 1.day)
|
107
|
+
|
108
|
+
expect(subscription).to be_expired
|
109
|
+
end
|
110
|
+
|
111
|
+
it "returns false when current_period_end is greater than now" do
|
112
|
+
subscription = build(:susply_subscription,
|
113
|
+
current_period_end: time + 1.day)
|
114
|
+
|
115
|
+
expect(subscription).not_to be_expired
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe "allowed_to_renew?" do
|
120
|
+
it "returns false when is not active" do
|
121
|
+
subscription = build(:susply_subscription, :inactive)
|
122
|
+
|
123
|
+
expect(subscription).not_to be_allowed_to_renew
|
124
|
+
end
|
125
|
+
|
126
|
+
it "returns false when is active and not expired" do
|
127
|
+
subscription = build(:susply_subscription, :active,
|
128
|
+
current_period_end: time + 1.day)
|
129
|
+
|
130
|
+
expect(subscription).not_to be_allowed_to_renew
|
131
|
+
end
|
132
|
+
|
133
|
+
it "returns true when is active and expired" do
|
134
|
+
subscription = build(:susply_subscription, :active,
|
135
|
+
current_period_end: time - 1.day)
|
136
|
+
|
137
|
+
expect(subscription).to be_allowed_to_renew
|
138
|
+
end
|
139
|
+
end
|
101
140
|
end
|
102
141
|
end
|
@@ -5,16 +5,25 @@ module Susply
|
|
5
5
|
let(:owner_class) { Susply.subscription_owner_class.constantize }
|
6
6
|
let(:time) {Time.zone.today}
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
subscription = create(:susply_subscription, :inactive, owner: owner)
|
8
|
+
it "returns nil when owner does not has an active subscription" do
|
9
|
+
owner = owner_class.create()
|
10
|
+
plan = create(:susply_plan)
|
11
|
+
subscription = create(:susply_subscription, :inactive, owner: owner)
|
13
12
|
|
14
|
-
|
13
|
+
s = Susply::RenewsSubscription.call(owner)
|
15
14
|
|
16
|
-
|
17
|
-
|
15
|
+
expect(s).to be_nil
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns nil when active subscription is not expired" do
|
19
|
+
owner = owner_class.create()
|
20
|
+
plan = create(:susply_plan)
|
21
|
+
subscription = create(:susply_subscription, :active,
|
22
|
+
owner: owner, current_period_end: time + 2.days)
|
23
|
+
|
24
|
+
s = Susply::RenewsSubscription.call(owner)
|
25
|
+
|
26
|
+
expect(s).to be_nil
|
18
27
|
end
|
19
28
|
|
20
29
|
context "when owner has an active subscription" do
|
@@ -43,9 +52,9 @@ module Susply
|
|
43
52
|
it "return a subscription with updated attributes" do
|
44
53
|
owner = owner_class.create()
|
45
54
|
subscription = create(:susply_subscription, :active, owner: owner,
|
46
|
-
|
55
|
+
current_period_start: time - 5.days)
|
47
56
|
s = Susply::RenewsSubscription.call(owner)
|
48
|
-
|
57
|
+
|
49
58
|
expect(s.quantity).not_to eq subscription.quantity
|
50
59
|
expect(s.current_period_start).
|
51
60
|
not_to eq subscription.current_period_start
|
@@ -56,8 +65,8 @@ module Susply
|
|
56
65
|
it "returns updates by one the subscriptions" do
|
57
66
|
owner = owner_class.create()
|
58
67
|
subscription = create(:susply_subscription, :active, owner: owner,
|
59
|
-
|
60
|
-
|
68
|
+
current_period_start: time - 5.days,
|
69
|
+
quantity: 5)
|
61
70
|
s = Susply::RenewsSubscription.call(owner)
|
62
71
|
|
63
72
|
expect(s.quantity).to eq 6
|
@@ -67,8 +76,8 @@ module Susply
|
|
67
76
|
owner = owner_class.create()
|
68
77
|
end_time = time + 6.hours
|
69
78
|
subscription = create(:susply_subscription, :active, owner: owner,
|
70
|
-
|
71
|
-
|
79
|
+
current_period_start: time - 5.days,
|
80
|
+
current_period_end: end_time)
|
72
81
|
s = Susply::RenewsSubscription.call(owner)
|
73
82
|
|
74
83
|
expect(s.current_period_start).to eq end_time
|
@@ -79,7 +88,7 @@ module Susply
|
|
79
88
|
end_time = time + 6.hours
|
80
89
|
plan = create(:susply_plan, interval: 'monthly')
|
81
90
|
subscription = create(:susply_subscription, :active, owner: owner,
|
82
|
-
|
91
|
+
plan: plan, current_period_end: end_time)
|
83
92
|
s = Susply::RenewsSubscription.call(owner)
|
84
93
|
expect(s.current_period_end).to eq(end_time + 1.month)
|
85
94
|
end
|
@@ -89,7 +98,7 @@ module Susply
|
|
89
98
|
end_time = time + 2.hours
|
90
99
|
plan = create(:susply_plan, interval: 'yearly')
|
91
100
|
subscription = create(:susply_subscription, :active, owner: owner,
|
92
|
-
|
101
|
+
plan: plan, current_period_end: end_time)
|
93
102
|
s = Susply::RenewsSubscription.call(owner)
|
94
103
|
expect(s.current_period_end).to eq(end_time + 1.year)
|
95
104
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: susply
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wenceslao Paez Chavez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -107,6 +107,8 @@ files:
|
|
107
107
|
- app/assets/javascripts/susply/application.js
|
108
108
|
- app/assets/stylesheets/susply/application.css
|
109
109
|
- app/controllers/susply/application_controller.rb
|
110
|
+
- app/controllers/susply/change_plans_controller.rb
|
111
|
+
- app/controllers/susply/renovations_controller.rb
|
110
112
|
- app/helpers/susply/application_helper.rb
|
111
113
|
- app/models/susply/payment.rb
|
112
114
|
- app/models/susply/plan.rb
|
@@ -122,6 +124,7 @@ files:
|
|
122
124
|
- app/services/susply/renews_subscription.rb
|
123
125
|
- app/views/layouts/susply/application.html.erb
|
124
126
|
- config/initializers/susply.rb
|
127
|
+
- config/locales/susply.en.yml
|
125
128
|
- config/routes.rb
|
126
129
|
- db/migrate/20150513155547_create_susply_plans.rb
|
127
130
|
- db/migrate/20150513161513_add_status_to_plans.rb
|
@@ -133,13 +136,26 @@ files:
|
|
133
136
|
- lib/susply/engine.rb
|
134
137
|
- lib/susply/version.rb
|
135
138
|
- lib/tasks/susply_tasks.rake
|
139
|
+
- spec/controllers/susply/change_plans_controller_spec.rb
|
140
|
+
- spec/controllers/susply/renovations_controller_spec.rb
|
136
141
|
- spec/dummy/README.rdoc
|
137
142
|
- spec/dummy/Rakefile
|
138
143
|
- spec/dummy/app/assets/javascripts/application.js
|
144
|
+
- spec/dummy/app/assets/javascripts/companies.js
|
139
145
|
- spec/dummy/app/assets/stylesheets/application.css
|
146
|
+
- spec/dummy/app/assets/stylesheets/companies.css
|
147
|
+
- spec/dummy/app/assets/stylesheets/scaffold.css
|
140
148
|
- spec/dummy/app/controllers/application_controller.rb
|
149
|
+
- spec/dummy/app/controllers/companies_controller.rb
|
141
150
|
- spec/dummy/app/helpers/application_helper.rb
|
151
|
+
- spec/dummy/app/helpers/companies_helper.rb
|
152
|
+
- spec/dummy/app/models/company.rb
|
142
153
|
- spec/dummy/app/models/organization.rb
|
154
|
+
- spec/dummy/app/views/companies/_form.html.erb
|
155
|
+
- spec/dummy/app/views/companies/edit.html.erb
|
156
|
+
- spec/dummy/app/views/companies/index.html.erb
|
157
|
+
- spec/dummy/app/views/companies/new.html.erb
|
158
|
+
- spec/dummy/app/views/companies/show.html.erb
|
143
159
|
- spec/dummy/app/views/layouts/application.html.erb
|
144
160
|
- spec/dummy/bin/bundle
|
145
161
|
- spec/dummy/bin/rails
|
@@ -163,10 +179,12 @@ files:
|
|
163
179
|
- spec/dummy/config/initializers/susply.rb
|
164
180
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
165
181
|
- spec/dummy/config/locales/en.yml
|
182
|
+
- spec/dummy/config/locales/susply.en.yml
|
166
183
|
- spec/dummy/config/routes.rb
|
167
184
|
- spec/dummy/config/secrets.yml
|
168
185
|
- spec/dummy/db/development.sqlite3
|
169
186
|
- spec/dummy/db/migrate/20150513183555_create_organizations.rb
|
187
|
+
- spec/dummy/db/migrate/20150525181508_create_companies.rb
|
170
188
|
- spec/dummy/db/production.sqlite3
|
171
189
|
- spec/dummy/db/schema.rb
|
172
190
|
- spec/dummy/db/test.sqlite3
|
@@ -176,8 +194,6 @@ files:
|
|
176
194
|
- spec/dummy/public/422.html
|
177
195
|
- spec/dummy/public/500.html
|
178
196
|
- spec/dummy/public/favicon.ico
|
179
|
-
- spec/dummy/spec/factories/organizations.rb
|
180
|
-
- spec/dummy/spec/models/organization_spec.rb
|
181
197
|
- spec/factories/susply_payments.rb
|
182
198
|
- spec/factories/susply_plans.rb
|
183
199
|
- spec/factories/susply_subscriptions.rb
|
@@ -233,13 +249,22 @@ test_files:
|
|
233
249
|
- spec/factories/susply_payments.rb
|
234
250
|
- spec/factories/susply_subscriptions.rb
|
235
251
|
- spec/dummy/Rakefile
|
236
|
-
- spec/dummy/spec/factories/organizations.rb
|
237
|
-
- spec/dummy/spec/models/organization_spec.rb
|
238
252
|
- spec/dummy/app/views/layouts/application.html.erb
|
253
|
+
- spec/dummy/app/views/companies/show.html.erb
|
254
|
+
- spec/dummy/app/views/companies/new.html.erb
|
255
|
+
- spec/dummy/app/views/companies/edit.html.erb
|
256
|
+
- spec/dummy/app/views/companies/index.html.erb
|
257
|
+
- spec/dummy/app/views/companies/_form.html.erb
|
239
258
|
- spec/dummy/app/assets/javascripts/application.js
|
259
|
+
- spec/dummy/app/assets/javascripts/companies.js
|
260
|
+
- spec/dummy/app/assets/stylesheets/scaffold.css
|
261
|
+
- spec/dummy/app/assets/stylesheets/companies.css
|
240
262
|
- spec/dummy/app/assets/stylesheets/application.css
|
241
263
|
- spec/dummy/app/helpers/application_helper.rb
|
264
|
+
- spec/dummy/app/helpers/companies_helper.rb
|
265
|
+
- spec/dummy/app/models/company.rb
|
242
266
|
- spec/dummy/app/models/organization.rb
|
267
|
+
- spec/dummy/app/controllers/companies_controller.rb
|
243
268
|
- spec/dummy/app/controllers/application_controller.rb
|
244
269
|
- spec/dummy/log/test.log
|
245
270
|
- spec/dummy/log/development.log
|
@@ -262,12 +287,14 @@ test_files:
|
|
262
287
|
- spec/dummy/config/application.rb
|
263
288
|
- spec/dummy/config/boot.rb
|
264
289
|
- spec/dummy/config/locales/en.yml
|
290
|
+
- spec/dummy/config/locales/susply.en.yml
|
265
291
|
- spec/dummy/config/routes.rb
|
266
292
|
- spec/dummy/bin/setup
|
267
293
|
- spec/dummy/bin/rails
|
268
294
|
- spec/dummy/bin/bundle
|
269
295
|
- spec/dummy/bin/rake
|
270
296
|
- spec/dummy/config.ru
|
297
|
+
- spec/dummy/db/migrate/20150525181508_create_companies.rb
|
271
298
|
- spec/dummy/db/migrate/20150513183555_create_organizations.rb
|
272
299
|
- spec/dummy/db/development.sqlite3
|
273
300
|
- spec/dummy/db/schema.rb
|
@@ -280,3 +307,5 @@ test_files:
|
|
280
307
|
- spec/models/susply/payment_spec.rb
|
281
308
|
- spec/models/susply/subscription_spec.rb
|
282
309
|
- spec/models/susply/plan_spec.rb
|
310
|
+
- spec/controllers/susply/renovations_controller_spec.rb
|
311
|
+
- spec/controllers/susply/change_plans_controller_spec.rb
|