diff --git a/assets/javascripts/discourse/routes/subscribe.js b/assets/javascripts/discourse/routes/subscribe.js index 0051f5c..2b5737b 100644 --- a/assets/javascripts/discourse/routes/subscribe.js +++ b/assets/javascripts/discourse/routes/subscribe.js @@ -1,3 +1,16 @@ import Route from "@ember/routing/route"; +import { service } from "@ember/service"; -export default Route.extend(); +export default class SubscribeRoute extends Route { + @service router; + @service siteSettings; + + beforeModel() { + const pricingTableEnabled = + this.siteSettings.discourse_subscriptions_pricing_table_enabled; + + if (pricingTableEnabled) { + this.router.transitionTo("subscriptions"); + } + } +} diff --git a/assets/javascripts/discourse/routes/subscriptions.js b/assets/javascripts/discourse/routes/subscriptions.js new file mode 100644 index 0000000..893c239 --- /dev/null +++ b/assets/javascripts/discourse/routes/subscriptions.js @@ -0,0 +1,16 @@ +import Route from "@ember/routing/route"; +import { service } from "@ember/service"; + +export default class SubscriptionsRoute extends Route { + @service router; + @service siteSettings; + + beforeModel() { + const pricingTableEnabled = + this.siteSettings.discourse_subscriptions_pricing_table_enabled; + + if (!pricingTableEnabled) { + this.router.transitionTo("subscribe"); + } + } +} diff --git a/spec/system/pricing_table_spec.rb b/spec/system/pricing_table_spec.rb index 880bc7d..dd4e605 100644 --- a/spec/system/pricing_table_spec.rb +++ b/spec/system/pricing_table_spec.rb @@ -102,4 +102,19 @@ RSpec.describe "Pricing Table", type: :system, js: true do text: "Log in or create an account to subscribe.", ) end + + it "Redirects to the pricing table page if enabled" do + sign_in(admin) + visit("/s") + + try_until_success { expect(current_url).to match("/s/subscriptions") } + end + + it "Redirects to /s if pricing table is not enabled" do + sign_in(admin) + SiteSetting.discourse_subscriptions_campaign_enabled = false + visit("/s/subscriptions") + + try_until_success { expect(current_url).to match("/s") } + end end