Remove in-product pricing modal (#31187)

* Remove pricing modal. Adjust everywhere to instead open mattermost.com/pricing. When air gapped, don't show buttons to view plans.

* Fix lint

* Further clean up of unused code. Fixes for linter

* fixes for PR feedback

* useExternalLink for opening pricing modal with enriched params

* Fix i17n

* Fix style, tests
Этот коммит содержится в:
Nick Misasi
2025-06-02 14:08:57 -04:00
коммит произвёл GitHub
родитель 6484ae25b7
Коммит 0cacee570a
54 изменённых файлов: 434 добавлений и 2603 удалений

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

@@ -430,113 +430,3 @@ func TestGetCloudProducts(t *testing.T) {
require.Equal(t, returnedProducts[2].CrossSellsTo, "prod_test2")
})
}
func TestGetSelfHostedProducts(t *testing.T) {
mainHelper.Parallel(t)
products := []*model.Product{
{
ID: "prod_test",
Name: "Self-Hosted Professional",
Description: "Ideal for small companies and departments with data security requirements",
PricePerSeat: 10,
SKU: "professional",
PriceID: "price_1JPXbNI67GP2qpb4VuFdFbwQ",
Family: "on-prem",
RecurringInterval: model.RecurringIntervalYearly,
},
{
ID: "prod_test2",
Name: "Self-Hosted Enterprise",
Description: "Built to scale for high-trust organizations and companies in regulated industries.",
PricePerSeat: 30,
SKU: "enterprise",
PriceID: "price_1JPXaVI67GP2qpb4l40bXyRu",
Family: "on-prem",
RecurringInterval: model.RecurringIntervalYearly,
},
}
sanitizedProducts := []*model.Product{
{
ID: "prod_test",
Name: "Self-Hosted Professional",
PricePerSeat: 10,
SKU: "professional",
RecurringInterval: model.RecurringIntervalYearly,
},
{
ID: "prod_test2",
Name: "Self-Hosted Enterprise",
PricePerSeat: 30,
SKU: "enterprise",
RecurringInterval: model.RecurringIntervalYearly,
},
}
t.Run("get products for admins", func(t *testing.T) {
mainHelper.Parallel(t)
th := Setup(t).InitBasic()
defer th.TearDown()
th.Client.Login(context.Background(), th.SystemAdminUser.Email, th.SystemAdminUser.Password)
cloud := mocks.CloudInterface{}
cloud.Mock.On("GetSelfHostedProducts", mock.Anything, mock.Anything).Return(products, nil)
cloudImpl := th.App.Srv().Cloud
defer func() {
th.App.Srv().Cloud = cloudImpl
}()
th.App.Srv().Cloud = &cloud
returnedProducts, r, err := th.Client.GetSelfHostedProducts(context.Background())
require.NoError(t, err)
require.Equal(t, http.StatusOK, r.StatusCode, "Status OK")
require.Equal(t, returnedProducts, products)
})
t.Run("get products for non admins", func(t *testing.T) {
mainHelper.Parallel(t)
th := Setup(t).InitBasic()
defer th.TearDown()
th.Client.Login(context.Background(), th.BasicUser.Email, th.BasicUser.Password)
cloud := mocks.CloudInterface{}
cloud.Mock.On("GetSelfHostedProducts", mock.Anything, mock.Anything).Return(products, nil)
cloudImpl := th.App.Srv().Cloud
defer func() {
th.App.Srv().Cloud = cloudImpl
}()
th.App.Srv().Cloud = &cloud
returnedProducts, r, err := th.Client.GetSelfHostedProducts(context.Background())
require.NoError(t, err)
require.Equal(t, http.StatusOK, r.StatusCode, "Status OK")
require.Equal(t, returnedProducts, sanitizedProducts)
// make a more explicit check
require.Equal(t, returnedProducts[0].ID, "prod_test")
require.Equal(t, returnedProducts[0].Name, "Self-Hosted Professional")
require.Equal(t, returnedProducts[0].SKU, "professional")
require.Equal(t, returnedProducts[0].PricePerSeat, float64(10))
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("year"))
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, "Self-Hosted Enterprise")
require.Equal(t, returnedProducts[1].SKU, "enterprise")
require.Equal(t, returnedProducts[1].PricePerSeat, float64(30))
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("year"))
require.Equal(t, returnedProducts[1].BillingScheme, model.BillingScheme(""))
require.Equal(t, returnedProducts[1].CrossSellsTo, "")
})
}