summaryrefslogtreecommitdiff
path: root/internal/api
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-06-26 15:01:16 +0000
committerLibravatar GitHub <noreply@github.com>2024-06-26 16:01:16 +0100
commit21bb324156f582e918a097ea744e52fc21b2ddf4 (patch)
tree50db5cfd42e26224591f59ff62de14a3715677b5 /internal/api
parent[docs] restructure federation section (#3038) (diff)
downloadgotosocial-21bb324156f582e918a097ea744e52fc21b2ddf4.tar.xz
[chore] media and emoji refactoring (#3000)
* start updating media manager interface ready for storing attachments / emoji right away * store emoji and media as uncached immediately, then (re-)cache on Processing{}.Load() * remove now unused media workers * fix tests and issues * fix another test! * fix emoji activitypub uri setting behaviour, fix remainder of test compilation issues * fix more tests * fix (most of) remaining tests, add debouncing to repeatedly failing media / emojis * whoops, rebase issue * remove kim's whacky experiments * do some reshuffling, ensure emoji uri gets set * ensure marked as not cached on cleanup * tweaks to media / emoji processing to handle context canceled better * ensure newly fetched emojis actually get set in returned slice * use different varnames to be a bit more obvious * move emoji refresh rate limiting to dereferencer * add exported dereferencer functions for remote media, use these for recaching in processor * add check for nil attachment in updateAttachment() * remove unused emoji and media fields + columns * see previous commit * fix old migrations expecting image_updated_at to exists (from copies of old models) * remove freshness checking code (seems to be broken...) * fix error arg causing nil ptr exception * finish documentating functions with comments, slight tweaks to media / emoji deref error logic * remove some extra unneeded boolean checking * finish writing documentation (code comments) for exported media manager methods * undo changes to migration snapshot gtsmodels, updated failing migration to have its own snapshot * move doesColumnExist() to util.go in migrations package
Diffstat (limited to 'internal/api')
-rw-r--r--internal/api/activitypub/users/inboxpost_test.go12
-rw-r--r--internal/api/client/admin/emojicreate_test.go2
-rw-r--r--internal/api/client/admin/emojiupdate_test.go9
-rw-r--r--internal/api/fileserver/servefile_test.go8
4 files changed, 23 insertions, 8 deletions
diff --git a/internal/api/activitypub/users/inboxpost_test.go b/internal/api/activitypub/users/inboxpost_test.go
index 9d863f234..64c9f7e6c 100644
--- a/internal/api/activitypub/users/inboxpost_test.go
+++ b/internal/api/activitypub/users/inboxpost_test.go
@@ -376,7 +376,17 @@ func (suite *InboxPostTestSuite) TestPostUpdate() {
}
// emojis should be updated
- suite.Contains(dbUpdatedAccount.EmojiIDs, testEmoji.ID)
+ var haveUpdatedEmoji bool
+ for _, emoji := range dbUpdatedAccount.Emojis {
+ if emoji.Shortcode == testEmoji.Shortcode &&
+ emoji.Domain == testEmoji.Domain &&
+ emoji.ImageRemoteURL == emoji.ImageRemoteURL &&
+ emoji.ImageStaticRemoteURL == emoji.ImageStaticRemoteURL {
+ haveUpdatedEmoji = true
+ break
+ }
+ }
+ suite.True(haveUpdatedEmoji)
// account should be freshly fetched
suite.WithinDuration(time.Now(), dbUpdatedAccount.FetchedAt, 10*time.Second)
diff --git a/internal/api/client/admin/emojicreate_test.go b/internal/api/client/admin/emojicreate_test.go
index 46139df47..be39ebdf5 100644
--- a/internal/api/client/admin/emojicreate_test.go
+++ b/internal/api/client/admin/emojicreate_test.go
@@ -281,7 +281,7 @@ func (suite *EmojiCreateTestSuite) TestEmojiCreateAlreadyExists() {
suite.NoError(err)
suite.NotEmpty(b)
- suite.Equal(`{"error":"Conflict: emoji with shortcode rainbow already exists"}`, string(b))
+ suite.Equal(`{"error":"Conflict: emoji with shortcode already exists"}`, string(b))
}
func TestEmojiCreateTestSuite(t *testing.T) {
diff --git a/internal/api/client/admin/emojiupdate_test.go b/internal/api/client/admin/emojiupdate_test.go
index 676363e39..11beaeaa9 100644
--- a/internal/api/client/admin/emojiupdate_test.go
+++ b/internal/api/client/admin/emojiupdate_test.go
@@ -20,6 +20,7 @@ package admin_test
import (
"context"
"encoding/json"
+ "io"
"io/ioutil"
"net/http"
"net/http/httptest"
@@ -370,10 +371,10 @@ func (suite *EmojiUpdateTestSuite) TestEmojiUpdateModifyRemoteEmoji() {
defer result.Body.Close()
// check the response
- b, err := ioutil.ReadAll(result.Body)
+ b, err := io.ReadAll(result.Body)
suite.NoError(err)
- suite.Equal(`{"error":"Bad Request: emoji 01GD5KP5CQEE1R3X43Y1EHS2CW is not a local emoji, cannot update it via this endpoint"}`, string(b))
+ suite.Equal(`{"error":"Bad Request: cannot modify remote emoji"}`, string(b))
}
func (suite *EmojiUpdateTestSuite) TestEmojiUpdateModifyNoParams() {
@@ -440,7 +441,7 @@ func (suite *EmojiUpdateTestSuite) TestEmojiUpdateCopyLocalToLocal() {
b, err := ioutil.ReadAll(result.Body)
suite.NoError(err)
- suite.Equal(`{"error":"Bad Request: emoji 01F8MH9H8E4VG3KDYJR9EGPXCQ is not a remote emoji, cannot copy it to local"}`, string(b))
+ suite.Equal(`{"error":"Bad Request: target emoji is not remote; cannot copy to local"}`, string(b))
}
func (suite *EmojiUpdateTestSuite) TestEmojiUpdateCopyEmptyShortcode() {
@@ -541,7 +542,7 @@ func (suite *EmojiUpdateTestSuite) TestEmojiUpdateCopyShortcodeAlreadyInUse() {
b, err := ioutil.ReadAll(result.Body)
suite.NoError(err)
- suite.Equal(`{"error":"Conflict: emoji with shortcode rainbow already exists on this instance"}`, string(b))
+ suite.Equal(`{"error":"Conflict: emoji with shortcode already exists"}`, string(b))
}
func TestEmojiUpdateTestSuite(t *testing.T) {
diff --git a/internal/api/fileserver/servefile_test.go b/internal/api/fileserver/servefile_test.go
index c840d232f..cb3a35e45 100644
--- a/internal/api/fileserver/servefile_test.go
+++ b/internal/api/fileserver/servefile_test.go
@@ -19,7 +19,7 @@ package fileserver_test
import (
"context"
- "io/ioutil"
+ "io"
"net/http"
"net/http/httptest"
"testing"
@@ -28,6 +28,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/api/fileserver"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/media"
+ "github.com/superseriousbusiness/gotosocial/internal/middleware"
"github.com/superseriousbusiness/gotosocial/testrig"
)
@@ -54,12 +55,15 @@ func (suite *ServeFileTestSuite) GetFile(
ctx.AddParam(fileserver.MediaSizeKey, string(mediaSize))
ctx.AddParam(fileserver.FileNameKey, filename)
+ logger := middleware.Logger(false)
suite.fileServer.ServeFile(ctx)
+ logger(ctx)
+
code = recorder.Code
headers = recorder.Result().Header
var err error
- body, err = ioutil.ReadAll(recorder.Body)
+ body, err = io.ReadAll(recorder.Body)
if err != nil {
suite.FailNow(err.Error())
}