paid_up 0.7.5 → 0.7.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +1 -1
  4. data/VERSION +1 -1
  5. data/app/models/paid_up/ability.rb +7 -3
  6. data/coverage/.last_run.json +1 -1
  7. data/coverage/.resultset.json +1430 -33
  8. data/lib/paid_up/engine.rb +9 -4
  9. data/lib/paid_up/mixins/paid_for.rb +1 -1
  10. data/paid_up.gemspec +13 -5
  11. data/spec/controllers/paid_up/plans_spec.rb +2 -2
  12. data/spec/controllers/paid_up/subscriptions_spec.rb +25 -46
  13. data/spec/dummy/config/application.rb +12 -0
  14. data/spec/dummy/coverage/.last_run.json +5 -0
  15. data/spec/dummy/coverage/.resultset.json +155 -0
  16. data/spec/dummy/coverage/.resultset.json.lock +0 -0
  17. data/spec/dummy/db/development.sqlite3 +0 -0
  18. data/spec/dummy/db/seeds.rb +88 -14
  19. data/spec/dummy/db/test.sqlite3 +0 -0
  20. data/spec/dummy/log/development.log +2281 -0
  21. data/spec/factories/group.rb +10 -0
  22. data/spec/factories/user.rb +19 -1
  23. data/spec/models/group_spec.rb +5 -5
  24. data/spec/models/paid_up/feature_spec.rb +2 -1
  25. data/spec/models/paid_up/plan_spec.rb +3 -2
  26. data/spec/models/user_spec.rb +47 -32
  27. data/spec/rails_helper.rb +18 -1
  28. data/spec/routing/paid_up/plans_spec.rb +1 -1
  29. data/spec/routing/paid_up/subscription_spec.rb +1 -1
  30. data/spec/support/features.rb +5 -0
  31. data/spec/support/groups.rb +4 -32
  32. data/spec/support/loaded_site.rb +7 -0
  33. data/spec/support/plans.rb +7 -0
  34. data/spec/support/users.rb +8 -0
  35. data/spec/views/paid_up/plans_spec.rb +1 -2
  36. data/spec/views/paid_up/subscriptions_spec.rb +2 -3
  37. metadata +23 -4
  38. data/spec/support/plans_and_features.rb +0 -163
  39. data/spec/support/subscribers.rb +0 -44
