2021-10-04 13:24:19 +00:00
/ *
GoToSocial
2021-12-20 17:42:19 +00:00
Copyright ( C ) 2021 - 2022 GoToSocial Authors admin @ gotosocial . org
2021-10-04 13:24:19 +00:00
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 streaming_test
import (
"context"
"testing"
"github.com/stretchr/testify/suite"
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
"github.com/superseriousbusiness/gotosocial/testrig"
)
type NotificationTestSuite struct {
StreamingTestSuite
}
func ( suite * NotificationTestSuite ) TestStreamNotification ( ) {
account := suite . testAccounts [ "local_account_1" ]
openStream , errWithCode := suite . streamingProcessor . OpenStreamForAccount ( context . Background ( ) , account , "user" )
suite . NoError ( errWithCode )
followAccount := suite . testAccounts [ "remote_account_1" ]
followAccountAPIModel , err := testrig . NewTestTypeConverter ( suite . db ) . AccountToAPIAccountPublic ( context . Background ( ) , followAccount )
suite . NoError ( err )
notification := & apimodel . Notification {
ID : "01FH57SJCMDWQGEAJ0X08CE3WV" ,
Type : "follow" ,
2022-05-24 16:21:27 +00:00
CreatedAt : "2021-10-04T08:52:36Z" ,
2021-10-04 13:24:19 +00:00
Account : followAccountAPIModel ,
}
err = suite . streamingProcessor . StreamNotificationToAccount ( notification , account )
suite . NoError ( err )
msg := <- openStream . Messages
2022-05-24 16:21:27 +00:00
suite . Equal ( ` { "id":"01FH57SJCMDWQGEAJ0X08CE3WV","type":"follow","created_at":"2021-10-04T08:52:36Z","account": { "id":"01F8MH5ZK5VRH73AKHQM6Y9VNX","username":"foss_satan","acct":"foss_satan@fossbros-anonymous.io","display_name":"big gerald","locked":false,"bot":false,"created_at":"2021-09-26T10:52:36Z","note":"i post about like, i dunno, stuff, or whatever!!!!","url":"http://fossbros-anonymous.io/@foss_satan","avatar":"","avatar_static":"","header":"","header_static":"","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2021-09-20T10:40:37Z","emojis":[],"fields":[]}} ` , msg . Payload )
2021-10-04 13:24:19 +00:00
}
func TestNotificationTestSuite ( t * testing . T ) {
suite . Run ( t , & NotificationTestSuite { } )
}