Web Push: add policy to API

This commit is contained in:
Vyr Cossont 2025-01-31 12:34:20 -08:00
commit c0e53662cf
10 changed files with 121 additions and 4 deletions

View file

@ -41,6 +41,7 @@ func (suite *PushTestSuite) putSubscription(
tokenFixtureName string,
alertsMention *bool,
alertsStatus *bool,
policy *string,
requestJson *string,
expectedHTTPStatus int,
) (*apimodel.WebPushSubscription, error) {
@ -68,6 +69,9 @@ func (suite *PushTestSuite) putSubscription(
if alertsStatus != nil {
ctx.Request.Form["data[alerts][status]"] = []string{strconv.FormatBool(*alertsStatus)}
}
if policy != nil {
ctx.Request.Form["data[policy]"] = []string{*policy}
}
}
// trigger the handler
@ -104,11 +108,13 @@ func (suite *PushTestSuite) TestPutSubscription() {
alertsMention := true
alertsStatus := false
policy := "followed"
subscription, err := suite.putSubscription(
accountFixtureName,
tokenFixtureName,
&alertsMention,
&alertsStatus,
&policy,
nil,
200,
)
@ -120,6 +126,7 @@ func (suite *PushTestSuite) TestPutSubscription() {
suite.False(subscription.Alerts.Status)
// Omitted event types should default to off.
suite.False(subscription.Alerts.Favourite)
suite.Equal(apimodel.WebPushNotificationPolicyFollowed, subscription.Policy)
}
}
@ -134,7 +141,8 @@ func (suite *PushTestSuite) TestPutSubscriptionJSON() {
"alerts": {
"mention": true,
"status": false
}
},
"policy": "followed"
}
}`
subscription, err := suite.putSubscription(
@ -142,6 +150,7 @@ func (suite *PushTestSuite) TestPutSubscriptionJSON() {
tokenFixtureName,
nil,
nil,
nil,
&requestJson,
200,
)
@ -153,6 +162,7 @@ func (suite *PushTestSuite) TestPutSubscriptionJSON() {
suite.False(subscription.Alerts.Status)
// Omitted event types should default to off.
suite.False(subscription.Alerts.Favourite)
suite.Equal(apimodel.WebPushNotificationPolicyFollowed, subscription.Policy)
}
}
@ -170,6 +180,7 @@ func (suite *PushTestSuite) TestPutMissingSubscription() {
&alertsMention,
&alertsStatus,
nil,
nil,
404,
)
suite.NoError(err)