FIX: Campaign banner should link to pricing table when enabled (#212)

If the new pricing table is enabled the campaign banner should link to
the pricing table route.
This commit is contained in:
Blake Erickson 2024-05-15 11:44:27 -06:00 committed by GitHub
parent 512f37a1d3
commit 542af4cf16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 33 additions and 2 deletions

View File

@ -36,7 +36,7 @@
</LinkTo> </LinkTo>
{{else}} {{else}}
<LinkTo <LinkTo
@route="subscribe" @route={{this.subscribeRoute}}
class="btn btn-primary campaign-banner-info-button" class="btn btn-primary campaign-banner-info-button"
> >
{{d-icon "far-heart"}} {{d-icon "far-heart"}}

View File

@ -32,6 +32,7 @@ export default Component.extend({
amountRaised: setting("discourse_subscriptions_campaign_amount_raised"), amountRaised: setting("discourse_subscriptions_campaign_amount_raised"),
goalTarget: setting("discourse_subscriptions_campaign_goal"), goalTarget: setting("discourse_subscriptions_campaign_goal"),
product: setting("discourse_subscriptions_campaign_product"), product: setting("discourse_subscriptions_campaign_product"),
pricingTableEnabled: setting("discourse_subscriptions_pricing_table_enabled"),
showContributors: setting( showContributors: setting(
"discourse_subscriptions_campaign_show_contributors" "discourse_subscriptions_campaign_show_contributors"
), ),
@ -126,7 +127,8 @@ export default Component.extend({
const showOnRoute = const showOnRoute =
currentRoute !== "discovery.s" && currentRoute !== "discovery.s" &&
!currentRoute.split(".")[0].includes("admin") && !currentRoute.split(".")[0].includes("admin") &&
currentRoute.split(".")[0] !== "subscribe"; currentRoute.split(".")[0] !== "subscribe" &&
currentRoute.split(".")[0] !== "subscriptions";
if (!this.site.show_campaign_banner) { if (!this.site.show_campaign_banner) {
return false; return false;
@ -166,6 +168,14 @@ export default Component.extend({
); );
}, },
@discourseComputed
subscribeRoute() {
if (this.pricingTableEnabled) {
return "subscriptions";
}
return "subscribe";
},
@discourseComputed @discourseComputed
isGoalMet() { isGoalMet() {
const currentVolume = this.subscriberGoal const currentVolume = this.subscriberGoal

View File

@ -40,6 +40,16 @@ RSpec.describe "Pricing Table", type: :system, js: true do
expect(uri.path).to eq("/s/subscriptions") expect(uri.path).to eq("/s/subscriptions")
end end
it "Links to the pricing table page from the campaign banner" do
sign_in(admin)
SiteSetting.discourse_subscriptions_campaign_enabled = true
visit("/")
link = find(".campaign-banner-info-button")
uri = URI.parse(link[:href])
expect(uri.path).to eq("/s/subscriptions")
end
it "Links to the old page when disabled" do it "Links to the old page when disabled" do
sign_in(admin) sign_in(admin)
SiteSetting.discourse_subscriptions_pricing_table_enabled = false SiteSetting.discourse_subscriptions_pricing_table_enabled = false
@ -50,6 +60,17 @@ RSpec.describe "Pricing Table", type: :system, js: true do
expect(uri.path).to eq("/s") expect(uri.path).to eq("/s")
end end
it "Links to the old page from the campaign banner when disabled" do
sign_in(admin)
SiteSetting.discourse_subscriptions_pricing_table_enabled = false
SiteSetting.discourse_subscriptions_campaign_enabled = true
visit("/")
link = find(".campaign-banner-info-button")
uri = URI.parse(link[:href])
expect(uri.path).to eq("/s")
end
it "Old subscribe page still works when disabled" do it "Old subscribe page still works when disabled" do
sign_in(admin) sign_in(admin)
SiteSetting.discourse_subscriptions_pricing_table_enabled = false SiteSetting.discourse_subscriptions_pricing_table_enabled = false