diff options
| author | 2024-09-28 20:47:46 +0000 | |
|---|---|---|
| committer | 2024-09-28 22:47:46 +0200 | |
| commit | 095663f5ccd10a4cd04ef6ad836f37346fc748ae (patch) | |
| tree | 2a0c5a6f2d958fcf88501776013485b987766701 /internal/api/client | |
| parent | [chore] use string formatting package agnostic way of printing request attemp... (diff) | |
| download | gotosocial-095663f5ccd10a4cd04ef6ad836f37346fc748ae.tar.xz | |
[bugfix] visibility after implicit approval not getting invalidated (#3370)
* replicate issue
* update go-structr to v0.8.10 with internal linked-list fix, small tweaks to caching of interaction requests
* remove debug function
---------
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Diffstat (limited to 'internal/api/client')
| -rw-r--r-- | internal/api/client/accounts/statuses_test.go | 2 | ||||
| -rw-r--r-- | internal/api/client/statuses/statusboost_test.go | 4 | ||||
| -rw-r--r-- | internal/api/client/statuses/statusfave_test.go | 28 | 
3 files changed, 28 insertions, 6 deletions
diff --git a/internal/api/client/accounts/statuses_test.go b/internal/api/client/accounts/statuses_test.go index 2c32e6571..f7a304967 100644 --- a/internal/api/client/accounts/statuses_test.go +++ b/internal/api/client/accounts/statuses_test.go @@ -73,7 +73,7 @@ func (suite *AccountStatusesTestSuite) TestGetStatusesPublicOnly() {  		suite.Equal(apimodel.VisibilityPublic, s.Visibility)  	} -	suite.Equal(`<http://localhost:8080/api/v1/accounts/01F8MH17FWEB39HZJ76B6VXSKF/statuses?limit=20&max_id=01F8MH75CBF9JFX4ZAD54N0W0R&exclude_replies=false&exclude_reblogs=false&pinned=false&only_media=false&only_public=true>; rel="next", <http://localhost:8080/api/v1/accounts/01F8MH17FWEB39HZJ76B6VXSKF/statuses?limit=20&min_id=01G36SF3V6Y6V5BF9P4R7PQG7G&exclude_replies=false&exclude_reblogs=false&pinned=false&only_media=false&only_public=true>; rel="prev"`, result.Header.Get("link")) +	suite.Equal(`<http://localhost:8080/api/v1/accounts/01F8MH17FWEB39HZJ76B6VXSKF/statuses?limit=20&max_id=01F8MH75CBF9JFX4ZAD54N0W0R&exclude_replies=false&exclude_reblogs=false&pinned=false&only_media=false&only_public=true>; rel="next", <http://localhost:8080/api/v1/accounts/01F8MH17FWEB39HZJ76B6VXSKF/statuses?limit=20&min_id=01J5QVB9VC76NPPRQ207GG4DRZ&exclude_replies=false&exclude_reblogs=false&pinned=false&only_media=false&only_public=true>; rel="prev"`, result.Header.Get("link"))  }  func (suite *AccountStatusesTestSuite) TestGetStatusesPublicOnlyMediaOnly() { diff --git a/internal/api/client/statuses/statusboost_test.go b/internal/api/client/statuses/statusboost_test.go index 8642ba7aa..1f92d8b3f 100644 --- a/internal/api/client/statuses/statusboost_test.go +++ b/internal/api/client/statuses/statusboost_test.go @@ -591,7 +591,7 @@ func (suite *StatusBoostTestSuite) TestPostBoostImplicitAccept() {      "text": "Hi @1happyturtle, can I reply?",      "uri": "http://localhost:8080/some/determinate/url",      "url": "http://localhost:8080/some/determinate/url", -    "visibility": "unlisted" +    "visibility": "public"    },    "reblogged": true,    "reblogs_count": 0, @@ -601,7 +601,7 @@ func (suite *StatusBoostTestSuite) TestPostBoostImplicitAccept() {    "tags": [],    "uri": "http://localhost:8080/some/determinate/url",    "url": "http://localhost:8080/some/determinate/url", -  "visibility": "unlisted" +  "visibility": "public"  }`, out)  	// Target status should no diff --git a/internal/api/client/statuses/statusfave_test.go b/internal/api/client/statuses/statusfave_test.go index fdc8741c7..bd81c0cf9 100644 --- a/internal/api/client/statuses/statusfave_test.go +++ b/internal/api/client/statuses/statusfave_test.go @@ -27,6 +27,7 @@ import (  	"github.com/gin-gonic/gin"  	"github.com/stretchr/testify/suite"  	"github.com/superseriousbusiness/gotosocial/internal/api/client/statuses" +	"github.com/superseriousbusiness/gotosocial/internal/filter/visibility"  	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"  	apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" @@ -185,13 +186,24 @@ func (suite *StatusFaveTestSuite) TestPostUnfaveable() {  // Fave a status that's pending approval by us.  func (suite *StatusFaveTestSuite) TestPostFaveImplicitAccept() {  	var ( +		ctx          = context.Background()  		targetStatus = suite.testStatuses["admin_account_status_5"]  		app          = suite.testApplications["application_1"]  		token        = suite.testTokens["local_account_2"]  		user         = suite.testUsers["local_account_2"]  		account      = suite.testAccounts["local_account_2"] +		visFilter    = visibility.NewFilter(&suite.state)  	) +	// Check visibility of status to public before posting fave. +	visible, err := visFilter.StatusVisible(ctx, nil, targetStatus) +	if err != nil { +		suite.FailNow(err.Error()) +	} +	if visible { +		suite.FailNow("status should not be visible yet") +	} +  	out, recorder := suite.postStatusFave(  		targetStatus.ID,  		app, @@ -268,30 +280,40 @@ func (suite *StatusFaveTestSuite) TestPostFaveImplicitAccept() {    "text": "Hi @1happyturtle, can I reply?",    "uri": "http://localhost:8080/some/determinate/url",    "url": "http://localhost:8080/some/determinate/url", -  "visibility": "unlisted" +  "visibility": "public"  }`, out)  	// Target status should no  	// longer be pending approval.  	dbStatus, err := suite.state.DB.GetStatusByID( -		context.Background(), +		ctx,  		targetStatus.ID,  	)  	if err != nil {  		suite.FailNow(err.Error())  	}  	suite.False(*dbStatus.PendingApproval) +	suite.NotEmpty(dbStatus.ApprovedByURI)  	// There should be an Accept  	// stored for the target status.  	intReq, err := suite.state.DB.GetInteractionRequestByInteractionURI( -		context.Background(), targetStatus.URI, +		ctx, targetStatus.URI,  	)  	if err != nil {  		suite.FailNow(err.Error())  	}  	suite.NotZero(intReq.AcceptedAt)  	suite.NotEmpty(intReq.URI) + +	// Check visibility of status to public after posting fave. +	visible, err = visFilter.StatusVisible(ctx, nil, dbStatus) +	if err != nil { +		suite.FailNow(err.Error()) +	} +	if !visible { +		suite.FailNow("status should be visible") +	}  }  func TestStatusFaveTestSuite(t *testing.T) {  | 
