mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 11:42:25 -05: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