mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-17 05:33:01 -06:00
[feature] Implement Web Push notification policy (#3721)
* Web Push: add policy column to subscriptions * Web Push: add policy to API * Web Push: test notification policy * go-fmt unrelated file (how did this get thru?)
This commit is contained in:
parent
8b74cad422
commit
27844b7da2
16 changed files with 340 additions and 35 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue