mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 07:52:24 -05:00
[feature] Option to hide followers/following (#2788)
This commit is contained in:
parent
29972e2c93
commit
f05874be30
19 changed files with 322 additions and 83 deletions
|
|
@ -49,6 +49,7 @@ func TestASCollection(t *testing.T) {
|
|||
// Create new collection using builder function.
|
||||
c := ap.NewASCollection(ap.CollectionParams{
|
||||
ID: parseURI(idURI),
|
||||
First: new(paging.Page),
|
||||
Query: url.Values{"limit": []string{"40"}},
|
||||
Total: total,
|
||||
})
|
||||
|
|
@ -60,6 +61,37 @@ func TestASCollection(t *testing.T) {
|
|||
assert.Equal(t, expect, s)
|
||||
}
|
||||
|
||||
func TestASCollectionTotalOnly(t *testing.T) {
|
||||
const (
|
||||
proto = "https"
|
||||
host = "zorg.flabormagorg.xyz"
|
||||
path = "/users/itsa_me_mario"
|
||||
|
||||
idURI = proto + "://" + host + path
|
||||
total = 10
|
||||
)
|
||||
|
||||
// Create JSON string of expected output.
|
||||
expect := toJSON(map[string]any{
|
||||
"@context": "https://www.w3.org/ns/activitystreams",
|
||||
"type": "Collection",
|
||||
"id": idURI,
|
||||
"totalItems": total,
|
||||
})
|
||||
|
||||
// Create new collection using builder function.
|
||||
c := ap.NewASCollection(ap.CollectionParams{
|
||||
ID: parseURI(idURI),
|
||||
Total: total,
|
||||
})
|
||||
|
||||
// Serialize collection.
|
||||
s := toJSON(c)
|
||||
|
||||
// Ensure outputs are equal.
|
||||
assert.Equal(t, expect, s)
|
||||
}
|
||||
|
||||
func TestASCollectionPage(t *testing.T) {
|
||||
const (
|
||||
proto = "https"
|
||||
|
|
@ -132,6 +164,7 @@ func TestASOrderedCollection(t *testing.T) {
|
|||
// Create new collection using builder function.
|
||||
c := ap.NewASOrderedCollection(ap.CollectionParams{
|
||||
ID: parseURI(idURI),
|
||||
First: new(paging.Page),
|
||||
Query: url.Values{"limit": []string{"40"}},
|
||||
Total: total,
|
||||
})
|
||||
|
|
@ -143,6 +176,33 @@ func TestASOrderedCollection(t *testing.T) {
|
|||
assert.Equal(t, expect, s)
|
||||
}
|
||||
|
||||
func TestASOrderedCollectionTotalOnly(t *testing.T) {
|
||||
const (
|
||||
idURI = "https://zorg.flabormagorg.xyz/users/itsa_me_mario"
|
||||
total = 10
|
||||
)
|
||||
|
||||
// Create JSON string of expected output.
|
||||
expect := toJSON(map[string]any{
|
||||
"@context": "https://www.w3.org/ns/activitystreams",
|
||||
"type": "OrderedCollection",
|
||||
"id": idURI,
|
||||
"totalItems": total,
|
||||
})
|
||||
|
||||
// Create new collection using builder function.
|
||||
c := ap.NewASOrderedCollection(ap.CollectionParams{
|
||||
ID: parseURI(idURI),
|
||||
Total: total,
|
||||
})
|
||||
|
||||
// Serialize collection.
|
||||
s := toJSON(c)
|
||||
|
||||
// Ensure outputs are equal.
|
||||
assert.Equal(t, expect, s)
|
||||
}
|
||||
|
||||
func TestASOrderedCollectionPage(t *testing.T) {
|
||||
const (
|
||||
proto = "https"
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ type CollectionParams struct {
|
|||
ID *url.URL
|
||||
|
||||
// First page details.
|
||||
First paging.Page
|
||||
First *paging.Page
|
||||
Query url.Values
|
||||
|
||||
// Total no. items.
|
||||
|
|
@ -377,6 +377,11 @@ func buildCollection[C CollectionBuilder](collection C, params CollectionParams)
|
|||
totalItems.Set(params.Total)
|
||||
collection.SetActivityStreamsTotalItems(totalItems)
|
||||
|
||||
// No First page means we're done.
|
||||
if params.First == nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Append paging query params
|
||||
// to those already in ID prop.
|
||||
pageQueryParams := appendQuery(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue