[MM-47560]: In-product: Add support for new fields (back-end and front-end)

Этот коммит содержится в:
emmyni
2022-10-24 13:34:38 -04:00
коммит произвёл GitHub
родитель 3ea6247ec1 532a3c1f22
Коммит 679c23d235
3 изменённых файлов: 39 добавлений и 26 удалений

Просмотреть файл

@@ -515,8 +515,9 @@ func TestGetCloudProducts(t *testing.T) {
SKU: "sku",
PriceID: "price_id",
Family: "family",
RecurringInterval: "recurring_interval",
RecurringInterval: "monthly",
BillingScheme: "billing_scheme",
CrossSellsTo: "",
},
{
ID: "prod_test2",
@@ -526,8 +527,9 @@ func TestGetCloudProducts(t *testing.T) {
SKU: "sku2",
PriceID: "price_id2",
Family: "family2",
RecurringInterval: "recurring_interval2",
RecurringInterval: "monthly",
BillingScheme: "billing_scheme2",
CrossSellsTo: "prod_test3",
},
{
ID: "prod_test3",
@@ -537,29 +539,36 @@ func TestGetCloudProducts(t *testing.T) {
SKU: "sku3",
PriceID: "price_id3",
Family: "family3",
RecurringInterval: "recurring_interval3",
RecurringInterval: "yearly",
BillingScheme: "billing_scheme3",
CrossSellsTo: "prod_test2",
},
}
sanitizedProducts := []*model.Product{
{
ID: "prod_test1",
Name: "name",
PricePerSeat: 10,
SKU: "sku",
ID: "prod_test1",
Name: "name",
PricePerSeat: 10,
SKU: "sku",
RecurringInterval: "monthly",
CrossSellsTo: "",
},
{
ID: "prod_test2",
Name: "name2",
PricePerSeat: 100,
SKU: "sku2",
ID: "prod_test2",
Name: "name2",
PricePerSeat: 100,
SKU: "sku2",
RecurringInterval: "monthly",
CrossSellsTo: "prod_test3",
},
{
ID: "prod_test3",
Name: "name3",
PricePerSeat: 1000,
SKU: "sku3",
ID: "prod_test3",
Name: "name3",
PricePerSeat: 1000,
SKU: "sku3",
RecurringInterval: "yearly",
CrossSellsTo: "prod_test2",
},
}
t.Run("get products for admins", func(t *testing.T) {
@@ -615,8 +624,9 @@ func TestGetCloudProducts(t *testing.T) {
require.Equal(t, returnedProducts[0].Description, "")
require.Equal(t, returnedProducts[0].PriceID, "")
require.Equal(t, returnedProducts[0].Family, model.SubscriptionFamily(""))
require.Equal(t, returnedProducts[0].RecurringInterval, model.RecurringInterval(""))
require.Equal(t, returnedProducts[0].RecurringInterval, model.RecurringInterval("monthly"))
require.Equal(t, returnedProducts[0].BillingScheme, model.BillingScheme(""))
require.Equal(t, returnedProducts[0].CrossSellsTo, "")
require.Equal(t, returnedProducts[1].ID, "prod_test2")
require.Equal(t, returnedProducts[1].Name, "name2")
@@ -625,8 +635,9 @@ func TestGetCloudProducts(t *testing.T) {
require.Equal(t, returnedProducts[1].Description, "")
require.Equal(t, returnedProducts[1].PriceID, "")
require.Equal(t, returnedProducts[1].Family, model.SubscriptionFamily(""))
require.Equal(t, returnedProducts[1].RecurringInterval, model.RecurringInterval(""))
require.Equal(t, returnedProducts[1].RecurringInterval, model.RecurringInterval("monthly"))
require.Equal(t, returnedProducts[1].BillingScheme, model.BillingScheme(""))
require.Equal(t, returnedProducts[1].CrossSellsTo, "prod_test3")
require.Equal(t, returnedProducts[2].ID, "prod_test3")
require.Equal(t, returnedProducts[2].Name, "name3")
@@ -635,7 +646,8 @@ func TestGetCloudProducts(t *testing.T) {
require.Equal(t, returnedProducts[2].Description, "")
require.Equal(t, returnedProducts[2].PriceID, "")
require.Equal(t, returnedProducts[2].Family, model.SubscriptionFamily(""))
require.Equal(t, returnedProducts[2].RecurringInterval, model.RecurringInterval(""))
require.Equal(t, returnedProducts[2].RecurringInterval, model.RecurringInterval("yearly"))
require.Equal(t, returnedProducts[2].BillingScheme, model.BillingScheme(""))
require.Equal(t, returnedProducts[2].CrossSellsTo, "prod_test2")
})
}

Просмотреть файл

@@ -52,13 +52,16 @@ type Product struct {
Family SubscriptionFamily `json:"product_family"`
RecurringInterval RecurringInterval `json:"recurring_interval"`
BillingScheme BillingScheme `json:"billing_scheme"`
CrossSellsTo string `json:"cross_sells_to"`
}
type UserFacingProduct struct {
ID string `json:"id"`
Name string `json:"name"`
SKU string `json:"sku"`
PricePerSeat float64 `json:"price_per_seat"`
ID string `json:"id"`
Name string `json:"name"`
SKU string `json:"sku"`
PricePerSeat float64 `json:"price_per_seat"`
RecurringInterval RecurringInterval `json:"recurring_interval"`
CrossSellsTo string `json:"cross_sells_to"`
}
// AddOn represents an addon to a product.

Просмотреть файл

@@ -416,15 +416,13 @@
</tr>
<tr>
<td align="left" style="font-size:0px;padding:10px 25px;padding-top:0px;padding-right:118px;padding-left:60px;word-break:break-word;">
<div style="font-family:Open Sans, sans-serif;font-size:16px;font-weight:400;line-height:24px;text-align:left;color:#3F4350;">
<mj-raw>
<div style="font-family:Open Sans, sans-serif;font-size:16px;font-weight:400;line-height:24px;text-align:left;color:#3F4350;"><mj-raw>
<ul padding-left="118px" padding-right="118px">
{{ range .Props.BulletListItems}}
<li text-align="left">{{.}}</li>
{{end}}
</ul>
</mj-raw>
</div>
</mj-raw></div>
</td>
</tr>
<tr>