diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs index 1644d9e..69d785d 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs @@ -6,28 +6,34 @@ {{/link-to}}

- - - - - - - - {{#each model as |product|}} - - - - - - - {{/each}} -
{{i18n 'discourse_patrons.admin.products.product.name'}}{{i18n 'discourse_patrons.admin.products.product.created_at'}}{{i18n 'discourse_patrons.admin.products.product.active'}}
{{product.name}}{{format-date product.createdFormatted}}{{product.active}} - {{#link-to "adminPlugins.discourse-patrons.products.show" product.id class="btn no-text btn-icon"}} - {{d-icon "far-edit"}} - {{/link-to}} - {{d-button - action=(route-action "destroyProduct") - actionParam=product - icon="trash-alt" - class="btn-danger btn no-text btn-icon"}} -
+{{#if model}} + + + + + + + + {{#each model as |product|}} + + + + + + + {{/each}} +
{{i18n 'discourse_patrons.admin.products.product.name'}}{{i18n 'discourse_patrons.admin.products.product.created_at'}}{{i18n 'discourse_patrons.admin.products.product.active'}}
{{product.name}}{{format-date product.createdFormatted}}{{product.active}} + {{#link-to "adminPlugins.discourse-patrons.products.show" product.id class="btn no-text btn-icon"}} + {{d-icon "far-edit"}} + {{/link-to}} + {{d-button + action=(route-action "destroyProduct") + actionParam=product + icon="trash-alt" + class="btn-danger btn no-text btn-icon"}} +
+{{else}} +

+ {{i18n 'discourse_patrons.admin.products.product_help'}} +

+{{/if}} diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 2b8e780..9d2b425 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -76,6 +76,7 @@ en: plan_help: Create a pricing plan to subscribe customers to this product active: Active created_at: Created + product_help: Before cutomers can subscribe to your site, you need to create at least one product and an associated plan. plans: title: Pricing Plans operations: diff --git a/spec/requests/subscriptions_controller_spec.rb b/spec/requests/subscriptions_controller_spec.rb index 24e9aeb..b3d87b8 100644 --- a/spec/requests/subscriptions_controller_spec.rb +++ b/spec/requests/subscriptions_controller_spec.rb @@ -27,12 +27,21 @@ module DiscoursePatrons let(:group) { Fabricate(:group, name: group_name) } context "unauthorized group" do + before do + ::Stripe::Subscription.expects(:create).returns(status: 'active') + end + it "does not add the user to the admins group" do ::Stripe::Plan.expects(:retrieve).returns(metadata: { group_name: 'admins' }) - ::Stripe::Subscription.expects(:create).returns(status: 'active') post "/patrons/subscriptions.json", params: { plan: 'plan_1234', customer: 'cus_1234' } expect(user.admin).to eq false end + + it "does not add the user to other group" do + ::Stripe::Plan.expects(:retrieve).returns(metadata: { group_name: 'other' }) + post "/patrons/subscriptions.json", params: { plan: 'plan_1234', customer: 'cus_1234' } + expect(user.groups).to be_empty + end end context "plan has group in metadata" do @@ -46,6 +55,8 @@ module DiscoursePatrons expect { post "/patrons/subscriptions.json", params: { plan: 'plan_1234', customer: 'cus_1234' } }.not_to change { group.users.count } + + expect(user.groups).to be_empty end it "adds the user to the group when the subscription is active" do @@ -54,6 +65,8 @@ module DiscoursePatrons expect { post "/patrons/subscriptions.json", params: { plan: 'plan_1234', customer: 'cus_1234' } }.to change { group.users.count } + + expect(user.groups).not_to be_empty end it "adds the user to the group when the subscription is trialing" do @@ -62,6 +75,8 @@ module DiscoursePatrons expect { post "/patrons/subscriptions.json", params: { plan: 'plan_1234', customer: 'cus_1234' } }.to change { group.users.count } + + expect(user.groups).not_to be_empty end end end