diff options
Diffstat (limited to 'internal/api/client/push/pushsubscriptionpost_test.go')
-rw-r--r-- | internal/api/client/push/pushsubscriptionpost_test.go | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/internal/api/client/push/pushsubscriptionpost_test.go b/internal/api/client/push/pushsubscriptionpost_test.go index bdd22d729..e7e8582df 100644 --- a/internal/api/client/push/pushsubscriptionpost_test.go +++ b/internal/api/client/push/pushsubscriptionpost_test.go @@ -44,6 +44,7 @@ func (suite *PushTestSuite) postSubscription( p256dh *string, alertsMention *bool, alertsStatus *bool, + policy *string, requestJson *string, expectedHTTPStatus int, ) (*apimodel.WebPushSubscription, error) { @@ -80,6 +81,9 @@ func (suite *PushTestSuite) postSubscription( 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 @@ -119,6 +123,7 @@ func (suite *PushTestSuite) TestPostSubscription() { p256dh := "BMYVItYVOX+AHBdtA62Q0i6c+F7MV2Gia3aoDr8mvHkuPBNIOuTLDfmFcnBqoZcQk6BtLcIONbxhHpy2R+mYIUY=" alertsMention := true alertsStatus := false + policy := "followed" subscription, err := suite.postSubscription( accountFixtureName, tokenFixtureName, @@ -127,6 +132,7 @@ func (suite *PushTestSuite) TestPostSubscription() { &p256dh, &alertsMention, &alertsStatus, + &policy, nil, 200, ) @@ -138,6 +144,7 @@ func (suite *PushTestSuite) TestPostSubscription() { suite.False(subscription.Alerts.Status) // Omitted event types should default to off. suite.False(subscription.Alerts.Favourite) + suite.Equal(apimodel.WebPushNotificationPolicyFollowed, subscription.Policy) } } @@ -159,6 +166,7 @@ func (suite *PushTestSuite) TestPostSubscriptionMinimal() { nil, nil, nil, + nil, 200, ) if suite.NoError(err) { @@ -169,6 +177,8 @@ func (suite *PushTestSuite) TestPostSubscriptionMinimal() { suite.False(subscription.Alerts.Mention) suite.False(subscription.Alerts.Status) suite.False(subscription.Alerts.Favourite) + // Policy should default to all. + suite.Equal(apimodel.WebPushNotificationPolicyAll, subscription.Policy) } } @@ -192,6 +202,7 @@ func (suite *PushTestSuite) TestPostInvalidSubscription() { &alertsMention, &alertsStatus, nil, + nil, 422, ) suite.NoError(err) @@ -215,7 +226,8 @@ func (suite *PushTestSuite) TestPostSubscriptionJSON() { "alerts": { "mention": true, "status": false - } + }, + "policy": "followed" } }` subscription, err := suite.postSubscription( @@ -226,6 +238,7 @@ func (suite *PushTestSuite) TestPostSubscriptionJSON() { nil, nil, nil, + nil, &requestJson, 200, ) @@ -237,6 +250,7 @@ func (suite *PushTestSuite) TestPostSubscriptionJSON() { suite.False(subscription.Alerts.Status) // Omitted event types should default to off. suite.False(subscription.Alerts.Favourite) + suite.Equal(apimodel.WebPushNotificationPolicyFollowed, subscription.Policy) } } @@ -263,6 +277,7 @@ func (suite *PushTestSuite) TestPostSubscriptionJSONMinimal() { nil, nil, nil, + nil, &requestJson, 200, ) @@ -274,6 +289,8 @@ func (suite *PushTestSuite) TestPostSubscriptionJSONMinimal() { suite.False(subscription.Alerts.Mention) suite.False(subscription.Alerts.Status) suite.False(subscription.Alerts.Favourite) + // Policy should default to all. + suite.Equal(apimodel.WebPushNotificationPolicyAll, subscription.Policy) } } @@ -306,6 +323,7 @@ func (suite *PushTestSuite) TestPostInvalidSubscriptionJSON() { nil, nil, nil, + nil, &requestJson, 422, ) @@ -323,6 +341,7 @@ func (suite *PushTestSuite) TestPostExistingSubscription() { p256dh := "BMYVItYVOX+AHBdtA62Q0i6c+F7MV2Gia3aoDr8mvHkuPBNIOuTLDfmFcnBqoZcQk6BtLcIONbxhHpy2R+mYIUY=" alertsMention := true alertsStatus := false + policy := "followed" subscription, err := suite.postSubscription( accountFixtureName, tokenFixtureName, @@ -331,6 +350,7 @@ func (suite *PushTestSuite) TestPostExistingSubscription() { &p256dh, &alertsMention, &alertsStatus, + &policy, nil, 200, ) |