mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 12:32:26 -05:00 
			
		
		
		
	
		
			
	
	
		
			138 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			138 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | // GoToSocial | ||
|  | // Copyright (C) GoToSocial Authors admin@gotosocial.org | ||
|  | // SPDX-License-Identifier: AGPL-3.0-or-later | ||
|  | // | ||
|  | // This program is free software: you can redistribute it and/or modify | ||
|  | // it under the terms of the GNU Affero General Public License as published by | ||
|  | // the Free Software Foundation, either version 3 of the License, or | ||
|  | // (at your option) any later version. | ||
|  | // | ||
|  | // This program is distributed in the hope that it will be useful, | ||
|  | // but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  | // GNU Affero General Public License for more details. | ||
|  | // | ||
|  | // You should have received a copy of the GNU Affero General Public License | ||
|  | // along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||
|  | 
 | ||
|  | package stream_test | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"bytes" | ||
|  | 	"context" | ||
|  | 	"encoding/json" | ||
|  | 	"testing" | ||
|  | 
 | ||
|  | 	"github.com/stretchr/testify/suite" | ||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/stream" | ||
|  | 	"github.com/superseriousbusiness/gotosocial/internal/typeutils" | ||
|  | ) | ||
|  | 
 | ||
|  | type StatusUpdateTestSuite struct { | ||
|  | 	StreamTestSuite | ||
|  | } | ||
|  | 
 | ||
|  | func (suite *StatusUpdateTestSuite) TestStreamNotification() { | ||
|  | 	account := suite.testAccounts["local_account_1"] | ||
|  | 
 | ||
|  | 	openStream, errWithCode := suite.streamProcessor.Open(context.Background(), account, "user") | ||
|  | 	suite.NoError(errWithCode) | ||
|  | 
 | ||
|  | 	editedStatus := suite.testStatuses["remote_account_1_status_1"] | ||
|  | 	apiStatus, err := typeutils.NewConverter(&suite.state).StatusToAPIStatus(context.Background(), editedStatus, account) | ||
|  | 	suite.NoError(err) | ||
|  | 
 | ||
|  | 	err = suite.streamProcessor.StatusUpdate(apiStatus, account, []string{stream.TimelineHome}) | ||
|  | 	suite.NoError(err) | ||
|  | 
 | ||
|  | 	msg := <-openStream.Messages | ||
|  | 	dst := new(bytes.Buffer) | ||
|  | 	err = json.Indent(dst, []byte(msg.Payload), "", "  ") | ||
|  | 	suite.NoError(err) | ||
|  | 	suite.Equal(`{ | ||
|  |   "id": "01FVW7JHQFSFK166WWKR8CBA6M", | ||
|  |   "created_at": "2021-09-20T10:40:37.000Z", | ||
|  |   "in_reply_to_id": null, | ||
|  |   "in_reply_to_account_id": null, | ||
|  |   "sensitive": false, | ||
|  |   "spoiler_text": "", | ||
|  |   "visibility": "unlisted", | ||
|  |   "language": "en", | ||
|  |   "uri": "http://fossbros-anonymous.io/users/foss_satan/statuses/01FVW7JHQFSFK166WWKR8CBA6M", | ||
|  |   "url": "http://fossbros-anonymous.io/@foss_satan/statuses/01FVW7JHQFSFK166WWKR8CBA6M", | ||
|  |   "replies_count": 0, | ||
|  |   "reblogs_count": 0, | ||
|  |   "favourites_count": 0, | ||
|  |   "favourited": false, | ||
|  |   "reblogged": false, | ||
|  |   "muted": false, | ||
|  |   "bookmarked": false, | ||
|  |   "pinned": false, | ||
|  |   "content": "dark souls status bot: \"thoughts of dog\"", | ||
|  |   "reblog": null, | ||
|  |   "account": { | ||
|  |     "id": "01F8MH5ZK5VRH73AKHQM6Y9VNX", | ||
|  |     "username": "foss_satan", | ||
|  |     "acct": "foss_satan@fossbros-anonymous.io", | ||
|  |     "display_name": "big gerald", | ||
|  |     "locked": false, | ||
|  |     "discoverable": true, | ||
|  |     "bot": false, | ||
|  |     "created_at": "2021-09-26T10:52:36.000Z", | ||
|  |     "note": "i post about like, i dunno, stuff, or whatever!!!!", | ||
|  |     "url": "http://fossbros-anonymous.io/@foss_satan", | ||
|  |     "avatar": "", | ||
|  |     "avatar_static": "", | ||
|  |     "header": "http://localhost:8080/assets/default_header.png", | ||
|  |     "header_static": "http://localhost:8080/assets/default_header.png", | ||
|  |     "followers_count": 0, | ||
|  |     "following_count": 0, | ||
|  |     "statuses_count": 3, | ||
|  |     "last_status_at": "2021-09-11T09:40:37.000Z", | ||
|  |     "emojis": [], | ||
|  |     "fields": [] | ||
|  |   }, | ||
|  |   "media_attachments": [ | ||
|  |     { | ||
|  |       "id": "01FVW7RXPQ8YJHTEXYPE7Q8ZY0", | ||
|  |       "type": "image", | ||
|  |       "url": "http://localhost:8080/fileserver/01F8MH5ZK5VRH73AKHQM6Y9VNX/attachment/original/01FVW7RXPQ8YJHTEXYPE7Q8ZY0.jpg", | ||
|  |       "text_url": "http://localhost:8080/fileserver/01F8MH5ZK5VRH73AKHQM6Y9VNX/attachment/original/01FVW7RXPQ8YJHTEXYPE7Q8ZY0.jpg", | ||
|  |       "preview_url": "http://localhost:8080/fileserver/01F8MH5ZK5VRH73AKHQM6Y9VNX/attachment/small/01FVW7RXPQ8YJHTEXYPE7Q8ZY0.jpg", | ||
|  |       "remote_url": "http://fossbros-anonymous.io/attachments/original/13bbc3f8-2b5e-46ea-9531-40b4974d9912.jpg", | ||
|  |       "preview_remote_url": "http://fossbros-anonymous.io/attachments/small/a499f55b-2d1e-4acd-98d2-1ac2ba6d79b9.jpg", | ||
|  |       "meta": { | ||
|  |         "original": { | ||
|  |           "width": 472, | ||
|  |           "height": 291, | ||
|  |           "size": "472x291", | ||
|  |           "aspect": 1.6219932 | ||
|  |         }, | ||
|  |         "small": { | ||
|  |           "width": 472, | ||
|  |           "height": 291, | ||
|  |           "size": "472x291", | ||
|  |           "aspect": 1.6219932 | ||
|  |         }, | ||
|  |         "focus": { | ||
|  |           "x": 0, | ||
|  |           "y": 0 | ||
|  |         } | ||
|  |       }, | ||
|  |       "description": "tweet from thoughts of dog: i drank. all the water. in my bowl. earlier. but just now. i returned. to the same bowl. and it was. full again.. the bowl. is haunted", | ||
|  |       "blurhash": "LARysgM_IU_3~pD%M_Rj_39FIAt6" | ||
|  |     } | ||
|  |   ], | ||
|  |   "mentions": [], | ||
|  |   "tags": [], | ||
|  |   "emojis": [], | ||
|  |   "card": null, | ||
|  |   "poll": null | ||
|  | }`, dst.String()) | ||
|  | 	suite.Equal(msg.Event, "status.update") | ||
|  | } | ||
|  | 
 | ||
|  | func TestStatusUpdateTestSuite(t *testing.T) { | ||
|  | 	suite.Run(t, &StatusUpdateTestSuite{}) | ||
|  | } |