testrig is runnable again

This commit is contained in:
tsmethurst
2021-06-20 13:28:45 +02:00
parent aa8a0d0850
commit 152bd32749
4 changed files with 187 additions and 202 deletions

View File

@ -26,9 +26,9 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/cliactions" "github.com/superseriousbusiness/gotosocial/internal/cliactions"
"github.com/superseriousbusiness/gotosocial/internal/cliactions/admin/account" "github.com/superseriousbusiness/gotosocial/internal/cliactions/admin/account"
"github.com/superseriousbusiness/gotosocial/internal/cliactions/server" "github.com/superseriousbusiness/gotosocial/internal/cliactions/server"
"github.com/superseriousbusiness/gotosocial/internal/cliactions/testrig"
"github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/log" "github.com/superseriousbusiness/gotosocial/internal/log"
"github.com/superseriousbusiness/gotosocial/testrig"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
) )
@ -361,19 +361,6 @@ func main() {
}, },
}, },
}, },
// {
// Name: "db",
// Usage: "database-related tasks and utils",
// Subcommands: []*cli.Command{
// {
// Name: "init",
// Usage: "initialize a database with the required schema for gotosocial; has no effect & is safe to run on an already-initialized db",
// Action: func(c *cli.Context) error {
// return runAction(c, db.Initialize)
// },
// },
// },
// },
{ {
Name: "testrig", Name: "testrig",
Usage: "gotosocial testrig tasks", Usage: "gotosocial testrig tasks",
@ -382,7 +369,7 @@ func main() {
Name: "start", Name: "start",
Usage: "start the gotosocial testrig", Usage: "start the gotosocial testrig",
Action: func(c *cli.Context) error { Action: func(c *cli.Context) error {
return runAction(c, testrig.Run) return runAction(c, testrig.Start)
}, },
}, },
}, },

View File