@@ -1,163 +0,0 @@
1
- shared_context "plans and features" do
2
- include_context 'stripe'
3
-
4
- ############
5
- # Features #
6
- ############
7
-
8
- let!(:ad_free_feature) { PaidUp::Feature.find_by_slug('ad_free') }
9
- let!(:groups_feature) { PaidUp::Feature.find_by_slug('groups') }
10
- let!(:doodads_feature) { PaidUp::Feature.find_by_slug('doodads') }
11
-
12
- #########
13
- # Plans #
14
- #########
15
- let!(:anonymous_plan) {
16
- Stripe::Plan.find_or_create_by_id(
17
- 'anonymous-plan',
18
- {
19
- :amount => 0,
20
- :interval => 'month',
21
- :name => 'Anonymous Plan',
22
- :currency => 'usd',
23
- :id => 'anonymous-plan'
24
- }
25
- )
26
- FactoryGirl.create(
27
- :plan,
28
- title: 'Anonymous',
29
- stripe_id: 'anonymous-plan',
30
- sort_order: -1
31
- ).reload
32
- }
33
- let!(:free_plan) {
34
- Stripe::Plan.find_or_create_by_id(
35
- 'free-plan',
36
- {
37
- :amount => 0,
38
- :interval => 'month',
39
- :name => 'Free Plan',
40
- :currency => 'usd',
41
- :id => 'free-plan'
42
- }
43
- )
44
- FactoryGirl.create(
45
- :plan,
46
- title: 'Free',
47
- stripe_id: 'free-plan',
48
- sort_order: 0
49
- ).reload
50
- }
51
- let!(:no_ads_plan) {
52
- Stripe::Plan.find_or_create_by_id(
53
- 'no-ads-plan',
54
- {
55
- :amount => 100,
56
- :interval => 'month',
57
- :name => 'No Ads Plan',
58
- :currency => 'usd',
59
- :id => 'no-ads-plan'
60
- }
61
- )
62
- FactoryGirl.create(
63
- :plan,
64
- title: 'No Ads',
65
- stripe_id: 'no-ads-plan',
66
- sort_order: 1
67
- ).reload
68
- }
69
- let!(:ad_free_no_ads_plan_feature_setting) {
70
- FactoryGirl.create(
71
- :plan_feature_setting,
72
- plan_id: no_ads_plan.id,
73
- feature: 'ad_free',
74
- setting: true
75
- )
76
- }
77
- let!(:group_leader_plan) {
78
- Stripe::Plan.find_or_create_by_id(
79
- 'group-leader-plan',
80
- {
81
- :amount => 500,
82
- :interval => 'month',
83
- :name => 'Group Leader Plan',
84
- :currency => 'usd',
85
- :id => 'group-leader-plan'
86
- }
87
- )
88
- FactoryGirl.create(
89
- :plan,
90
- title: 'Group Leader',
91
- stripe_id: 'group-leader-plan',
92
- sort_order: 2
93
- ).reload
94
- }
95
- let!(:ad_free_group_leader_plan_feature_setting) {
96
- FactoryGirl.create(
97
- :plan_feature_setting,
98
- plan_id: group_leader_plan.id,
99
- feature: 'ad_free',
100
- setting: true
101
- )
102
- }
103
- let!(:groups_group_leader_plan_feature_setting) {
104
- FactoryGirl.create(
105
- :plan_feature_setting,
106
- plan_id: group_leader_plan.id,
107
- feature: 'groups',
108
- setting: 1
109
- )
110
- }
111
- let!(:doodads_group_leader_plan_feature_setting) {
112
- FactoryGirl.create(
113
- :plan_feature_setting,
114
- plan_id: group_leader_plan.id,
115
- feature: 'doodads',
116
- setting: 5
117
- )
118
- }
119
- let!(:professional_plan) {
120
- Stripe::Plan.find_or_create_by_id(
121
- 'professional-plan',
122
- {
123
- :amount => 1000,
124
- :interval => 'month',
125
- :name => 'Professional Plan',
126
- :currency => 'usd',
127
- :id => 'professional-plan'
128
- }
129
- )
130
- FactoryGirl.create(
131
- :plan,
132
- title: 'Professional',
133
- description: 'This is the description of the Professional plan.',
134
- stripe_id: 'professional-plan',
135
- sort_order: 3
136
- ).reload
137
- }
138
- let!(:ad_free_professional_plan_feature_setting) {
139
- FactoryGirl.create(
140
- :plan_feature_setting,
141
- plan_id: professional_plan.id,
142
- feature: 'ad_free',
143
- setting: true
144
- )
145
- }
146
- let!(:groups_professional_plan_feature_setting) {
147
- FactoryGirl.create(
148
- :plan_feature_setting,
149
- plan_id: professional_plan.id,
150
- feature: 'groups',
151
- setting: PaidUp::Unlimited.to_i(:db)
152
- )
153
- }
154
- let!(:doodads_professional_plan_feature_setting) {
155
- FactoryGirl.create(
156
- :plan_feature_setting,
157
- plan_id: professional_plan.id,
158
- feature: 'doodads',
159
- setting: PaidUp::Unlimited.to_i(:db)
160
- )
161
- }
162
-
163
- end
@@ -1,44 +0,0 @@
1
- shared_context 'subscribers' do
2
- include_context 'plans and features'
3
- include_context 'stripe'
4
-
5
- ############
6
- # Subscribers #
7
- ############
8
-
9
- let(:free_subscriber) {
10
- subscriber = FactoryGirl.create(
11
- :subscriber,
12
- name: 'Free Subscriber'
13
- )
14
- subscriber.subscribe_to_free_plan
15
- subscriber
16
- }
17
-
18
- let(:no_ads_subscriber) {
19
- subscriber = FactoryGirl.create(
20
- :subscriber,
21
- name: 'No Ads Subscriber'
22
- )
23
- subscriber.subscribe_to_plan no_ads_plan, working_stripe_token(subscriber)
24
- subscriber
25
- }
26
-
27
- let(:group_leader_subscriber) {
28
- subscriber = FactoryGirl.create(
29
- :subscriber,
30
- name: 'Group Leader Subscriber'
31
- )
32
- subscriber.subscribe_to_plan group_leader_plan, working_stripe_token(subscriber)
33
- subscriber
34
- }
35
-
36
- let(:professional_subscriber) {
37
- subscriber = FactoryGirl.create(
38
- :subscriber,
39
- name: 'Professional Subscriber'
40
- )
41
- subscriber.subscribe_to_plan professional_plan, working_stripe_token(subscriber)
42
- subscriber
43
- }
44
- end