After the engine url got moved to /subscriptions, the tests had to be adapted.
The subscribe controller does not return products anymore after moving to the stripe pricing table, so the respective tests were removed.
We test three conditions:
1. Make sure the customer email is prefilled, if there is a logged in discourse user
2. The pricing table also displays, if there is no logged in discourse user
3. If the pricing table is not configured, the pricing table element does not show up.
This commit adds the new stripe based pricing table.
If the user is logged in, the email field will be prepopulated with the users email.
The pricing table can be configured in the stripe dashboard.
Once the discourse_subscriptions_pricing_table setting is filled with the pricing table embed code from the stripe dashboard,
the pricing table will be displayed on /subscriptions
For more details see https://stripe.com/docs/payments/checkout/pricing-table
* DEV: Fix SCSS deprecations
Followup to https://github.com/discourse/discourse-subscriptions/pull/171
Also fixes:
```
╷
581 │ hsl(random(360), 100, 50);
│ ^^^^^^^^^^^^^^^^^^^^^^^^^
╵
/Users/pmusaraj/Projects/discourse/discourse-subscriptions.scss 581:7 root stylesheet
Deprecation Warning: $lightness: Passing a number without unit % (50) is deprecated.
```
* More cleanup
Sample warning was:
```
Using / for division outside of calc() is deprecated and will be removed in Dart Sass 2.0.0.
Recommendation: math.div($sidebar-height, 1.2) or calc($sidebar-height / 1.2)
More info and automated migrator: https://sass-lang.com/d/slash-div
```
- Adds the following fields to the subscription payment form:
- Cardholder Name
- Country
- Postal Code
- Address Line 1
- City
- State or Province
- Stripe recommends Cardholder Name & Country for verification; Cardholder Name, Country, and State/Province for US/Canada selections are required fields
- All fields are passed to Stripe for verification on submit
- Fields are also captured on the customer record in Stripe, under Billing Details
At the moment, paying for a product typically involves first clicking
the subscribe link added to the navigation bar, selecting a product and
then adding card details to to make the purchase.
This change skips the product selection step if the site has only one
product.