diff options
Diffstat (limited to 'internal/federation')
-rw-r--r-- | internal/federation/dereferencing/account_test.go | 20 | ||||
-rw-r--r-- | internal/federation/dereferencing/dereferencer_test.go | 15 |
2 files changed, 35 insertions, 0 deletions
diff --git a/internal/federation/dereferencing/account_test.go b/internal/federation/dereferencing/account_test.go index cb6f9588c..75c02af75 100644 --- a/internal/federation/dereferencing/account_test.go +++ b/internal/federation/dereferencing/account_test.go @@ -51,6 +51,26 @@ func (suite *AccountTestSuite) TestDereferenceGroup() { suite.Equal(ap.ActorGroup, dbGroup.ActorType) } +func (suite *AccountTestSuite) TestDereferenceService() { + fetchingAccount := suite.testAccounts["local_account_1"] + + serviceURL := testrig.URLMustParse("https://owncast.example.org/federation/user/rgh") + service, err := suite.dereferencer.GetRemoteAccount(context.Background(), fetchingAccount.Username, serviceURL, false, false) + suite.NoError(err) + suite.NotNil(service) + suite.NotNil(service) + + // service values should be set + suite.Equal("https://owncast.example.org/federation/user/rgh", service.URI) + suite.Equal("https://owncast.example.org/federation/user/rgh", service.URL) + + // service should be in the database + dbService, err := suite.db.GetAccountByURI(context.Background(), service.URI) + suite.NoError(err) + suite.Equal(service.ID, dbService.ID) + suite.Equal(ap.ActorService, dbService.ActorType) +} + func TestAccountTestSuite(t *testing.T) { suite.Run(t, new(AccountTestSuite)) } diff --git a/internal/federation/dereferencing/dereferencer_test.go b/internal/federation/dereferencing/dereferencer_test.go index 339490e5d..96ec7869f 100644 --- a/internal/federation/dereferencing/dereferencer_test.go +++ b/internal/federation/dereferencing/dereferencer_test.go @@ -46,6 +46,7 @@ type DereferencerStandardTestSuite struct { testRemoteStatuses map[string]vocab.ActivityStreamsNote testRemotePeople map[string]vocab.ActivityStreamsPerson testRemoteGroups map[string]vocab.ActivityStreamsGroup + testRemoteServices map[string]vocab.ActivityStreamsService testRemoteAttachments map[string]testrig.RemoteAttachmentFile testAccounts map[string]*gtsmodel.Account @@ -60,6 +61,7 @@ func (suite *DereferencerStandardTestSuite) SetupTest() { suite.testRemoteStatuses = testrig.NewTestFediStatuses() suite.testRemotePeople = testrig.NewTestFediPeople() suite.testRemoteGroups = testrig.NewTestFediGroups() + suite.testRemoteServices = testrig.NewTestFediServices() suite.testRemoteAttachments = testrig.NewTestFediAttachments("../../../testrig/media") suite.db = testrig.NewTestDB() @@ -126,6 +128,19 @@ func (suite *DereferencerStandardTestSuite) mockTransportController() transport. responseType = "application/activity+json" } + if service, ok := suite.testRemoteServices[req.URL.String()]; ok { + serviceI, err := streams.Serialize(service) + if err != nil { + panic(err) + } + serviceJson, err := json.Marshal(serviceI) + if err != nil { + panic(err) + } + responseBytes = serviceJson + responseType = "application/activity+json" + } + if attachment, ok := suite.testRemoteAttachments[req.URL.String()]; ok { responseBytes = attachment.Data responseType = attachment.ContentType |