@ -1,21 +1,3 @@
/*
GoToSocial
Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org
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 testrig package testrig
import ( import (
@ -34,50 +16,72 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/api/client/admin" "github.com/superseriousbusiness/gotosocial/internal/api/client/admin"
"github.com/superseriousbusiness/gotosocial/internal/api/client/app" "github.com/superseriousbusiness/gotosocial/internal/api/client/app"
"github.com/superseriousbusiness/gotosocial/internal/api/client/auth" "github.com/superseriousbusiness/gotosocial/internal/api/client/auth"
"github.com/superseriousbusiness/gotosocial/internal/api/client/emoji"
"github.com/superseriousbusiness/gotosocial/internal/api/client/fileserver" "github.com/superseriousbusiness/gotosocial/internal/api/client/fileserver"
"github.com/superseriousbusiness/gotosocial/internal/api/client/filter"
"github.com/superseriousbusiness/gotosocial/internal/api/client/followrequest"
"github.com/superseriousbusiness/gotosocial/internal/api/client/instance"
"github.com/superseriousbusiness/gotosocial/internal/api/client/list"
mediaModule "github.com/superseriousbusiness/gotosocial/internal/api/client/media" mediaModule "github.com/superseriousbusiness/gotosocial/internal/api/client/media"
"github.com/superseriousbusiness/gotosocial/internal/api/client/notification"
"github.com/superseriousbusiness/gotosocial/internal/api/client/search"
"github.com/superseriousbusiness/gotosocial/internal/api/client/status" "github.com/superseriousbusiness/gotosocial/internal/api/client/status"
"github.com/superseriousbusiness/gotosocial/internal/api/client/streaming"
"github.com/superseriousbusiness/gotosocial/internal/api/client/timeline"
"github.com/superseriousbusiness/gotosocial/internal/api/s2s/user"
"github.com/superseriousbusiness/gotosocial/internal/api/s2s/webfinger"
"github.com/superseriousbusiness/gotosocial/internal/api/security" "github.com/superseriousbusiness/gotosocial/internal/api/security"
"github.com/superseriousbusiness/gotosocial/internal/cliactions" "github.com/superseriousbusiness/gotosocial/internal/cliactions"
"github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/federation"
"github.com/superseriousbusiness/gotosocial/internal/gotosocial" "github.com/superseriousbusiness/gotosocial/internal/gotosocial"
"github.com/superseriousbusiness/gotosocial/testrig"
) )
// Run creates and starts a gotosocial testrig server // Start creates and starts a gotosocial testrig server
var Run cliactions.GTSAction = func(ctx context.Context, _ *config.Config, log *logrus.Logger) error { var Start cliactions.GTSAction = func(ctx context.Context, _ *config.Config, log *logrus.Logger) error {
c := NewTestConfig() c := testrig.NewTestConfig()
dbService := NewTestDB() dbService := testrig.NewTestDB()
federatingDB := NewTestFederatingDB(dbService) testrig.StandardDBSetup(dbService)
router := NewTestRouter() router := testrig.NewTestRouter()
storageBackend := NewTestStorage() storageBackend := testrig.NewTestStorage()
testrig.StandardStorageSetup(storageBackend, "./testrig/media")
typeConverter := NewTestTypeConverter(dbService) // build backend handlers
transportController := NewTestTransportController(NewMockHTTPClient(func(req *http.Request) (*http.Response, error) { oauthServer := testrig.NewTestOauthServer(dbService)
transportController := testrig.NewTestTransportController(testrig.NewMockHTTPClient(func(req *http.Request) (*http.Response, error) {
r := ioutil.NopCloser(bytes.NewReader([]byte{})) r := ioutil.NopCloser(bytes.NewReader([]byte{}))
return &http.Response{ return &http.Response{
StatusCode: 200, StatusCode: 200,
Body: r, Body: r,
}, nil }, nil
})) }))
federator := federation.NewFederator(dbService, federatingDB, transportController, c, log, typeConverter) federator := testrig.NewTestFederator(dbService, transportController)
processor := NewTestProcessor(dbService, storageBackend, federator)
processor := testrig.NewTestProcessor(dbService, storageBackend, federator)
if err := processor.Start(); err != nil { if err := processor.Start(); err != nil {
return fmt.Errorf("error starting processor: %s", err) return fmt.Errorf("error starting processor: %s", err)
} }
StandardDBSetup(dbService)
StandardStorageSetup(storageBackend, "./testrig/media")
// build client api modules // build client api modules
authModule := auth.New(c, dbService, NewTestOauthServer(dbService), log) authModule := auth.New(c, dbService, oauthServer, log)
accountModule := account.New(c, processor, log) accountModule := account.New(c, processor, log)
instanceModule := instance.New(c, processor, log)
appsModule := app.New(c, processor, log) appsModule := app.New(c, processor, log)
followRequestsModule := followrequest.New(c, processor, log)
webfingerModule := webfinger.New(c, processor, log)
usersModule := user.New(c, processor, log)
timelineModule := timeline.New(c, processor, log)
notificationModule := notification.New(c, processor, log)
searchModule := search.New(c, processor, log)
filtersModule := filter.New(c, processor, log)
emojiModule := emoji.New(c, processor, log)
listsModule := list.New(c, processor, log)
mm := mediaModule.New(c, processor, log) mm := mediaModule.New(c, processor, log)
fileServerModule := fileserver.New(c, processor, log) fileServerModule := fileserver.New(c, processor, log)
adminModule := admin.New(c, processor, log) adminModule := admin.New(c, processor, log)
statusModule := status.New(c, processor, log) statusModule := status.New(c, processor, log)
securityModule := security.New(c, log) securityModule := security.New(c, log)
streamingModule := streaming.New(c, processor, log)
apis := []api.ClientModule{ apis := []api.ClientModule{
// modules with middleware go first // modules with middleware go first
@ -86,11 +90,22 @@ var Run cliactions.GTSAction = func(ctx context.Context, _ *config.Config, log *
// now everything else // now everything else
accountModule, accountModule,
instanceModule,
appsModule, appsModule,
followRequestsModule,
mm, mm,
fileServerModule, fileServerModule,
adminModule, adminModule,
statusModule, statusModule,
webfingerModule,
usersModule,
timelineModule,
notificationModule,
searchModule,
filtersModule,
emojiModule,
listsModule,
streamingModule,
} }
for _, m := range apis { for _, m := range apis {
@ -114,8 +129,8 @@ var Run cliactions.GTSAction = func(ctx context.Context, _ *config.Config, log *
sig := <-sigs sig := <-sigs
log.Infof("received signal %s, shutting down", sig) log.Infof("received signal %s, shutting down", sig)
StandardDBTeardown(dbService) testrig.StandardDBTeardown(dbService)
StandardStorageTeardown(storageBackend) testrig.StandardStorageTeardown(storageBackend)
// close down all running services in order // close down all running services in order
if err := gts.Stop(ctx); err != nil { if err := gts.Stop(ctx); err != nil {

View File

@ -45,6 +45,8 @@ var testModels []interface{} = []interface{}{
&gtsmodel.Tag{}, &gtsmodel.Tag{},
&gtsmodel.User{}, &gtsmodel.User{},
&gtsmodel.Emoji{}, &gtsmodel.Emoji{},
&gtsmodel.Instance{},
&gtsmodel.Notification{},
&oauth.Token{}, &oauth.Token{},
&oauth.Client{}, &oauth.Client{},
} }
@ -132,6 +134,10 @@ func StandardDBSetup(db db.DB) {
if err := db.CreateInstanceAccount(); err != nil { if err := db.CreateInstanceAccount(); err != nil {
panic(err) panic(err)
} }
if err := db.CreateInstanceInstance(); err != nil {
panic(err)
}
} }
// StandardDBTeardown drops all the standard testing tables/models from the database to ensure it's clean for the next test. // StandardDBTeardown drops all the standard testing tables/models from the database to ensure it's clean for the next test.

View File

@ -45,9 +45,9 @@ import (
func NewTestTokens() map[string]*oauth.Token { func NewTestTokens() map[string]*oauth.Token {
tokens := map[string]*oauth.Token{ tokens := map[string]*oauth.Token{
"local_account_1": { "local_account_1": {
ID: "64cf4214-33ab-4220-b5ca-4a6a12263b20", ID: "01F8MGTQW4DKTDF8SW5CT9HYGA",
ClientID: "73b48d42-029d-4487-80fc-329a5cf67869", ClientID: "01F8MGV8AC3NGSJW0FE8W1BV70",
UserID: "44e36b79-44a4-4bd8-91e9-097f477fe97b", UserID: "01F8MGVGPHQ2D3P3X0454H54Z5",
RedirectURI: "http://localhost:8080", RedirectURI: "http://localhost:8080",
Scope: "read write follow push", Scope: "read write follow push",
Access: "NZAZOTC0OWITMDU0NC0ZODG4LWE4NJITMWUXM2M4MTRHZDEX", Access: "NZAZOTC0OWITMDU0NC0ZODG4LWE4NJITMWUXM2M4MTRHZDEX",
@ -55,9 +55,9 @@ func NewTestTokens() map[string]*oauth.Token {
AccessExpiresAt: time.Now().Add(72 * time.Hour), AccessExpiresAt: time.Now().Add(72 * time.Hour),
}, },
"local_account_2": { "local_account_2": {
ID: "b04cae99-39b5-4610-a425-dc6b91c78a72", ID: "01F8MGVVM1EDVYET710J27XY5R",
ClientID: "a4f6a2ea-a32b-4600-8853-72fc4ad98a1f", ClientID: "01F8MGW47HN8ZXNHNZ7E47CDMQ",
UserID: "d120bd97-866f-4a05-9690-a1294b9934c3", UserID: "01F8MGWAPB4GJ42M4N0TCZSQ7K",
RedirectURI: "http://localhost:8080", RedirectURI: "http://localhost:8080",
Scope: "read write follow push", Scope: "read write follow push",
Access: "PIPINALKNNNFNF98717NAMNAMNFKIJKJ881818KJKJAKJJJA", Access: "PIPINALKNNNFNF98717NAMNAMNFKIJKJ881818KJKJAKJJJA",
@ -72,22 +72,22 @@ func NewTestTokens() map[string]*oauth.Token {
func NewTestClients() map[string]*oauth.Client { func NewTestClients() map[string]*oauth.Client {
clients := map[string]*oauth.Client{ clients := map[string]*oauth.Client{
"admin_account": { "admin_account": {
ID: "1c5cefc8-f0c9-4307-8506-ca6e3888675e", ID: "01F8MGWSJCND9BWBD4WGJXBM93",
Secret: "dda8e835-2c9c-4bd2-9b8b-77c2e26d7a7a", Secret: "dda8e835-2c9c-4bd2-9b8b-77c2e26d7a7a",
Domain: "http://localhost:8080", Domain: "http://localhost:8080",
UserID: "0fb02eae-2214-473f-9667-0a43f22d75ff", // admin_account UserID: "01F8MGWYWKVKS3VS8DV1AMYPGE", // admin_account
}, },
"local_account_1": { "local_account_1": {
ID: "73b48d42-029d-4487-80fc-329a5cf67869", ID: "01F8MGV8AC3NGSJW0FE8W1BV70",
Secret: "c3724c74-dc3b-41b2-a108-0ea3d8399830", Secret: "c3724c74-dc3b-41b2-a108-0ea3d8399830",
Domain: "http://localhost:8080", Domain: "http://localhost:8080",
UserID: "44e36b79-44a4-4bd8-91e9-097f477fe97b", // local_account_1 UserID: "01F8MGVGPHQ2D3P3X0454H54Z5", // local_account_1
}, },
"local_account_2": { "local_account_2": {
ID: "a4f6a2ea-a32b-4600-8853-72fc4ad98a1f", ID: "01F8MGW47HN8ZXNHNZ7E47CDMQ",
Secret: "8f5603a5-c721-46cd-8f1b-2e368f51379f", Secret: "8f5603a5-c721-46cd-8f1b-2e368f51379f",
Domain: "http://localhost:8080", Domain: "http://localhost:8080",
UserID: "d120bd97-866f-4a05-9690-a1294b9934c3", // local_account_2 UserID: "01F8MGWAPB4GJ42M4N0TCZSQ7K", // local_account_2
}, },
} }
return clients return clients
@ -97,31 +97,31 @@ func NewTestClients() map[string]*oauth.Client {
func NewTestApplications() map[string]*gtsmodel.Application { func NewTestApplications() map[string]*gtsmodel.Application {
apps := map[string]*gtsmodel.Application{ apps := map[string]*gtsmodel.Application{
"admin_account": { "admin_account": {
ID: "9bf9e368-037f-444d-8ffd-1091d1c21c4c", ID: "01F8MGXQRHYF5QPMTMXP78QC2F",
Name: "superseriousbusiness", Name: "superseriousbusiness",
Website: "https://superserious.business", Website: "https://superserious.business",
RedirectURI: "http://localhost:8080", RedirectURI: "http://localhost:8080",
ClientID: "1c5cefc8-f0c9-4307-8506-ca6e3888675e", // admin client ClientID: "01F8MGWSJCND9BWBD4WGJXBM93", // admin client
ClientSecret: "dda8e835-2c9c-4bd2-9b8b-77c2e26d7a7a", // admin client ClientSecret: "dda8e835-2c9c-4bd2-9b8b-77c2e26d7a7a", // admin client
Scopes: "read write follow push", Scopes: "read write follow push",
VapidKey: "76ae0095-8a10-438f-9f49-522d1985b190", VapidKey: "76ae0095-8a10-438f-9f49-522d1985b190",
}, },
"application_1": { "application_1": {
ID: "f88697b8-ee3d-46c2-ac3f-dbb85566c3cc", ID: "01F8MGY43H3N2C8EWPR2FPYEXG",
Name: "really cool gts application", Name: "really cool gts application",
Website: "https://reallycool.app", Website: "https://reallycool.app",
RedirectURI: "http://localhost:8080", RedirectURI: "http://localhost:8080",
ClientID: "73b48d42-029d-4487-80fc-329a5cf67869", // client_1 ClientID: "01F8MGV8AC3NGSJW0FE8W1BV70", // client_1
ClientSecret: "c3724c74-dc3b-41b2-a108-0ea3d8399830", // client_1 ClientSecret: "c3724c74-dc3b-41b2-a108-0ea3d8399830", // client_1
Scopes: "read write follow push", Scopes: "read write follow push",
VapidKey: "4738dfd7-ca73-4aa6-9aa9-80e946b7db36", VapidKey: "4738dfd7-ca73-4aa6-9aa9-80e946b7db36",
}, },
"application_2": { "application_2": {
ID: "6b0cd164-8497-4cd5-bec9-957886fac5df", ID: "01F8MGYG9E893WRHW0TAEXR8GJ",
Name: "kindaweird", Name: "kindaweird",
Website: "https://kindaweird.app", Website: "https://kindaweird.app",
RedirectURI: "http://localhost:8080", RedirectURI: "http://localhost:8080",
ClientID: "a4f6a2ea-a32b-4600-8853-72fc4ad98a1f", // client_2 ClientID: "01F8MGW47HN8ZXNHNZ7E47CDMQ", // client_2
ClientSecret: "8f5603a5-c721-46cd-8f1b-2e368f51379f", // client_2 ClientSecret: "8f5603a5-c721-46cd-8f1b-2e368f51379f", // client_2
Scopes: "read write follow push", Scopes: "read write follow push",
VapidKey: "c040a5fc-e1e2-4859-bbea-0a3efbca1c4b", VapidKey: "c040a5fc-e1e2-4859-bbea-0a3efbca1c4b",
@ -134,9 +134,9 @@ func NewTestApplications() map[string]*gtsmodel.Application {
func NewTestUsers() map[string]*gtsmodel.User { func NewTestUsers() map[string]*gtsmodel.User {
users := map[string]*gtsmodel.User{ users := map[string]*gtsmodel.User{
"unconfirmed_account": { "unconfirmed_account": {
ID: "0f7b1d24-1e49-4ee0-bc7e-fd87b7289eea", ID: "01F8MGYG9E893WRHW0TAEXR8GJ",
Email: "", Email: "",
AccountID: "59e197f5-87cd-4be8-ac7c-09082ccc4b4d", AccountID: "01F8MH0BBE4FHXPH513MBVFHB0",
EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password' EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password'
CreatedAt: time.Now(), CreatedAt: time.Now(),
SignUpIP: net.ParseIP("199.222.111.89"), SignUpIP: net.ParseIP("199.222.111.89"),
@ -164,9 +164,9 @@ func NewTestUsers() map[string]*gtsmodel.User {
ResetPasswordSentAt: time.Time{}, ResetPasswordSentAt: time.Time{},
}, },
"admin_account": { "admin_account": {
ID: "0fb02eae-2214-473f-9667-0a43f22d75ff", ID: "01F8MGWYWKVKS3VS8DV1AMYPGE",
Email: "admin@example.org", Email: "admin@example.org",
AccountID: "8020dbb4-1e7b-4d99-a872-4cf94e64210f", AccountID: "01F8MH17FWEB39HZJ76B6VXSKF",
EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password' EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password'
CreatedAt: time.Now().Add(-72 * time.Hour), CreatedAt: time.Now().Add(-72 * time.Hour),
SignUpIP: net.ParseIP("89.22.189.19"), SignUpIP: net.ParseIP("89.22.189.19"),
@ -194,9 +194,9 @@ func NewTestUsers() map[string]*gtsmodel.User {
ResetPasswordSentAt: time.Time{}, ResetPasswordSentAt: time.Time{},
}, },
"local_account_1": { "local_account_1": {
ID: "44e36b79-44a4-4bd8-91e9-097f477fe97b", ID: "01F8MGVGPHQ2D3P3X0454H54Z5",
Email: "zork@example.org", Email: "zork@example.org",
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password' EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password'
CreatedAt: time.Now().Add(-36 * time.Hour), CreatedAt: time.Now().Add(-36 * time.Hour),
SignUpIP: net.ParseIP("59.99.19.172"), SignUpIP: net.ParseIP("59.99.19.172"),
@ -210,7 +210,7 @@ func NewTestUsers() map[string]*gtsmodel.User {
ChosenLanguages: []string{"en"}, ChosenLanguages: []string{"en"},
FilteredLanguages: []string{}, FilteredLanguages: []string{},
Locale: "en", Locale: "en",
CreatedByApplicationID: "f88697b8-ee3d-46c2-ac3f-dbb85566c3cc", CreatedByApplicationID: "01F8MGY43H3N2C8EWPR2FPYEXG",
LastEmailedAt: time.Now().Add(-55 * time.Minute), LastEmailedAt: time.Now().Add(-55 * time.Minute),
ConfirmationToken: "", ConfirmationToken: "",
ConfirmedAt: time.Now().Add(-34 * time.Hour), ConfirmedAt: time.Now().Add(-34 * time.Hour),
@ -224,9 +224,9 @@ func NewTestUsers() map[string]*gtsmodel.User {
ResetPasswordSentAt: time.Time{}, ResetPasswordSentAt: time.Time{},
}, },
"local_account_2": { "local_account_2": {
ID: "f8d6272e-2d71-4d0c-97d3-2ba7a0b75bf7", ID: "01F8MH1VYJAE00TVVGMM5JNJ8X",
Email: "tortle.dude@example.org", Email: "tortle.dude@example.org",
AccountID: "eecaad73-5703-426d-9312-276641daa31e", AccountID: "01F8MH5NBDF2MV7CTC4Q5128HF",
EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password' EncryptedPassword: "$2y$10$ggWz5QWwnx6kzb9g0tnIJurFtE0dhr5Zfeaqs9iFuUIXzafQlJVZS", // 'password'
CreatedAt: time.Now().Add(-36 * time.Hour), CreatedAt: time.Now().Add(-36 * time.Hour),
SignUpIP: net.ParseIP("59.99.19.172"), SignUpIP: net.ParseIP("59.99.19.172"),
@ -262,11 +262,11 @@ func NewTestUsers() map[string]*gtsmodel.User {
func NewTestAccounts() map[string]*gtsmodel.Account { func NewTestAccounts() map[string]*gtsmodel.Account {
accounts := map[string]*gtsmodel.Account{ accounts := map[string]*gtsmodel.Account{
"instance_account": { "instance_account": {
ID: "39b745a3-774d-4b65-8bb2-b63d9e20a343", ID: "01F8MH261H1KSV3GW3016GZRY3",
Username: "localhost:8080", Username: "localhost:8080",
}, },
"unconfirmed_account": { "unconfirmed_account": {
ID: "59e197f5-87cd-4be8-ac7c-09082ccc4b4d", ID: "01F8MH0BBE4FHXPH513MBVFHB0",
Username: "weed_lord420", Username: "weed_lord420",
AvatarMediaAttachmentID: "", AvatarMediaAttachmentID: "",
HeaderMediaAttachmentID: "", HeaderMediaAttachmentID: "",
@ -304,7 +304,7 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
SuspensionOrigin: "", SuspensionOrigin: "",
}, },
"admin_account": { "admin_account": {
ID: "8020dbb4-1e7b-4d99-a872-4cf94e64210f", ID: "01F8MH17FWEB39HZJ76B6VXSKF",
Username: "admin", Username: "admin",
AvatarMediaAttachmentID: "", AvatarMediaAttachmentID: "",
HeaderMediaAttachmentID: "", HeaderMediaAttachmentID: "",
@ -342,9 +342,9 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
SuspensionOrigin: "", SuspensionOrigin: "",
}, },
"local_account_1": { "local_account_1": {
ID: "580072df-4d03-4684-a412-89fd6f7d77e6", ID: "01F8MH1H7YV1Z7D2C8K2730QBF",
Username: "the_mighty_zork", Username: "the_mighty_zork",
AvatarMediaAttachmentID: "a849906f-8b8e-4b43-ac2f-6979ccbcd442", AvatarMediaAttachmentID: "01F8MH58A357CV5K7R7TJMSH6S",
HeaderMediaAttachmentID: "", HeaderMediaAttachmentID: "",
DisplayName: "original zork (he/they)", DisplayName: "original zork (he/they)",
Fields: []gtsmodel.Field{}, Fields: []gtsmodel.Field{},
@ -380,7 +380,7 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
SuspensionOrigin: "", SuspensionOrigin: "",
}, },
"local_account_2": { "local_account_2": {
ID: "eecaad73-5703-426d-9312-276641daa31e", ID: "01F8MH5NBDF2MV7CTC4Q5128HF",
Username: "1happyturtle", Username: "1happyturtle",
AvatarMediaAttachmentID: "", AvatarMediaAttachmentID: "",
HeaderMediaAttachmentID: "", HeaderMediaAttachmentID: "",
@ -418,19 +418,9 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
SuspensionOrigin: "", SuspensionOrigin: "",
}, },
"remote_account_1": { "remote_account_1": {
ID: "c2c6e647-e2a9-4286-883b-e4a188186664", ID: "01F8MH5ZK5VRH73AKHQM6Y9VNX",
Username: "foss_satan", Username: "foss_satan",
Domain: "fossbros-anonymous.io", Domain: "fossbros-anonymous.io",
// AvatarFileName: "http://localhost:8080/fileserver/media/eecaad73-5703-426d-9312-276641daa31e/avatar/original/d5e7c265-91a6-4d84-8c27-7e1efe5720da.jpeg",
// AvatarContentType: "image/jpeg",
// AvatarFileSize: 0,
// AvatarUpdatedAt: time.Time{},
// AvatarRemoteURL: "",
// HeaderFileName: "http://localhost:8080/fileserver/media/eecaad73-5703-426d-9312-276641daa31e/header/original/e75d4117-21b6-4315-a428-eb3944235996.jpeg",
// HeaderContentType: "image/jpeg",
// HeaderFileSize: 0,
// HeaderUpdatedAt: time.Time{},
// HeaderRemoteURL: "",
DisplayName: "big gerald", DisplayName: "big gerald",
Fields: []gtsmodel.Field{}, Fields: []gtsmodel.Field{},
Note: "i post about like, i dunno, stuff, or whatever!!!!", Note: "i post about like, i dunno, stuff, or whatever!!!!",
@ -462,20 +452,6 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
HideCollections: false, HideCollections: false,
SuspensionOrigin: "", SuspensionOrigin: "",
}, },
// "remote_account_2": {
// ID: "93287988-76c4-460f-9e68-a45b578bb6b2",
// Username: "dailycatpics",
// Domain: "uwu.social",
// },
// "suspended_local_account": {
// ID: "e8a5cf4e-4b10-45a4-ad82-b6e37a09100d",
// Username: "jeffbadman",
// },
// "suspended_remote_account": {
// ID: "17e6e09e-855d-4bf8-a1c3-7e780269f215",
// Username: "ipfreely",
// Domain: "a-very-bad-website.com",
// },
} }
// generate keys for each account // generate keys for each account
@ -500,9 +476,9 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
func NewTestAttachments() map[string]*gtsmodel.MediaAttachment { func NewTestAttachments() map[string]*gtsmodel.MediaAttachment {
return map[string]*gtsmodel.MediaAttachment{ return map[string]*gtsmodel.MediaAttachment{
"admin_account_status_1_attachment_1": { "admin_account_status_1_attachment_1": {
ID: "b052241b-f30f-4dc6-92fc-2bad0be1f8d8", ID: "01F8MH6NEM8D7527KZAECTCR76",
StatusID: "502ccd6f-0edf-48d7-9016-2dfa4d3714cd", StatusID: "01F8MH75CBF9JFX4ZAD54N0W0R",
URL: "http://localhost:8080/fileserver/8020dbb4-1e7b-4d99-a872-4cf94e64210f/attachment/original/b052241b-f30f-4dc6-92fc-2bad0be1f8d8.jpeg", URL: "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpeg",
RemoteURL: "", RemoteURL: "",
CreatedAt: time.Now().Add(-71 * time.Hour), CreatedAt: time.Now().Add(-71 * time.Hour),
UpdatedAt: time.Now().Add(-71 * time.Hour), UpdatedAt: time.Now().Add(-71 * time.Hour),
@ -521,32 +497,32 @@ func NewTestAttachments() map[string]*gtsmodel.MediaAttachment {
Aspect: 1.9104477611940298, Aspect: 1.9104477611940298,
}, },
}, },
AccountID: "8020dbb4-1e7b-4d99-a872-4cf94e64210f", AccountID: "01F8MH17FWEB39HZJ76B6VXSKF",
Description: "Black and white image of some 50's style text saying: Welcome On Board", Description: "Black and white image of some 50's style text saying: Welcome On Board",
ScheduledStatusID: "", ScheduledStatusID: "",
Blurhash: "LNJRdVM{00Rj%Mayt7j[4nWBofRj", Blurhash: "LNJRdVM{00Rj%Mayt7j[4nWBofRj",
Processing: 2, Processing: 2,
File: gtsmodel.File{ File: gtsmodel.File{
Path: "/gotosocial/storage/8020dbb4-1e7b-4d99-a872-4cf94e64210f/attachment/original/b052241b-f30f-4dc6-92fc-2bad0be1f8d8.jpeg", Path: "/gotosocial/storage/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpeg",
ContentType: "image/jpeg", ContentType: "image/jpeg",
FileSize: 62529, FileSize: 62529,
UpdatedAt: time.Now().Add(-71 * time.Hour), UpdatedAt: time.Now().Add(-71 * time.Hour),
}, },
Thumbnail: gtsmodel.Thumbnail{ Thumbnail: gtsmodel.Thumbnail{
Path: "/gotosocial/storage/8020dbb4-1e7b-4d99-a872-4cf94e64210f/attachment/small/b052241b-f30f-4dc6-92fc-2bad0be1f8d8.jpeg", Path: "/gotosocial/storage/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.jpeg",
ContentType: "image/jpeg", ContentType: "image/jpeg",
FileSize: 6872, FileSize: 6872,
UpdatedAt: time.Now().Add(-71 * time.Hour), UpdatedAt: time.Now().Add(-71 * time.Hour),
URL: "http://localhost:8080/fileserver/8020dbb4-1e7b-4d99-a872-4cf94e64210f/attachment/small/b052241b-f30f-4dc6-92fc-2bad0be1f8d8.jpeg", URL: "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.jpeg",
RemoteURL: "", RemoteURL: "",
}, },
Avatar: false, Avatar: false,
Header: false, Header: false,
}, },
"local_account_1_status_4_attachment_1": { "local_account_1_status_4_attachment_1": {
ID: "510f6033-798b-4390-81b1-c38ca2205ad3", ID: "01F8MH7TDVANYKWVE8VVKFPJTJ",
StatusID: "18524c05-97dc-46d7-b474-c811bd9e1e32", StatusID: "01F8MH82FYRXD2RC6108DAJ5HB",
URL: "http://localhost:8080/fileserver/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/original/510f6033-798b-4390-81b1-c38ca2205ad3.gif", URL: "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01F8MH7TDVANYKWVE8VVKFPJTJ.gif",
RemoteURL: "", RemoteURL: "",
CreatedAt: time.Now().Add(-1 * time.Hour), CreatedAt: time.Now().Add(-1 * time.Hour),
UpdatedAt: time.Now().Add(-1 * time.Hour), UpdatedAt: time.Now().Add(-1 * time.Hour),
@ -569,32 +545,32 @@ func NewTestAttachments() map[string]*gtsmodel.MediaAttachment {
Y: 0, Y: 0,
}, },
}, },
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
Description: "90's Trent Reznor turning to the camera", Description: "90's Trent Reznor turning to the camera",
ScheduledStatusID: "", ScheduledStatusID: "",
Blurhash: "LEDara58O=t5EMSOENEN9]}?aK%0", Blurhash: "LEDara58O=t5EMSOENEN9]}?aK%0",
Processing: 2, Processing: 2,
File: gtsmodel.File{ File: gtsmodel.File{
Path: "/gotosocial/storage/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/original/510f6033-798b-4390-81b1-c38ca2205ad3.gif", Path: "/gotosocial/storage/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01F8MH7TDVANYKWVE8VVKFPJTJ.gif",
ContentType: "image/gif", ContentType: "image/gif",
FileSize: 1109138, FileSize: 1109138,
UpdatedAt: time.Now().Add(-1 * time.Hour), UpdatedAt: time.Now().Add(-1 * time.Hour),
}, },
Thumbnail: gtsmodel.Thumbnail{ Thumbnail: gtsmodel.Thumbnail{
Path: "/gotosocial/storage/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/small/510f6033-798b-4390-81b1-c38ca2205ad3.jpeg", Path: "/gotosocial/storage/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/small/01F8MH7TDVANYKWVE8VVKFPJTJ.jpeg",
ContentType: "image/jpeg", ContentType: "image/jpeg",
FileSize: 8803, FileSize: 8803,
UpdatedAt: time.Now().Add(-1 * time.Hour), UpdatedAt: time.Now().Add(-1 * time.Hour),
URL: "http://localhost:8080/fileserver/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/small/510f6033-798b-4390-81b1-c38ca2205ad3.jpeg", URL: "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/small/01F8MH7TDVANYKWVE8VVKFPJTJ.jpeg",
RemoteURL: "", RemoteURL: "",
}, },
Avatar: false, Avatar: false,
Header: false, Header: false,
}, },
"local_account_1_unattached_1": { "local_account_1_unattached_1": {
ID: "7a3b9f77-ab30-461e-bdd8-e64bd1db3008", ID: "01F8MH8RMYQ6MSNY3JM2XT1CQ5",
StatusID: "", // this attachment isn't connected to a status YET StatusID: "", // this attachment isn't connected to a status YET
URL: "http://localhost:8080/fileserver/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/original/7a3b9f77-ab30-461e-bdd8-e64bd1db3008.jpeg", URL: "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01F8MH8RMYQ6MSNY3JM2XT1CQ5.jpeg",
RemoteURL: "", RemoteURL: "",
CreatedAt: time.Now().Add(30 * time.Second), CreatedAt: time.Now().Add(30 * time.Second),
UpdatedAt: time.Now().Add(30 * time.Second), UpdatedAt: time.Now().Add(30 * time.Second),
@ -617,32 +593,32 @@ func NewTestAttachments() map[string]*gtsmodel.MediaAttachment {
Y: 0, Y: 0,
}, },
}, },
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
Description: "the oh you meme", Description: "the oh you meme",
ScheduledStatusID: "", ScheduledStatusID: "",
Blurhash: "LSAd]9ogDge-R:M|j=xWIto0xXWX", Blurhash: "LSAd]9ogDge-R:M|j=xWIto0xXWX",
Processing: 2, Processing: 2,
File: gtsmodel.File{ File: gtsmodel.File{
Path: "/gotosocial/storage/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/original/7a3b9f77-ab30-461e-bdd8-e64bd1db3008.jpeg", Path: "/gotosocial/storage/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01F8MH8RMYQ6MSNY3JM2XT1CQ5.jpeg",
ContentType: "image/jpeg", ContentType: "image/jpeg",
FileSize: 27759, FileSize: 27759,
UpdatedAt: time.Now().Add(30 * time.Second), UpdatedAt: time.Now().Add(30 * time.Second),
}, },
Thumbnail: gtsmodel.Thumbnail{ Thumbnail: gtsmodel.Thumbnail{
Path: "/gotosocial/storage/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/small/7a3b9f77-ab30-461e-bdd8-e64bd1db3008.jpeg", Path: "/gotosocial/storage/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/small/01F8MH8RMYQ6MSNY3JM2XT1CQ5.jpeg",
ContentType: "image/jpeg", ContentType: "image/jpeg",
FileSize: 6177, FileSize: 6177,
UpdatedAt: time.Now().Add(30 * time.Second), UpdatedAt: time.Now().Add(30 * time.Second),
URL: "http://localhost:8080/fileserver/580072df-4d03-4684-a412-89fd6f7d77e6/attachment/small/7a3b9f77-ab30-461e-bdd8-e64bd1db3008.jpeg", URL: "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/small/01F8MH8RMYQ6MSNY3JM2XT1CQ5.jpeg",
RemoteURL: "", RemoteURL: "",
}, },
Avatar: false, Avatar: false,
Header: false, Header: false,
}, },
"local_account_1_avatar": { "local_account_1_avatar": {
ID: "a849906f-8b8e-4b43-ac2f-6979ccbcd442", ID: "01F8MH58A357CV5K7R7TJMSH6S",
StatusID: "", // this attachment isn't connected to a status StatusID: "", // this attachment isn't connected to a status
URL: "http://localhost:8080/fileserver/580072df-4d03-4684-a412-89fd6f7d77e6/avatar/original/a849906f-8b8e-4b43-ac2f-6979ccbcd442.jpeg", URL: "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpeg",
RemoteURL: "", RemoteURL: "",
CreatedAt: time.Now().Add(47 * time.Hour), CreatedAt: time.Now().Add(47 * time.Hour),
UpdatedAt: time.Now().Add(47 * time.Hour), UpdatedAt: time.Now().Add(47 * time.Hour),
@ -665,23 +641,23 @@ func NewTestAttachments() map[string]*gtsmodel.MediaAttachment {
Y: 0, Y: 0,
}, },
}, },
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
Description: "a green goblin looking nasty", Description: "a green goblin looking nasty",
ScheduledStatusID: "", ScheduledStatusID: "",
Blurhash: "LKK9MT,p|YSNDkJ-5rsmvnwcOoe:", Blurhash: "LKK9MT,p|YSNDkJ-5rsmvnwcOoe:",
Processing: 2, Processing: 2,
File: gtsmodel.File{ File: gtsmodel.File{
Path: "/gotosocial/storage/580072df-4d03-4684-a412-89fd6f7d77e6/avatar/original/a849906f-8b8e-4b43-ac2f-6979ccbcd442.jpeg", Path: "/gotosocial/storage/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpeg",
ContentType: "image/jpeg", ContentType: "image/jpeg",
FileSize: 457680, FileSize: 457680,
UpdatedAt: time.Now().Add(47 * time.Hour), UpdatedAt: time.Now().Add(47 * time.Hour),
}, },
Thumbnail: gtsmodel.Thumbnail{ Thumbnail: gtsmodel.Thumbnail{
Path: "/gotosocial/storage/580072df-4d03-4684-a412-89fd6f7d77e6/avatar/small/a849906f-8b8e-4b43-ac2f-6979ccbcd442.jpeg", Path: "/gotosocial/storage/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpeg",
ContentType: "image/jpeg", ContentType: "image/jpeg",
FileSize: 15374, FileSize: 15374,
UpdatedAt: time.Now().Add(47 * time.Hour), UpdatedAt: time.Now().Add(47 * time.Hour),
URL: "http://localhost:8080/fileserver/580072df-4d03-4684-a412-89fd6f7d77e6/avatar/small/a849906f-8b8e-4b43-ac2f-6979ccbcd442.jpeg", URL: "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpeg",
RemoteURL: "", RemoteURL: "",
}, },
Avatar: true, Avatar: true,
@ -694,24 +670,24 @@ func NewTestAttachments() map[string]*gtsmodel.MediaAttachment {
func NewTestEmojis() map[string]*gtsmodel.Emoji { func NewTestEmojis() map[string]*gtsmodel.Emoji {
return map[string]*gtsmodel.Emoji{ return map[string]*gtsmodel.Emoji{
"rainbow": { "rainbow": {
ID: "a96ec4f3-1cae-47e4-a508-f9d66a6b221b", ID: "01F8MH9H8E4VG3KDYJR9EGPXCQ",
Shortcode: "rainbow", Shortcode: "rainbow",
Domain: "", Domain: "",
CreatedAt: time.Now(), CreatedAt: time.Now(),
UpdatedAt: time.Now(), UpdatedAt: time.Now(),
ImageRemoteURL: "", ImageRemoteURL: "",
ImageStaticRemoteURL: "", ImageStaticRemoteURL: "",
ImageURL: "http://localhost:8080/fileserver/39b745a3-774d-4b65-8bb2-b63d9e20a343/emoji/original/a96ec4f3-1cae-47e4-a508-f9d66a6b221b.png", ImageURL: "http://localhost:8080/fileserver/01F8MH261H1KSV3GW3016GZRY3/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
ImagePath: "/tmp/gotosocial/39b745a3-774d-4b65-8bb2-b63d9e20a343/emoji/original/a96ec4f3-1cae-47e4-a508-f9d66a6b221b.png", ImagePath: "/tmp/gotosocial/01F8MH261H1KSV3GW3016GZRY3/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
ImageStaticURL: "http://localhost:8080/fileserver/39b745a3-774d-4b65-8bb2-b63d9e20a343/emoji/static/a96ec4f3-1cae-47e4-a508-f9d66a6b221b.png", ImageStaticURL: "http://localhost:8080/fileserver/01F8MH261H1KSV3GW3016GZRY3/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
ImageStaticPath: "/tmp/gotosocial/39b745a3-774d-4b65-8bb2-b63d9e20a343/emoji/static/a96ec4f3-1cae-47e4-a508-f9d66a6b221b.png", ImageStaticPath: "/tmp/gotosocial/01F8MH261H1KSV3GW3016GZRY3/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
ImageContentType: "image/png", ImageContentType: "image/png",
ImageStaticContentType: "image/png", ImageStaticContentType: "image/png",
ImageFileSize: 36702, ImageFileSize: 36702,
ImageStaticFileSize: 10413, ImageStaticFileSize: 10413,
ImageUpdatedAt: time.Now(), ImageUpdatedAt: time.Now(),
Disabled: false, Disabled: false,
URI: "http://localhost:8080/emoji/a96ec4f3-1cae-47e4-a508-f9d66a6b221b", URI: "http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ",
VisibleInPicker: true, VisibleInPicker: true,
CategoryID: "", CategoryID: "",
}, },
@ -761,25 +737,25 @@ func newTestStoredEmoji() map[string]filenames {
func NewTestStatuses() map[string]*gtsmodel.Status { func NewTestStatuses() map[string]*gtsmodel.Status {
return map[string]*gtsmodel.Status{ return map[string]*gtsmodel.Status{
"admin_account_status_1": { "admin_account_status_1": {
ID: "502ccd6f-0edf-48d7-9016-2dfa4d3714cd", ID: "01F8MH75CBF9JFX4ZAD54N0W0R",
URI: "http://localhost:8080/users/admin/statuses/502ccd6f-0edf-48d7-9016-2dfa4d3714cd", URI: "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
URL: "http://localhost:8080/@admin/statuses/502ccd6f-0edf-48d7-9016-2dfa4d3714cd", URL: "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
Content: "hello world! #welcome ! first post on the instance :rainbow: !", Content: "hello world! #welcome ! first post on the instance :rainbow: !",
Attachments: []string{"b052241b-f30f-4dc6-92fc-2bad0be1f8d8"}, Attachments: []string{"01F8MH6NEM8D7527KZAECTCR76"},
Tags: []string{"a7e8f5ca-88a1-4652-8079-a187eab8d56e"}, Tags: []string{"01F8MHA1A2NF9MJ3WCCQ3K8BSZ"},
Mentions: []string{}, Mentions: []string{},
Emojis: []string{"a96ec4f3-1cae-47e4-a508-f9d66a6b221b"}, Emojis: []string{"01F8MH9H8E4VG3KDYJR9EGPXCQ"},
CreatedAt: time.Now().Add(-71 * time.Hour), CreatedAt: time.Now().Add(-71 * time.Hour),
UpdatedAt: time.Now().Add(-71 * time.Hour), UpdatedAt: time.Now().Add(-71 * time.Hour),
Local: true, Local: true,
AccountID: "8020dbb4-1e7b-4d99-a872-4cf94e64210f", AccountID: "01F8MH17FWEB39HZJ76B6VXSKF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "", ContentWarning: "",
Visibility: gtsmodel.VisibilityPublic, Visibility: gtsmodel.VisibilityPublic,
Sensitive: false, Sensitive: false,
Language: "en", Language: "en",
CreatedWithApplicationID: "9bf9e368-037f-444d-8ffd-1091d1c21c4c", CreatedWithApplicationID: "01F8MGXQRHYF5QPMTMXP78QC2F",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: true, Boostable: true,
@ -789,21 +765,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"admin_account_status_2": { "admin_account_status_2": {
ID: "0fb3f1ac-5cd8-48ac-9050-3d95dc7e44e9", ID: "01F8MHAAY43M6RJ473VQFCVH37",
URI: "http://localhost:8080/users/admin/statuses/0fb3f1ac-5cd8-48ac-9050-3d95dc7e44e9", URI: "http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37",
URL: "http://localhost:8080/@admin/statuses/0fb3f1ac-5cd8-48ac-9050-3d95dc7e44e9", URL: "http://localhost:8080/@admin/statuses/01F8MHAAY43M6RJ473VQFCVH37",
Content: "🐕🐕🐕🐕🐕", Content: "🐕🐕🐕🐕🐕",
CreatedAt: time.Now().Add(-70 * time.Hour), CreatedAt: time.Now().Add(-70 * time.Hour),
UpdatedAt: time.Now().Add(-70 * time.Hour), UpdatedAt: time.Now().Add(-70 * time.Hour),
Local: true, Local: true,
AccountID: "8020dbb4-1e7b-4d99-a872-4cf94e64210f", AccountID: "01F8MH17FWEB39HZJ76B6VXSKF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "open to see some puppies", ContentWarning: "open to see some puppies",
Visibility: gtsmodel.VisibilityPublic, Visibility: gtsmodel.VisibilityPublic,
Sensitive: true, Sensitive: true,
Language: "en", Language: "en",
CreatedWithApplicationID: "9bf9e368-037f-444d-8ffd-1091d1c21c4c", CreatedWithApplicationID: "01F8MGXQRHYF5QPMTMXP78QC2F",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: true, Boostable: true,
@ -813,21 +789,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_1_status_1": { "local_account_1_status_1": {
ID: "91b1e795-74ff-4672-a4c4-476616710e2d", ID: "01F8MHAMCHF6Y650WCRSCP4WMY",
URI: "http://localhost:8080/users/the_mighty_zork/statuses/91b1e795-74ff-4672-a4c4-476616710e2d", URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
URL: "http://localhost:8080/@the_mighty_zork/statuses/91b1e795-74ff-4672-a4c4-476616710e2d", URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
Content: "hello everyone!", Content: "hello everyone!",
CreatedAt: time.Now().Add(-47 * time.Hour), CreatedAt: time.Now().Add(-47 * time.Hour),
UpdatedAt: time.Now().Add(-47 * time.Hour), UpdatedAt: time.Now().Add(-47 * time.Hour),
Local: true, Local: true,
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "introduction post", ContentWarning: "introduction post",
Visibility: gtsmodel.VisibilityPublic, Visibility: gtsmodel.VisibilityPublic,
Sensitive: true, Sensitive: true,
Language: "en", Language: "en",
CreatedWithApplicationID: "f88697b8-ee3d-46c2-ac3f-dbb85566c3cc", CreatedWithApplicationID: "01F8MGY43H3N2C8EWPR2FPYEXG",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: true, Boostable: true,
@ -837,21 +813,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_1_status_2": { "local_account_1_status_2": {
ID: "3dd328d9-8bb1-48f5-bc96-5ccc1c696b4c", ID: "01F8MHAYFKS4KMXF8K5Y1C0KRN",
URI: "http://localhost:8080/users/the_mighty_zork/statuses/3dd328d9-8bb1-48f5-bc96-5ccc1c696b4c", URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAYFKS4KMXF8K5Y1C0KRN",
URL: "http://localhost:8080/@the_mighty_zork/statuses/3dd328d9-8bb1-48f5-bc96-5ccc1c696b4c", URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MHAYFKS4KMXF8K5Y1C0KRN",
Content: "this is an unlocked local-only post that shouldn't federate, but it's still boostable, replyable, and likeable", Content: "this is an unlocked local-only post that shouldn't federate, but it's still boostable, replyable, and likeable",
CreatedAt: time.Now().Add(-46 * time.Hour), CreatedAt: time.Now().Add(-46 * time.Hour),
UpdatedAt: time.Now().Add(-46 * time.Hour), UpdatedAt: time.Now().Add(-46 * time.Hour),
Local: true, Local: true,
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "", ContentWarning: "",
Visibility: gtsmodel.VisibilityUnlocked, Visibility: gtsmodel.VisibilityUnlocked,
Sensitive: false, Sensitive: false,
Language: "en", Language: "en",
CreatedWithApplicationID: "f88697b8-ee3d-46c2-ac3f-dbb85566c3cc", CreatedWithApplicationID: "01F8MGY43H3N2C8EWPR2FPYEXG",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: false, Federated: false,
Boostable: true, Boostable: true,
@ -861,21 +837,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_1_status_3": { "local_account_1_status_3": {
ID: "5e41963f-8ab9-4147-9f00-52d56e19da65", ID: "01F8MHBBN8120SYH7D5S050MGK",
URI: "http://localhost:8080/users/the_mighty_zork/statuses/5e41963f-8ab9-4147-9f00-52d56e19da65", URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHBBN8120SYH7D5S050MGK",
URL: "http://localhost:8080/@the_mighty_zork/statuses/5e41963f-8ab9-4147-9f00-52d56e19da65", URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MHBBN8120SYH7D5S050MGK",
Content: "this is a very personal post that I don't want anyone to interact with at all, and i only want mutuals to see it", Content: "this is a very personal post that I don't want anyone to interact with at all, and i only want mutuals to see it",
CreatedAt: time.Now().Add(-45 * time.Hour), CreatedAt: time.Now().Add(-45 * time.Hour),
UpdatedAt: time.Now().Add(-45 * time.Hour), UpdatedAt: time.Now().Add(-45 * time.Hour),
Local: true, Local: true,
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "test: you shouldn't be able to interact with this post in any way", ContentWarning: "test: you shouldn't be able to interact with this post in any way",
Visibility: gtsmodel.VisibilityMutualsOnly, Visibility: gtsmodel.VisibilityMutualsOnly,
Sensitive: false, Sensitive: false,
Language: "en", Language: "en",
CreatedWithApplicationID: "f88697b8-ee3d-46c2-ac3f-dbb85566c3cc", CreatedWithApplicationID: "01F8MGY43H3N2C8EWPR2FPYEXG",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: false, Boostable: false,
@ -885,22 +861,22 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_1_status_4": { "local_account_1_status_4": {
ID: "18524c05-97dc-46d7-b474-c811bd9e1e32", ID: "01F8MH82FYRXD2RC6108DAJ5HB",
URI: "http://localhost:8080/users/the_mighty_zork/statuses/18524c05-97dc-46d7-b474-c811bd9e1e32", URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MH82FYRXD2RC6108DAJ5HB",
URL: "http://localhost:8080/@the_mighty_zork/statuses/18524c05-97dc-46d7-b474-c811bd9e1e32", URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MH82FYRXD2RC6108DAJ5HB",
Content: "here's a little gif of trent", Content: "here's a little gif of trent",
Attachments: []string{"510f6033-798b-4390-81b1-c38ca2205ad3"}, Attachments: []string{"01F8MH7TDVANYKWVE8VVKFPJTJ"},
CreatedAt: time.Now().Add(-1 * time.Hour), CreatedAt: time.Now().Add(-1 * time.Hour),
UpdatedAt: time.Now().Add(-1 * time.Hour), UpdatedAt: time.Now().Add(-1 * time.Hour),
Local: true, Local: true,
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "eye contact, trent reznor gif", ContentWarning: "eye contact, trent reznor gif",
Visibility: gtsmodel.VisibilityMutualsOnly, Visibility: gtsmodel.VisibilityMutualsOnly,
Sensitive: false, Sensitive: false,
Language: "en", Language: "en",
CreatedWithApplicationID: "f88697b8-ee3d-46c2-ac3f-dbb85566c3cc", CreatedWithApplicationID: "01F8MGY43H3N2C8EWPR2FPYEXG",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: true, Boostable: true,
@ -910,21 +886,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_2_status_1": { "local_account_2_status_1": {
ID: "8945ccf2-3873-45e9-aa13-fd7163f19775", ID: "01F8MHBQCBTDKN6X5VHGMMN4MA",
URI: "http://localhost:8080/users/1happyturtle/statuses/8945ccf2-3873-45e9-aa13-fd7163f19775", URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHBQCBTDKN6X5VHGMMN4MA",
URL: "http://localhost:8080/@1happyturtle/statuses/8945ccf2-3873-45e9-aa13-fd7163f19775", URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHBQCBTDKN6X5VHGMMN4MA",
Content: "🐢 hi everyone i post about turtles 🐢", Content: "🐢 hi everyone i post about turtles 🐢",
CreatedAt: time.Now().Add(-189 * time.Hour), CreatedAt: time.Now().Add(-189 * time.Hour),
UpdatedAt: time.Now().Add(-189 * time.Hour), UpdatedAt: time.Now().Add(-189 * time.Hour),
Local: true, Local: true,
AccountID: "eecaad73-5703-426d-9312-276641daa31e", AccountID: "01F8MH5NBDF2MV7CTC4Q5128HF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "introduction post", ContentWarning: "introduction post",
Visibility: gtsmodel.VisibilityPublic, Visibility: gtsmodel.VisibilityPublic,
Sensitive: true, Sensitive: true,
Language: "en", Language: "en",
CreatedWithApplicationID: "6b0cd164-8497-4cd5-bec9-957886fac5df", CreatedWithApplicationID: "01F8MGYG9E893WRHW0TAEXR8GJ",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: true, Boostable: true,
@ -934,21 +910,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_2_status_2": { "local_account_2_status_2": {
ID: "c7e25a86-f0d3-4705-a73c-c597f687d3dd", ID: "01F8MHC0H0A7XHTVH5F596ZKBM",
URI: "http://localhost:8080/users/1happyturtle/statuses/c7e25a86-f0d3-4705-a73c-c597f687d3dd", URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHC0H0A7XHTVH5F596ZKBM",
URL: "http://localhost:8080/@1happyturtle/statuses/c7e25a86-f0d3-4705-a73c-c597f687d3dd", URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHC0H0A7XHTVH5F596ZKBM",
Content: "🐢 this one is federated, likeable, and boostable but not replyable 🐢", Content: "🐢 this one is federated, likeable, and boostable but not replyable 🐢",
CreatedAt: time.Now().Add(-1 * time.Minute), CreatedAt: time.Now().Add(-1 * time.Minute),
UpdatedAt: time.Now().Add(-1 * time.Minute), UpdatedAt: time.Now().Add(-1 * time.Minute),
Local: true, Local: true,
AccountID: "eecaad73-5703-426d-9312-276641daa31e", AccountID: "01F8MH5NBDF2MV7CTC4Q5128HF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "", ContentWarning: "",
Visibility: gtsmodel.VisibilityPublic, Visibility: gtsmodel.VisibilityPublic,
Sensitive: true, Sensitive: true,
Language: "en", Language: "en",
CreatedWithApplicationID: "6b0cd164-8497-4cd5-bec9-957886fac5df", CreatedWithApplicationID: "01F8MGYG9E893WRHW0TAEXR8GJ",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: true, Boostable: true,
@ -958,21 +934,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_2_status_3": { "local_account_2_status_3": {
ID: "75960e30-7a8e-4f45-87fa-440a4d1c9572", ID: "01F8MHC8VWDRBQR0N1BATDDEM5",
URI: "http://localhost:8080/users/1happyturtle/statuses/75960e30-7a8e-4f45-87fa-440a4d1c9572", URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHC8VWDRBQR0N1BATDDEM5",
URL: "http://localhost:8080/@1happyturtle/statuses/75960e30-7a8e-4f45-87fa-440a4d1c9572", URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHC8VWDRBQR0N1BATDDEM5",
Content: "🐢 i don't mind people sharing this one but I don't want likes or replies to it because cba🐢", Content: "🐢 i don't mind people sharing this one but I don't want likes or replies to it because cba🐢",
CreatedAt: time.Now().Add(-2 * time.Minute), CreatedAt: time.Now().Add(-2 * time.Minute),
UpdatedAt: time.Now().Add(-2 * time.Minute), UpdatedAt: time.Now().Add(-2 * time.Minute),
Local: true, Local: true,
AccountID: "eecaad73-5703-426d-9312-276641daa31e", AccountID: "01F8MH5NBDF2MV7CTC4Q5128HF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "you won't be able to like or reply to this", ContentWarning: "you won't be able to like or reply to this",
Visibility: gtsmodel.VisibilityUnlocked, Visibility: gtsmodel.VisibilityUnlocked,
Sensitive: true, Sensitive: true,
Language: "en", Language: "en",
CreatedWithApplicationID: "6b0cd164-8497-4cd5-bec9-957886fac5df", CreatedWithApplicationID: "01F8MGYG9E893WRHW0TAEXR8GJ",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: true, Federated: true,
Boostable: true, Boostable: true,
@ -982,21 +958,21 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
ActivityStreamsType: gtsmodel.ActivityStreamsNote, ActivityStreamsType: gtsmodel.ActivityStreamsNote,
}, },
"local_account_2_status_4": { "local_account_2_status_4": {
ID: "57e41a35-20da-4bc9-9cfd-db2089f924db", ID: "01F8MHCP5P2NWYQ416SBA0XSEV",
URI: "http://localhost:8080/users/1happyturtle/statuses/57e41a35-20da-4bc9-9cfd-db2089f924db", URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHCP5P2NWYQ416SBA0XSEV",
URL: "http://localhost:8080/@1happyturtle/statuses/57e41a35-20da-4bc9-9cfd-db2089f924db", URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHCP5P2NWYQ416SBA0XSEV",
Content: "🐢 this is a public status but I want it local only and not boostable 🐢", Content: "🐢 this is a public status but I want it local only and not boostable 🐢",
CreatedAt: time.Now().Add(-1 * time.Minute), CreatedAt: time.Now().Add(-1 * time.Minute),
UpdatedAt: time.Now().Add(-1 * time.Minute), UpdatedAt: time.Now().Add(-1 * time.Minute),
Local: true, Local: true,
AccountID: "eecaad73-5703-426d-9312-276641daa31e", AccountID: "01F8MH5NBDF2MV7CTC4Q5128HF",
InReplyToID: "", InReplyToID: "",
BoostOfID: "", BoostOfID: "",
ContentWarning: "", ContentWarning: "",
Visibility: gtsmodel.VisibilityPublic, Visibility: gtsmodel.VisibilityPublic,
Sensitive: true, Sensitive: true,
Language: "en", Language: "en",
CreatedWithApplicationID: "6b0cd164-8497-4cd5-bec9-957886fac5df", CreatedWithApplicationID: "01F8MGYG9E893WRHW0TAEXR8GJ",
VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{ VisibilityAdvanced: &gtsmodel.VisibilityAdvanced{
Federated: false, Federated: false,
Boostable: false, Boostable: false,
@ -1012,7 +988,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
func NewTestTags() map[string]*gtsmodel.Tag { func NewTestTags() map[string]*gtsmodel.Tag {
return map[string]*gtsmodel.Tag{ return map[string]*gtsmodel.Tag{
"welcome": { "welcome": {
ID: "a7e8f5ca-88a1-4652-8079-a187eab8d56e", ID: "01F8MHA1A2NF9MJ3WCCQ3K8BSZ",
Name: "welcome", Name: "welcome",
FirstSeenFromAccountID: "", FirstSeenFromAccountID: "",
CreatedAt: time.Now().Add(-71 * time.Hour), CreatedAt: time.Now().Add(-71 * time.Hour),
@ -1028,11 +1004,12 @@ func NewTestTags() map[string]*gtsmodel.Tag {
func NewTestFaves() map[string]*gtsmodel.StatusFave { func NewTestFaves() map[string]*gtsmodel.StatusFave {
return map[string]*gtsmodel.StatusFave{ return map[string]*gtsmodel.StatusFave{
"local_account_1_admin_account_status_1": { "local_account_1_admin_account_status_1": {
ID: "fc4d42ef-631c-4125-bd9d-88695131284c", ID: "01F8MHD2QCZSZ6WQS2ATVPEYJ9",
CreatedAt: time.Now().Add(-47 * time.Hour), CreatedAt: time.Now().Add(-47 * time.Hour),
AccountID: "580072df-4d03-4684-a412-89fd6f7d77e6", // local account 1 AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF", // local account 1
TargetAccountID: "8020dbb4-1e7b-4d99-a872-4cf94e64210f", // admin account TargetAccountID: "01F8MH17FWEB39HZJ76B6VXSKF", // admin account
StatusID: "502ccd6f-0edf-48d7-9016-2dfa4d3714cd", // admin account status 1 StatusID: "01F8MH75CBF9JFX4ZAD54N0W0R", // admin account status 1
URI: "http://localhost:8080/users/the_mighty_zork/liked/01F8MHD2QCZSZ6WQS2ATVPEYJ9",
}, },
} }
} }