summaryrefslogtreecommitdiff
path: root/internal/api/s2s
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api/s2s')
-rw-r--r--internal/api/s2s/user/inboxpost_test.go17
-rw-r--r--internal/api/s2s/user/outboxget_test.go11
-rw-r--r--internal/api/s2s/user/repliesget_test.go11
-rw-r--r--internal/api/s2s/user/statusget_test.go24
-rw-r--r--internal/api/s2s/user/userget_test.go38
5 files changed, 27 insertions, 74 deletions
diff --git a/internal/api/s2s/user/inboxpost_test.go b/internal/api/s2s/user/inboxpost_test.go
index 506fa270c..ff3ec47d3 100644
--- a/internal/api/s2s/user/inboxpost_test.go
+++ b/internal/api/s2s/user/inboxpost_test.go
@@ -444,14 +444,15 @@ func (suite *InboxPostTestSuite) TestPostDelete() {
suite.Empty(b)
suite.Equal(http.StatusOK, result.StatusCode)
- // sleep for a sec so side effects can process in the background
- time.Sleep(2 * time.Second)
-
- // local account 2 blocked foss_satan, that block should be gone now
- testBlock := suite.testBlocks["local_account_2_block_remote_account_1"]
- dbBlock := &gtsmodel.Block{}
- err = suite.db.GetByID(ctx, testBlock.ID, dbBlock)
- suite.ErrorIs(err, db.ErrNoEntries)
+ if !testrig.WaitFor(func() bool {
+ // local account 2 blocked foss_satan, that block should be gone now
+ testBlock := suite.testBlocks["local_account_2_block_remote_account_1"]
+ dbBlock := &gtsmodel.Block{}
+ err = suite.db.GetByID(ctx, testBlock.ID, dbBlock)
+ return suite.ErrorIs(err, db.ErrNoEntries)
+ }) {
+ suite.FailNow("timed out waiting for block to be removed")
+ }
// no statuses from foss satan should be left in the database
dbStatuses, err := suite.db.GetAccountStatuses(ctx, deletedAccount.ID, 0, false, false, "", "", false, false, false)
diff --git a/internal/api/s2s/user/outboxget_test.go b/internal/api/s2s/user/outboxget_test.go
index 58b57954c..24c0e2cee 100644
--- a/internal/api/s2s/user/outboxget_test.go
+++ b/internal/api/s2s/user/outboxget_test.go
@@ -46,15 +46,6 @@ func (suite *OutboxGetTestSuite) TestGetOutbox() {
signedRequest := derefRequests["foss_satan_dereference_zork_outbox"]
targetAccount := suite.testAccounts["local_account_1"]
- clientWorker := concurrency.NewWorkerPool[messages.FromClientAPI](-1, -1)
- fedWorker := concurrency.NewWorkerPool[messages.FromFederator](-1, -1)
-
- tc := testrig.NewTestTransportController(testrig.NewMockHTTPClient(nil, "../../../../testrig/media"), suite.db, fedWorker)
- federator := testrig.NewTestFederator(suite.db, tc, suite.storage, suite.mediaManager, fedWorker)
- emailSender := testrig.NewEmailSender("../../../../web/template/", nil)
- processor := testrig.NewTestProcessor(suite.db, suite.storage, federator, emailSender, suite.mediaManager, clientWorker, fedWorker)
- userModule := user.New(processor).(*user.Module)
-
// setup request
recorder := httptest.NewRecorder()
ctx, _ := testrig.CreateGinTestContext(recorder, nil)
@@ -76,7 +67,7 @@ func (suite *OutboxGetTestSuite) TestGetOutbox() {
}
// trigger the function being tested
- userModule.OutboxGETHandler(ctx)
+ suite.userModule.OutboxGETHandler(ctx)
// check response
suite.EqualValues(http.StatusOK, recorder.Code)
diff --git a/internal/api/s2s/user/repliesget_test.go b/internal/api/s2s/user/repliesget_test.go
index 07a3f2788..7ec9ae54c 100644
--- a/internal/api/s2s/user/repliesget_test.go
+++ b/internal/api/s2s/user/repliesget_test.go
@@ -49,15 +49,6 @@ func (suite *RepliesGetTestSuite) TestGetReplies() {
targetAccount := suite.testAccounts["local_account_1"]
targetStatus := suite.testStatuses["local_account_1_status_1"]
- clientWorker := concurrency.NewWorkerPool[messages.FromClientAPI](-1, -1)
- fedWorker := concurrency.NewWorkerPool[messages.FromFederator](-1, -1)
-
- tc := testrig.NewTestTransportController(testrig.NewMockHTTPClient(nil, "../../../../testrig/media"), suite.db, fedWorker)
- federator := testrig.NewTestFederator(suite.db, tc, suite.storage, suite.mediaManager, fedWorker)
- emailSender := testrig.NewEmailSender("../../../../web/template/", nil)
- processor := testrig.NewTestProcessor(suite.db, suite.storage, federator, emailSender, suite.mediaManager, clientWorker, fedWorker)
- userModule := user.New(processor).(*user.Module)
-
// setup request
recorder := httptest.NewRecorder()
ctx, _ := testrig.CreateGinTestContext(recorder, nil)
@@ -83,7 +74,7 @@ func (suite *RepliesGetTestSuite) TestGetReplies() {
}
// trigger the function being tested
- userModule.StatusRepliesGETHandler(ctx)
+ suite.userModule.StatusRepliesGETHandler(ctx)
// check response
suite.EqualValues(http.StatusOK, recorder.Code)
diff --git a/internal/api/s2s/user/statusget_test.go b/internal/api/s2s/user/statusget_test.go
index 26fb71818..42f7dbb1b 100644
--- a/internal/api/s2s/user/statusget_test.go
+++ b/internal/api/s2s/user/statusget_test.go
@@ -32,8 +32,6 @@ import (
"github.com/superseriousbusiness/activity/streams"
"github.com/superseriousbusiness/activity/streams/vocab"
"github.com/superseriousbusiness/gotosocial/internal/api/s2s/user"
- "github.com/superseriousbusiness/gotosocial/internal/concurrency"
- "github.com/superseriousbusiness/gotosocial/internal/messages"
"github.com/superseriousbusiness/gotosocial/testrig"
)
@@ -48,15 +46,6 @@ func (suite *StatusGetTestSuite) TestGetStatus() {
targetAccount := suite.testAccounts["local_account_1"]
targetStatus := suite.testStatuses["local_account_1_status_1"]
- clientWorker := concurrency.NewWorkerPool[messages.FromClientAPI](-1, -1)
- fedWorker := concurrency.NewWorkerPool[messages.FromFederator](-1, -1)
-
- tc := testrig.NewTestTransportController(testrig.NewMockHTTPClient(nil, "../../../../testrig/media"), suite.db, fedWorker)
- federator := testrig.NewTestFederator(suite.db, tc, suite.storage, suite.mediaManager, fedWorker)
- emailSender := testrig.NewEmailSender("../../../../web/template/", nil)
- processor := testrig.NewTestProcessor(suite.db, suite.storage, federator, emailSender, suite.mediaManager, clientWorker, fedWorker)
- userModule := user.New(processor).(*user.Module)
-
// setup request
recorder := httptest.NewRecorder()
ctx, _ := testrig.CreateGinTestContext(recorder, nil)
@@ -82,7 +71,7 @@ func (suite *StatusGetTestSuite) TestGetStatus() {
}
// trigger the function being tested
- userModule.StatusGETHandler(ctx)
+ suite.userModule.StatusGETHandler(ctx)
// check response
suite.EqualValues(http.StatusOK, recorder.Code)
@@ -116,15 +105,6 @@ func (suite *StatusGetTestSuite) TestGetStatusLowercase() {
targetAccount := suite.testAccounts["local_account_1"]
targetStatus := suite.testStatuses["local_account_1_status_1"]
- clientWorker := concurrency.NewWorkerPool[messages.FromClientAPI](-1, -1)
- fedWorker := concurrency.NewWorkerPool[messages.FromFederator](-1, -1)
-
- tc := testrig.NewTestTransportController(testrig.NewMockHTTPClient(nil, "../../../../testrig/media"), suite.db, fedWorker)
- federator := testrig.NewTestFederator(suite.db, tc, suite.storage, suite.mediaManager, fedWorker)
- emailSender := testrig.NewEmailSender("../../../../web/template/", nil)
- processor := testrig.NewTestProcessor(suite.db, suite.storage, federator, emailSender, suite.mediaManager, clientWorker, fedWorker)
- userModule := user.New(processor).(*user.Module)
-
// setup request
recorder := httptest.NewRecorder()
ctx, _ := testrig.CreateGinTestContext(recorder, nil)
@@ -150,7 +130,7 @@ func (suite *StatusGetTestSuite) TestGetStatusLowercase() {
}
// trigger the function being tested
- userModule.StatusGETHandler(ctx)
+ suite.userModule.StatusGETHandler(ctx)
// check response
suite.EqualValues(http.StatusOK, recorder.Code)
diff --git a/internal/api/s2s/user/userget_test.go b/internal/api/s2s/user/userget_test.go
index 0b242432c..9e0fd33ad 100644
--- a/internal/api/s2s/user/userget_test.go
+++ b/internal/api/s2s/user/userget_test.go
@@ -25,7 +25,6 @@ import (
"net/http"
"net/http/httptest"
"testing"
- "time"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/suite"
@@ -33,8 +32,6 @@ import (
"github.com/superseriousbusiness/activity/streams/vocab"
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
"github.com/superseriousbusiness/gotosocial/internal/api/s2s/user"
- "github.com/superseriousbusiness/gotosocial/internal/concurrency"
- "github.com/superseriousbusiness/gotosocial/internal/messages"
"github.com/superseriousbusiness/gotosocial/internal/oauth"
"github.com/superseriousbusiness/gotosocial/testrig"
)
@@ -49,15 +46,6 @@ func (suite *UserGetTestSuite) TestGetUser() {
signedRequest := derefRequests["foss_satan_dereference_zork"]
targetAccount := suite.testAccounts["local_account_1"]
- clientWorker := concurrency.NewWorkerPool[messages.FromClientAPI](-1, -1)
- fedWorker := concurrency.NewWorkerPool[messages.FromFederator](-1, -1)
-
- tc := testrig.NewTestTransportController(testrig.NewMockHTTPClient(nil, "../../../../testrig/media"), suite.db, fedWorker)
- federator := testrig.NewTestFederator(suite.db, tc, suite.storage, suite.mediaManager, fedWorker)
- emailSender := testrig.NewEmailSender("../../../../web/template/", nil)
- processor := testrig.NewTestProcessor(suite.db, suite.storage, federator, emailSender, suite.mediaManager, clientWorker, fedWorker)
- userModule := user.New(processor).(*user.Module)
-
// setup request
recorder := httptest.NewRecorder()
ctx, _ := testrig.CreateGinTestContext(recorder, nil)
@@ -79,7 +67,7 @@ func (suite *UserGetTestSuite) TestGetUser() {
}
// trigger the function being tested
- userModule.UsersGETHandler(ctx)
+ suite.userModule.UsersGETHandler(ctx)
// check response
suite.EqualValues(http.StatusOK, recorder.Code)
@@ -110,6 +98,12 @@ func (suite *UserGetTestSuite) TestGetUser() {
// TestGetUserPublicKeyDeleted checks whether the public key of a deleted account can still be dereferenced.
// This is needed by remote instances for authenticating delete requests and stuff like that.
func (suite *UserGetTestSuite) TestGetUserPublicKeyDeleted() {
+ if err := suite.processor.Start(); err != nil {
+ suite.FailNow(err.Error())
+ }
+ defer suite.processor.Stop()
+
+ userModule := user.New(suite.processor).(*user.Module)
targetAccount := suite.testAccounts["local_account_1"]
// first delete the account, as though zork had deleted himself
@@ -123,22 +117,18 @@ func (suite *UserGetTestSuite) TestGetUserPublicKeyDeleted() {
DeleteOriginID: targetAccount.ID,
})
- // now wait just a sec for it to go through....
- time.Sleep(1 * time.Second)
+ // wait for the account delete to be processed
+ if !testrig.WaitFor(func() bool {
+ a, _ := suite.db.GetAccountByID(context.Background(), targetAccount.ID)
+ return !a.SuspendedAt.IsZero()
+ }) {
+ suite.FailNow("delete of account timed out")
+ }
// the dereference we're gonna use
derefRequests := testrig.NewTestDereferenceRequests(suite.testAccounts)
signedRequest := derefRequests["foss_satan_dereference_zork_public_key"]
- clientWorker := concurrency.NewWorkerPool[messages.FromClientAPI](-1, -1)
- fedWorker := concurrency.NewWorkerPool[messages.FromFederator](-1, -1)
-
- tc := testrig.NewTestTransportController(testrig.NewMockHTTPClient(nil, "../../../../testrig/media"), suite.db, fedWorker)
- federator := testrig.NewTestFederator(suite.db, tc, suite.storage, suite.mediaManager, fedWorker)
- emailSender := testrig.NewEmailSender("../../../../web/template/", nil)
- processor := testrig.NewTestProcessor(suite.db, suite.storage, federator, emailSender, suite.mediaManager, clientWorker, fedWorker)
- userModule := user.New(processor).(*user.Module)
-
// setup request
recorder := httptest.NewRecorder()
ctx, _ := testrig.CreateGinTestContext(recorder, nil)