summaryrefslogtreecommitdiff
path: root/internal/api
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2025-01-08 22:38:27 +0100
committerLibravatar GitHub <noreply@github.com>2025-01-08 22:38:27 +0100
commit8daa4dae3435e45b4367c9d59bfa27a063fba2d4 (patch)
tree9d2c937b79e001c98e9499c65d2a1346000a895a /internal/api
parent[feature] Fetch + create domain permissions from subscriptions nightly (#3635) (diff)
downloadgotosocial-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 = &gtsmodel.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{})
}