summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-03-10 11:59:55 +0100
committerLibravatar tobi <tobi.smethurst@protonmail.com>2024-03-11 10:52:12 +0100
commit0bd95d7b71ae71d801b0fbb643598eb0ccd1b8f5 (patch)
tree87fbf0b9d8fc158ff4857ad8f407dc47389f2327 /internal
parent[chore] seperate snapshot from release in goreleaser (#2740) (diff)
downloadgotosocial-0.14.2.tar.xz
[bugfix] Don't error when populating MovedTo if account not found (#2741)v0.14.2
* [bugfix] Don't error when populating MovedTo if account not found * test the thing
Diffstat (limited to 'internal')
-rw-r--r--internal/db/bundb/account.go5
-rw-r--r--internal/db/bundb/account_test.go11
2 files changed, 14 insertions, 2 deletions
diff --git a/internal/db/bundb/account.go b/internal/db/bundb/account.go
index d2c9c2f51..bf618ef41 100644
--- a/internal/db/bundb/account.go
+++ b/internal/db/bundb/account.go
@@ -305,12 +305,13 @@ func (a *accountDB) PopulateAccount(ctx context.Context, account *gtsmodel.Accou
}
if account.MovedTo == nil && account.MovedToURI != "" {
- // Account movedTo is not set, fetch from database.
+ // Account movedTo is not set, try to fetch from database,
+ // but only error on real errors since this field is optional.
account.MovedTo, err = a.state.DB.GetAccountByURI(
gtscontext.SetBarebones(ctx),
account.MovedToURI,
)
- if err != nil {
+ if err != nil && !errors.Is(err, db.ErrNoEntries) {
errs.Appendf("error populating moved to account: %w", err)
}
}
diff --git a/internal/db/bundb/account_test.go b/internal/db/bundb/account_test.go
index f01964da8..268c25c59 100644
--- a/internal/db/bundb/account_test.go
+++ b/internal/db/bundb/account_test.go
@@ -482,6 +482,17 @@ func (suite *AccountTestSuite) TestCountAccountPinnedNothingPinned() {
suite.Equal(pinned, 0) // This account has nothing pinned.
}
+func (suite *AccountTestSuite) TestPopulateAccountWithUnknownMovedToURI() {
+ testAccount := &gtsmodel.Account{}
+ *testAccount = *suite.testAccounts["local_account_1"]
+
+ // Set test account MovedToURI to something we don't have in the database.
+ // We should not get an error when populating.
+ testAccount.MovedToURI = "https://unknown-instance.example.org/users/someone_we_dont_know"
+ err := suite.db.PopulateAccount(context.Background(), testAccount)
+ suite.NoError(err)
+}
+
func TestAccountTestSuite(t *testing.T) {
suite.Run(t, new(AccountTestSuite))
}