diff options
author | 2025-01-08 22:38:27 +0100 | |
---|---|---|
committer | 2025-01-08 22:38:27 +0100 | |
commit | 8daa4dae3435e45b4367c9d59bfa27a063fba2d4 (patch) | |
tree | 9d2c937b79e001c98e9499c65d2a1346000a895a /internal/api | |
parent | [feature] Fetch + create domain permissions from subscriptions nightly (#3635) (diff) | |
download | gotosocial-8daa4dae3435e45b4367c9d59bfa27a063fba2d4.tar.xz |
[bugfix] More permissive CSV parsing for perm subs, text parse fix (#3638)
* [bugfix] More permissive CSV parsing for perm subs, text parse fix
* wee
* change the way dry works, slightly
* me oh my, i'm just a little guy
* we're just normal men
Diffstat (limited to 'internal/api')
-rw-r--r-- | internal/api/client/admin/domainpermissionsubscriptiontest_test.go (renamed from internal/api/client/admin/domainpermissionsubscruptiontest_test.go) | 81 |
1 files changed, 80 insertions, 1 deletions
diff --git a/internal/api/client/admin/domainpermissionsubscruptiontest_test.go b/internal/api/client/admin/domainpermissionsubscriptiontest_test.go index 46861aba1..c03b950a9 100644 --- a/internal/api/client/admin/domainpermissionsubscruptiontest_test.go +++ b/internal/api/client/admin/domainpermissionsubscriptiontest_test.go @@ -39,7 +39,7 @@ type DomainPermissionSubscriptionTestTestSuite struct { AdminStandardTestSuite } -func (suite *DomainPermissionSubscriptionTestTestSuite) TestDomainPermissionSubscriptionTest() { +func (suite *DomainPermissionSubscriptionTestTestSuite) TestDomainPermissionSubscriptionTestCSV() { var ( ctx = context.Background() testAccount = suite.testAccounts["admin_account"] @@ -120,6 +120,85 @@ func (suite *DomainPermissionSubscriptionTestTestSuite) TestDomainPermissionSubs suite.False(blocked) } +func (suite *DomainPermissionSubscriptionTestTestSuite) TestDomainPermissionSubscriptionTestText() { + var ( + ctx = context.Background() + testAccount = suite.testAccounts["admin_account"] + permSub = >smodel.DomainPermissionSubscription{ + ID: "01JGE681TQSBPAV59GZXPKE62H", + Priority: 255, + Title: "whatever!", + PermissionType: gtsmodel.DomainPermissionBlock, + AsDraft: util.Ptr(false), + AdoptOrphans: util.Ptr(true), + CreatedByAccountID: testAccount.ID, + CreatedByAccount: testAccount, + URI: "https://lists.example.org/baddies.txt", + ContentType: gtsmodel.DomainPermSubContentTypePlain, + } + ) + + // Create a subscription for a plaintext list of baddies. + err := suite.state.DB.PutDomainPermissionSubscription(ctx, permSub) + if err != nil { + suite.FailNow(err.Error()) + } + + // Prepare the request to the /test endpoint. + subPath := strings.ReplaceAll( + admin.DomainPermissionSubscriptionTestPath, + ":id", permSub.ID, + ) + path := "/api" + subPath + recorder := httptest.NewRecorder() + ginCtx := suite.newContext(recorder, http.MethodPost, nil, path, "application/json") + ginCtx.Params = gin.Params{ + gin.Param{ + Key: apiutil.IDKey, + Value: permSub.ID, + }, + } + + // Trigger the handler. + suite.adminModule.DomainPermissionSubscriptionTestPOSTHandler(ginCtx) + suite.Equal(http.StatusOK, recorder.Code) + + // Read the body back. + b, err := io.ReadAll(recorder.Body) + if err != nil { + suite.FailNow(err.Error()) + } + + dst := new(bytes.Buffer) + if err := json.Indent(dst, b, "", " "); err != nil { + suite.FailNow(err.Error()) + } + + // Ensure expected. + suite.Equal(`[ + { + "domain": "bumfaces.net" + }, + { + "domain": "peepee.poopoo" + }, + { + "domain": "nothanks.com" + } +]`, dst.String()) + + // No permissions should be created + // since this is a dry run / test. + blocked, err := suite.state.DB.AreDomainsBlocked( + ctx, + []string{"bumfaces.net", "peepee.poopoo", "nothanks.com"}, + ) + if err != nil { + suite.FailNow(err.Error()) + } + suite.False(blocked) +} + func TestDomainPermissionSubscriptionTestTestSuite(t *testing.T) { suite.Run(t, &DomainPermissionSubscriptionTestTestSuite{}) } |