diff options
author | 2024-03-06 02:15:58 -0800 | |
---|---|---|
committer | 2024-03-06 11:15:58 +0100 | |
commit | 61a2b91f454a6eb0dd383fc8614fee154654fa08 (patch) | |
tree | fcf6159f00c3a0833e6647dd00cd03d03774e2b2 /testrig/testmodels.go | |
parent | [chore]: Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#2714) (diff) | |
download | gotosocial-61a2b91f454a6eb0dd383fc8614fee154654fa08.tar.xz |
[feature] Filters v1 (#2594)
* Implement client-side v1 filters
* Exclude linter false positives
* Update test/envparsing.sh
* Fix minor Swagger, style, and Bun usage issues
* Regenerate Swagger
* De-generify filter keywords
* Remove updating filter statuses
This is an operation that the Mastodon v2 filter API doesn't actually have, because filter statuses, unlike keywords, don't have options: the only info they contain is the status ID to be filtered.
* Add a test for filter statuses specifically
* De-generify filter statuses
* Inline FilterEntry
* Use vertical style for Bun operations consistently
* Add comment on Filter DB interface
* Remove GoLand linter control comments
Our existing linters should catch these, or they don't matter very much
* Reduce memory ratio for filters
Diffstat (limited to 'testrig/testmodels.go')
-rw-r--r-- | testrig/testmodels.go | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/testrig/testmodels.go b/testrig/testmodels.go index b350cafe5..929317904 100644 --- a/testrig/testmodels.go +++ b/testrig/testmodels.go @@ -3263,6 +3263,87 @@ func NewTestDereferenceRequests(accounts map[string]*gtsmodel.Account) map[strin } } +func NewTestFilters() map[string]*gtsmodel.Filter { + return map[string]*gtsmodel.Filter{ + "local_account_1_filter_1": { + ID: "01HN26VM6KZTW1ANNRVSBMA461", + CreatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + UpdatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF", + Title: "fnord", + Action: gtsmodel.FilterActionWarn, + ContextHome: util.Ptr(true), + ContextPublic: util.Ptr(true), + }, + "local_account_1_filter_2": { + ID: "01HN277FSPQAWXZXK92QPPYF79", + CreatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + UpdatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF", + Title: "metasyntactic variables", + Action: gtsmodel.FilterActionWarn, + ContextHome: util.Ptr(true), + ContextPublic: util.Ptr(true), + }, + "local_account_2_filter_1": { + ID: "01HNGFYJBED9FS0VWRVMY4TKXH", + CreatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + UpdatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + AccountID: "01F8MH1VYJAE00TVVGMM5JNJ8X", + Title: "gamer words", + Action: gtsmodel.FilterActionWarn, + ContextHome: util.Ptr(true), + ContextPublic: util.Ptr(true), + }, + } +} + +func NewTestFilterKeywords() map[string]*gtsmodel.FilterKeyword { + return map[string]*gtsmodel.FilterKeyword{ + "local_account_1_filter_1_keyword_1": { + ID: "01HN272TAVWAXX72ZX4M8JZ0PS", + CreatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + UpdatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF", + FilterID: "01HN26VM6KZTW1ANNRVSBMA461", + Keyword: "fnord", + WholeWord: util.Ptr(true), + }, + "local_account_1_filter_2_keyword_1": { + ID: "01HN277Y11ENG4EC1ERMAC9FH4", + CreatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + UpdatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF", + FilterID: "01HN277FSPQAWXZXK92QPPYF79", + Keyword: "foo", + WholeWord: util.Ptr(true), + }, + "local_account_1_filter_2_keyword_2": { + ID: "01HN278494N88BA2FY4DZ5JTNS", + CreatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + UpdatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + AccountID: "01F8MH1H7YV1Z7D2C8K2730QBF", + FilterID: "01HN277FSPQAWXZXK92QPPYF79", + Keyword: "bar", + WholeWord: util.Ptr(true), + }, + "local_account_2_filter_1_keyword_1": { + ID: "01HNGG51HV2JT67XQ5MQ7RA1WE", + CreatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + UpdatedAt: TimeMustParse("2024-01-25T12:20:03+02:00"), + AccountID: "01F8MH1VYJAE00TVVGMM5JNJ8X", + FilterID: "01HNGFYJBED9FS0VWRVMY4TKXH", + Keyword: "Virtual Boy", + WholeWord: util.Ptr(true), + }, + } +} + +func NewTestFilterStatuses() map[string]*gtsmodel.FilterStatus { + // FUTURE: (filters v2) test filter statuses + return map[string]*gtsmodel.FilterStatus{} +} + // GetSignatureForActivity prepares a mock HTTP request as if it were going to deliver activity to destination signed for privkey and pubKeyID, signs the request and returns the header values. func GetSignatureForActivity(activity pub.Activity, pubKeyID string, privkey *rsa.PrivateKey, destination *url.URL) (signatureHeader string, digestHeader string, dateHeader string) { // convert the activity into json bytes |