@atproto/bsky 0.0.74 → 0.0.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getProfiles.js +9 -1
- package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js +10 -2
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.js +8 -1
- package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getPosts.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getPosts.js +8 -1
- package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/api/app/bsky/graph/getList.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/getList.js +32 -2
- package/dist/api/app/bsky/graph/getList.js.map +1 -1
- package/dist/auth-verifier.d.ts +8 -3
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +43 -29
- package/dist/auth-verifier.js.map +1 -1
- package/dist/hydration/hydrator.d.ts +1 -0
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +15 -6
- package/dist/hydration/hydrator.js.map +1 -1
- package/package.json +5 -5
- package/src/api/app/bsky/actor/getProfiles.ts +10 -1
- package/src/api/app/bsky/actor/searchActorsTypeahead.ts +9 -4
- package/src/api/app/bsky/feed/getFeed.ts +12 -1
- package/src/api/app/bsky/feed/getPosts.ts +9 -1
- package/src/api/app/bsky/graph/getList.ts +47 -4
- package/src/auth-verifier.ts +78 -51
- package/src/hydration/hydrator.ts +18 -2
- package/tests/admin/admin-auth.test.ts +15 -8
- package/tests/auth.test.ts +2 -1
- package/tests/data-plane/handle-invalidation.test.ts +31 -5
- package/tests/data-plane/indexing.test.ts +138 -23
- package/tests/data-plane/thread-mutes.test.ts +41 -9
- package/tests/feed-generation.test.ts +150 -32
- package/tests/server.test.ts +1 -1
- package/tests/views/__snapshots__/lists.test.ts.snap +145 -26
- package/tests/views/__snapshots__/starter-packs.test.ts.snap +245 -4
- package/tests/views/account-deactivation.test.ts +8 -2
- package/tests/views/actor-likes.test.ts +27 -6
- package/tests/views/actor-search.test.ts +5 -1
- package/tests/views/author-feed.test.ts +73 -12
- package/tests/views/block-lists.test.ts +201 -40
- package/tests/views/blocks.test.ts +245 -46
- package/tests/views/follows.test.ts +133 -22
- package/tests/views/known-followers.test.ts +43 -7
- package/tests/views/labeler-service.test.ts +36 -6
- package/tests/views/likes.test.ts +8 -5
- package/tests/views/list-feed.test.ts +25 -4
- package/tests/views/lists.test.ts +73 -31
- package/tests/views/mute-lists.test.ts +101 -29
- package/tests/views/mutes.test.ts +77 -17
- package/tests/views/notifications.test.ts +141 -25
- package/tests/views/posts.test.ts +13 -2
- package/tests/views/profile.test.ts +37 -11
- package/tests/views/reposts.test.ts +31 -5
- package/tests/views/starter-packs.test.ts +83 -3
- package/tests/views/suggested-follows.test.ts +31 -5
- package/tests/views/suggestions.test.ts +37 -6
- package/tests/views/thread.test.ts +121 -20
- package/tests/views/threadgating.test.ts +128 -22
- package/tests/views/timeline.test.ts +67 -14
|
@@ -1,5 +1,208 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`starter packs does include users with creator block relationship in list sample for creator 1`] = `
|
|
4
|
+
Array [
|
|
5
|
+
Object {
|
|
6
|
+
"subject": Object {
|
|
7
|
+
"avatar": "https://bsky.public.url/img/avatar/plain/user(1)/cids(0)@jpeg",
|
|
8
|
+
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
9
|
+
"description": "its me!",
|
|
10
|
+
"did": "user(0)",
|
|
11
|
+
"displayName": "ali",
|
|
12
|
+
"handle": "alice.test",
|
|
13
|
+
"indexedAt": "1970-01-01T00:00:00.000Z",
|
|
14
|
+
"labels": Array [
|
|
15
|
+
Object {
|
|
16
|
+
"cid": "cids(1)",
|
|
17
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
18
|
+
"src": "user(0)",
|
|
19
|
+
"uri": "record(1)",
|
|
20
|
+
"val": "self-label-a",
|
|
21
|
+
},
|
|
22
|
+
Object {
|
|
23
|
+
"cid": "cids(1)",
|
|
24
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
25
|
+
"src": "user(0)",
|
|
26
|
+
"uri": "record(1)",
|
|
27
|
+
"val": "self-label-b",
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
"viewer": Object {
|
|
31
|
+
"blockedBy": false,
|
|
32
|
+
"muted": false,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
"uri": "record(0)",
|
|
36
|
+
},
|
|
37
|
+
Object {
|
|
38
|
+
"subject": Object {
|
|
39
|
+
"did": "user(2)",
|
|
40
|
+
"handle": "greta.test",
|
|
41
|
+
"labels": Array [],
|
|
42
|
+
"viewer": Object {
|
|
43
|
+
"blockedBy": false,
|
|
44
|
+
"muted": false,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
"uri": "record(2)",
|
|
48
|
+
},
|
|
49
|
+
Object {
|
|
50
|
+
"subject": Object {
|
|
51
|
+
"did": "user(3)",
|
|
52
|
+
"handle": "frankie.test",
|
|
53
|
+
"labels": Array [],
|
|
54
|
+
"viewer": Object {
|
|
55
|
+
"blockedBy": true,
|
|
56
|
+
"muted": false,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
"uri": "record(3)",
|
|
60
|
+
},
|
|
61
|
+
]
|
|
62
|
+
`;
|
|
63
|
+
|
|
64
|
+
exports[`starter packs does not include users with creator block relationship in list sample for non-creator, in-list viewers 1`] = `
|
|
65
|
+
Array [
|
|
66
|
+
Object {
|
|
67
|
+
"subject": Object {
|
|
68
|
+
"avatar": "https://bsky.public.url/img/avatar/plain/user(1)/cids(0)@jpeg",
|
|
69
|
+
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
70
|
+
"description": "its me!",
|
|
71
|
+
"did": "user(0)",
|
|
72
|
+
"displayName": "ali",
|
|
73
|
+
"handle": "alice.test",
|
|
74
|
+
"indexedAt": "1970-01-01T00:00:00.000Z",
|
|
75
|
+
"labels": Array [
|
|
76
|
+
Object {
|
|
77
|
+
"cid": "cids(1)",
|
|
78
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
79
|
+
"src": "user(0)",
|
|
80
|
+
"uri": "record(2)",
|
|
81
|
+
"val": "self-label-a",
|
|
82
|
+
},
|
|
83
|
+
Object {
|
|
84
|
+
"cid": "cids(1)",
|
|
85
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
86
|
+
"src": "user(0)",
|
|
87
|
+
"uri": "record(2)",
|
|
88
|
+
"val": "self-label-b",
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
"viewer": Object {
|
|
92
|
+
"blockedBy": false,
|
|
93
|
+
"blocking": "record(1)",
|
|
94
|
+
"muted": false,
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
"uri": "record(0)",
|
|
98
|
+
},
|
|
99
|
+
Object {
|
|
100
|
+
"subject": Object {
|
|
101
|
+
"did": "user(2)",
|
|
102
|
+
"handle": "greta.test",
|
|
103
|
+
"labels": Array [],
|
|
104
|
+
"viewer": Object {
|
|
105
|
+
"blockedBy": false,
|
|
106
|
+
"muted": false,
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
"uri": "record(3)",
|
|
110
|
+
},
|
|
111
|
+
]
|
|
112
|
+
`;
|
|
113
|
+
|
|
114
|
+
exports[`starter packs does not include users with creator block relationship in list sample for non-creator, not-in-list viewers 1`] = `
|
|
115
|
+
Array [
|
|
116
|
+
Object {
|
|
117
|
+
"subject": Object {
|
|
118
|
+
"avatar": "https://bsky.public.url/img/avatar/plain/user(1)/cids(0)@jpeg",
|
|
119
|
+
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
120
|
+
"description": "its me!",
|
|
121
|
+
"did": "user(0)",
|
|
122
|
+
"displayName": "ali",
|
|
123
|
+
"handle": "alice.test",
|
|
124
|
+
"indexedAt": "1970-01-01T00:00:00.000Z",
|
|
125
|
+
"labels": Array [
|
|
126
|
+
Object {
|
|
127
|
+
"cid": "cids(1)",
|
|
128
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
129
|
+
"src": "user(0)",
|
|
130
|
+
"uri": "record(3)",
|
|
131
|
+
"val": "self-label-a",
|
|
132
|
+
},
|
|
133
|
+
Object {
|
|
134
|
+
"cid": "cids(1)",
|
|
135
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
136
|
+
"src": "user(0)",
|
|
137
|
+
"uri": "record(3)",
|
|
138
|
+
"val": "self-label-b",
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
"viewer": Object {
|
|
142
|
+
"blockedBy": false,
|
|
143
|
+
"followedBy": "record(2)",
|
|
144
|
+
"following": "record(1)",
|
|
145
|
+
"muted": false,
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
"uri": "record(0)",
|
|
149
|
+
},
|
|
150
|
+
Object {
|
|
151
|
+
"subject": Object {
|
|
152
|
+
"did": "user(2)",
|
|
153
|
+
"handle": "greta.test",
|
|
154
|
+
"labels": Array [],
|
|
155
|
+
"viewer": Object {
|
|
156
|
+
"blockedBy": false,
|
|
157
|
+
"muted": false,
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
"uri": "record(4)",
|
|
161
|
+
},
|
|
162
|
+
]
|
|
163
|
+
`;
|
|
164
|
+
|
|
165
|
+
exports[`starter packs does not include users with creator block relationship in list sample for signed-out viewers 1`] = `
|
|
166
|
+
Array [
|
|
167
|
+
Object {
|
|
168
|
+
"subject": Object {
|
|
169
|
+
"avatar": "https://bsky.public.url/img/avatar/plain/user(1)/cids(0)@jpeg",
|
|
170
|
+
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
171
|
+
"description": "its me!",
|
|
172
|
+
"did": "user(0)",
|
|
173
|
+
"displayName": "ali",
|
|
174
|
+
"handle": "alice.test",
|
|
175
|
+
"indexedAt": "1970-01-01T00:00:00.000Z",
|
|
176
|
+
"labels": Array [
|
|
177
|
+
Object {
|
|
178
|
+
"cid": "cids(1)",
|
|
179
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
180
|
+
"src": "user(0)",
|
|
181
|
+
"uri": "record(1)",
|
|
182
|
+
"val": "self-label-a",
|
|
183
|
+
},
|
|
184
|
+
Object {
|
|
185
|
+
"cid": "cids(1)",
|
|
186
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
187
|
+
"src": "user(0)",
|
|
188
|
+
"uri": "record(1)",
|
|
189
|
+
"val": "self-label-b",
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
"uri": "record(0)",
|
|
194
|
+
},
|
|
195
|
+
Object {
|
|
196
|
+
"subject": Object {
|
|
197
|
+
"did": "user(2)",
|
|
198
|
+
"handle": "greta.test",
|
|
199
|
+
"labels": Array [],
|
|
200
|
+
},
|
|
201
|
+
"uri": "record(2)",
|
|
202
|
+
},
|
|
203
|
+
]
|
|
204
|
+
`;
|
|
205
|
+
|
|
3
206
|
exports[`starter packs generates notifications 1`] = `
|
|
4
207
|
Array [
|
|
5
208
|
Object {
|
|
@@ -176,7 +379,7 @@ Array [
|
|
|
176
379
|
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
177
380
|
"feeds": Array [],
|
|
178
381
|
"list": "record(1)",
|
|
179
|
-
"name": "alice's
|
|
382
|
+
"name": "alice's about to get blocked starter pack",
|
|
180
383
|
},
|
|
181
384
|
"uri": "record(0)",
|
|
182
385
|
},
|
|
@@ -206,6 +409,44 @@ Array [
|
|
|
206
409
|
],
|
|
207
410
|
},
|
|
208
411
|
"indexedAt": "1970-01-01T00:00:00.000Z",
|
|
412
|
+
"joinedAllTimeCount": 0,
|
|
413
|
+
"joinedWeekCount": 0,
|
|
414
|
+
"labels": Array [],
|
|
415
|
+
"record": Object {
|
|
416
|
+
"$type": "app.bsky.graph.starterpack",
|
|
417
|
+
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
418
|
+
"feeds": Array [],
|
|
419
|
+
"list": "record(4)",
|
|
420
|
+
"name": "alice's empty starter pack",
|
|
421
|
+
},
|
|
422
|
+
"uri": "record(3)",
|
|
423
|
+
},
|
|
424
|
+
Object {
|
|
425
|
+
"cid": "cids(4)",
|
|
426
|
+
"creator": Object {
|
|
427
|
+
"avatar": "https://bsky.public.url/img/avatar/plain/user(1)/cids(1)@jpeg",
|
|
428
|
+
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
429
|
+
"did": "user(0)",
|
|
430
|
+
"displayName": "ali",
|
|
431
|
+
"handle": "alice.test",
|
|
432
|
+
"labels": Array [
|
|
433
|
+
Object {
|
|
434
|
+
"cid": "cids(2)",
|
|
435
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
436
|
+
"src": "user(0)",
|
|
437
|
+
"uri": "record(2)",
|
|
438
|
+
"val": "self-label-a",
|
|
439
|
+
},
|
|
440
|
+
Object {
|
|
441
|
+
"cid": "cids(2)",
|
|
442
|
+
"cts": "1970-01-01T00:00:00.000Z",
|
|
443
|
+
"src": "user(0)",
|
|
444
|
+
"uri": "record(2)",
|
|
445
|
+
"val": "self-label-b",
|
|
446
|
+
},
|
|
447
|
+
],
|
|
448
|
+
},
|
|
449
|
+
"indexedAt": "1970-01-01T00:00:00.000Z",
|
|
209
450
|
"joinedAllTimeCount": 3,
|
|
210
451
|
"joinedWeekCount": 3,
|
|
211
452
|
"labels": Array [],
|
|
@@ -214,13 +455,13 @@ Array [
|
|
|
214
455
|
"createdAt": "1970-01-01T00:00:00.000Z",
|
|
215
456
|
"feeds": Array [
|
|
216
457
|
Object {
|
|
217
|
-
"uri": "record(
|
|
458
|
+
"uri": "record(7)",
|
|
218
459
|
},
|
|
219
460
|
],
|
|
220
|
-
"list": "record(
|
|
461
|
+
"list": "record(6)",
|
|
221
462
|
"name": "alice's starter pack",
|
|
222
463
|
},
|
|
223
|
-
"uri": "record(
|
|
464
|
+
"uri": "record(5)",
|
|
224
465
|
},
|
|
225
466
|
]
|
|
226
467
|
`;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AtpAgent } from '@atproto/api'
|
|
2
|
-
import {
|
|
2
|
+
import { TestNetwork, SeedClient, basicSeed } from '@atproto/dev-env'
|
|
3
|
+
import { ids } from '../../src/lexicon/lexicons'
|
|
3
4
|
|
|
4
5
|
describe('bsky account deactivation', () => {
|
|
5
6
|
let network: TestNetwork
|
|
@@ -69,7 +70,12 @@ describe('bsky account deactivation', () => {
|
|
|
69
70
|
it('does not return posts from deactivated in timelines', async () => {
|
|
70
71
|
const res = await agent.api.app.bsky.feed.getTimeline(
|
|
71
72
|
{},
|
|
72
|
-
{
|
|
73
|
+
{
|
|
74
|
+
headers: await network.serviceHeaders(
|
|
75
|
+
sc.dids.bob,
|
|
76
|
+
ids.AppBskyFeedGetTimeline,
|
|
77
|
+
),
|
|
78
|
+
},
|
|
73
79
|
)
|
|
74
80
|
expect(res.data.feed.some((p) => p.post.author.did === alice)).toBe(false)
|
|
75
81
|
})
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { AtUri, AtpAgent } from '@atproto/api'
|
|
2
|
+
import { TestNetwork, SeedClient, basicSeed } from '@atproto/dev-env'
|
|
3
|
+
import { ids } from '../../src/lexicon/lexicons'
|
|
3
4
|
|
|
4
5
|
describe('bsky actor likes feed views', () => {
|
|
5
6
|
let network: TestNetwork
|
|
@@ -35,7 +36,12 @@ describe('bsky actor likes feed views', () => {
|
|
|
35
36
|
data: { feed: bobLikes },
|
|
36
37
|
} = await agent.api.app.bsky.feed.getActorLikes(
|
|
37
38
|
{ actor: sc.accounts[bob].handle },
|
|
38
|
-
{
|
|
39
|
+
{
|
|
40
|
+
headers: await network.serviceHeaders(
|
|
41
|
+
bob,
|
|
42
|
+
ids.AppBskyFeedGetActorLikes,
|
|
43
|
+
),
|
|
44
|
+
},
|
|
39
45
|
)
|
|
40
46
|
|
|
41
47
|
expect(bobLikes).toHaveLength(3)
|
|
@@ -43,7 +49,12 @@ describe('bsky actor likes feed views', () => {
|
|
|
43
49
|
await expect(
|
|
44
50
|
agent.api.app.bsky.feed.getActorLikes(
|
|
45
51
|
{ actor: sc.accounts[bob].handle },
|
|
46
|
-
{
|
|
52
|
+
{
|
|
53
|
+
headers: await network.serviceHeaders(
|
|
54
|
+
carol,
|
|
55
|
+
ids.AppBskyFeedGetActorLikes,
|
|
56
|
+
),
|
|
57
|
+
},
|
|
47
58
|
),
|
|
48
59
|
).rejects.toThrow('Profile not found')
|
|
49
60
|
})
|
|
@@ -66,7 +77,12 @@ describe('bsky actor likes feed views', () => {
|
|
|
66
77
|
data: { feed },
|
|
67
78
|
} = await agent.api.app.bsky.feed.getActorLikes(
|
|
68
79
|
{ actor: sc.accounts[bob].handle },
|
|
69
|
-
{
|
|
80
|
+
{
|
|
81
|
+
headers: await network.serviceHeaders(
|
|
82
|
+
bob,
|
|
83
|
+
ids.AppBskyFeedGetActorLikes,
|
|
84
|
+
),
|
|
85
|
+
},
|
|
70
86
|
)
|
|
71
87
|
|
|
72
88
|
expect(
|
|
@@ -100,7 +116,12 @@ describe('bsky actor likes feed views', () => {
|
|
|
100
116
|
data: { feed },
|
|
101
117
|
} = await agent.api.app.bsky.feed.getActorLikes(
|
|
102
118
|
{ actor: sc.accounts[bob].handle },
|
|
103
|
-
{
|
|
119
|
+
{
|
|
120
|
+
headers: await network.serviceHeaders(
|
|
121
|
+
bob,
|
|
122
|
+
ids.AppBskyFeedGetActorLikes,
|
|
123
|
+
),
|
|
124
|
+
},
|
|
104
125
|
)
|
|
105
126
|
|
|
106
127
|
expect(
|
|
@@ -2,6 +2,7 @@ import { AtpAgent } from '@atproto/api'
|
|
|
2
2
|
import { wait } from '@atproto/common'
|
|
3
3
|
import { TestNetwork, SeedClient, usersBulkSeed } from '@atproto/dev-env'
|
|
4
4
|
import { forSnapshot, paginateAll, stripViewer } from '../_util'
|
|
5
|
+
import { ids } from '../../src/lexicon/lexicons'
|
|
5
6
|
|
|
6
7
|
// @NOTE skipped to help with CI failures
|
|
7
8
|
// The search code is not used in production & we should switch it out for tests on the search proxy interface
|
|
@@ -40,7 +41,10 @@ describe.skip('pds actor search views', () => {
|
|
|
40
41
|
// Process remaining profiles
|
|
41
42
|
network.bsky.sub.run()
|
|
42
43
|
await network.processAll(50000)
|
|
43
|
-
headers = await network.serviceHeaders(
|
|
44
|
+
headers = await network.serviceHeaders(
|
|
45
|
+
Object.values(sc.dids)[0],
|
|
46
|
+
ids.AppBskyActorSearchActorsTypeahead,
|
|
47
|
+
)
|
|
44
48
|
})
|
|
45
49
|
|
|
46
50
|
afterAll(async () => {
|
|
@@ -10,6 +10,7 @@ import { ReplyRef, isRecord } from '../../src/lexicon/types/app/bsky/feed/post'
|
|
|
10
10
|
import { isView as isEmbedRecordWithMedia } from '../../src/lexicon/types/app/bsky/embed/recordWithMedia'
|
|
11
11
|
import { isView as isImageEmbed } from '../../src/lexicon/types/app/bsky/embed/images'
|
|
12
12
|
import { isPostView } from '../../src/lexicon/types/app/bsky/feed/defs'
|
|
13
|
+
import { ids } from '../../src/lexicon/lexicons'
|
|
13
14
|
|
|
14
15
|
describe('pds author feed views', () => {
|
|
15
16
|
let network: TestNetwork
|
|
@@ -48,28 +49,48 @@ describe('pds author feed views', () => {
|
|
|
48
49
|
it('fetches full author feeds for self (sorted, minimal viewer state).', async () => {
|
|
49
50
|
const aliceForAlice = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
50
51
|
{ actor: sc.accounts[alice].handle },
|
|
51
|
-
{
|
|
52
|
+
{
|
|
53
|
+
headers: await network.serviceHeaders(
|
|
54
|
+
alice,
|
|
55
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
56
|
+
),
|
|
57
|
+
},
|
|
52
58
|
)
|
|
53
59
|
|
|
54
60
|
expect(forSnapshot(aliceForAlice.data.feed)).toMatchSnapshot()
|
|
55
61
|
|
|
56
62
|
const bobForBob = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
57
63
|
{ actor: sc.accounts[bob].handle },
|
|
58
|
-
{
|
|
64
|
+
{
|
|
65
|
+
headers: await network.serviceHeaders(
|
|
66
|
+
bob,
|
|
67
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
68
|
+
),
|
|
69
|
+
},
|
|
59
70
|
)
|
|
60
71
|
|
|
61
72
|
expect(forSnapshot(bobForBob.data.feed)).toMatchSnapshot()
|
|
62
73
|
|
|
63
74
|
const carolForCarol = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
64
75
|
{ actor: sc.accounts[carol].handle },
|
|
65
|
-
{
|
|
76
|
+
{
|
|
77
|
+
headers: await network.serviceHeaders(
|
|
78
|
+
carol,
|
|
79
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
80
|
+
),
|
|
81
|
+
},
|
|
66
82
|
)
|
|
67
83
|
|
|
68
84
|
expect(forSnapshot(carolForCarol.data.feed)).toMatchSnapshot()
|
|
69
85
|
|
|
70
86
|
const danForDan = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
71
87
|
{ actor: sc.accounts[dan].handle },
|
|
72
|
-
{
|
|
88
|
+
{
|
|
89
|
+
headers: await network.serviceHeaders(
|
|
90
|
+
dan,
|
|
91
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
92
|
+
),
|
|
93
|
+
},
|
|
73
94
|
)
|
|
74
95
|
|
|
75
96
|
expect(forSnapshot(danForDan.data.feed)).toMatchSnapshot()
|
|
@@ -78,7 +99,12 @@ describe('pds author feed views', () => {
|
|
|
78
99
|
it("reflects fetching user's state in the feed.", async () => {
|
|
79
100
|
const aliceForCarol = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
80
101
|
{ actor: sc.accounts[alice].handle },
|
|
81
|
-
{
|
|
102
|
+
{
|
|
103
|
+
headers: await network.serviceHeaders(
|
|
104
|
+
carol,
|
|
105
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
106
|
+
),
|
|
107
|
+
},
|
|
82
108
|
)
|
|
83
109
|
|
|
84
110
|
aliceForCarol.data.feed.forEach((postView) => {
|
|
@@ -99,7 +125,12 @@ describe('pds author feed views', () => {
|
|
|
99
125
|
cursor,
|
|
100
126
|
limit: 2,
|
|
101
127
|
},
|
|
102
|
-
{
|
|
128
|
+
{
|
|
129
|
+
headers: await network.serviceHeaders(
|
|
130
|
+
dan,
|
|
131
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
132
|
+
),
|
|
133
|
+
},
|
|
103
134
|
)
|
|
104
135
|
return res.data
|
|
105
136
|
}
|
|
@@ -111,7 +142,12 @@ describe('pds author feed views', () => {
|
|
|
111
142
|
|
|
112
143
|
const full = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
113
144
|
{ actor: sc.accounts[alice].handle },
|
|
114
|
-
{
|
|
145
|
+
{
|
|
146
|
+
headers: await network.serviceHeaders(
|
|
147
|
+
dan,
|
|
148
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
149
|
+
),
|
|
150
|
+
},
|
|
115
151
|
)
|
|
116
152
|
|
|
117
153
|
expect(full.data.feed.length).toEqual(4)
|
|
@@ -121,7 +157,12 @@ describe('pds author feed views', () => {
|
|
|
121
157
|
it('fetches results unauthed.', async () => {
|
|
122
158
|
const { data: authed } = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
123
159
|
{ actor: sc.accounts[alice].handle },
|
|
124
|
-
{
|
|
160
|
+
{
|
|
161
|
+
headers: await network.serviceHeaders(
|
|
162
|
+
alice,
|
|
163
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
164
|
+
),
|
|
165
|
+
},
|
|
125
166
|
)
|
|
126
167
|
const { data: unauthed } = await agent.api.app.bsky.feed.getAuthorFeed({
|
|
127
168
|
actor: sc.accounts[alice].handle,
|
|
@@ -150,7 +191,12 @@ describe('pds author feed views', () => {
|
|
|
150
191
|
it('non-admins blocked by actor takedown.', async () => {
|
|
151
192
|
const { data: preBlock } = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
152
193
|
{ actor: alice },
|
|
153
|
-
{
|
|
194
|
+
{
|
|
195
|
+
headers: await network.serviceHeaders(
|
|
196
|
+
carol,
|
|
197
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
198
|
+
),
|
|
199
|
+
},
|
|
154
200
|
)
|
|
155
201
|
|
|
156
202
|
expect(preBlock.feed.length).toBeGreaterThan(0)
|
|
@@ -161,7 +207,12 @@ describe('pds author feed views', () => {
|
|
|
161
207
|
|
|
162
208
|
const attemptAsUser = agent.api.app.bsky.feed.getAuthorFeed(
|
|
163
209
|
{ actor: alice },
|
|
164
|
-
{
|
|
210
|
+
{
|
|
211
|
+
headers: await network.serviceHeaders(
|
|
212
|
+
carol,
|
|
213
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
214
|
+
),
|
|
215
|
+
},
|
|
165
216
|
)
|
|
166
217
|
await expect(attemptAsUser).rejects.toThrow('Profile not found')
|
|
167
218
|
|
|
@@ -180,7 +231,12 @@ describe('pds author feed views', () => {
|
|
|
180
231
|
it('blocked by record takedown.', async () => {
|
|
181
232
|
const { data: preBlock } = await agent.api.app.bsky.feed.getAuthorFeed(
|
|
182
233
|
{ actor: alice },
|
|
183
|
-
{
|
|
234
|
+
{
|
|
235
|
+
headers: await network.serviceHeaders(
|
|
236
|
+
carol,
|
|
237
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
238
|
+
),
|
|
239
|
+
},
|
|
184
240
|
)
|
|
185
241
|
|
|
186
242
|
expect(preBlock.feed.length).toBeGreaterThan(0)
|
|
@@ -195,7 +251,12 @@ describe('pds author feed views', () => {
|
|
|
195
251
|
await Promise.all([
|
|
196
252
|
agent.api.app.bsky.feed.getAuthorFeed(
|
|
197
253
|
{ actor: alice },
|
|
198
|
-
{
|
|
254
|
+
{
|
|
255
|
+
headers: await network.serviceHeaders(
|
|
256
|
+
carol,
|
|
257
|
+
ids.AppBskyFeedGetAuthorFeed,
|
|
258
|
+
),
|
|
259
|
+
},
|
|
199
260
|
),
|
|
200
261
|
agent.api.app.bsky.feed.getAuthorFeed(
|
|
201
262
|
{ actor: alice },
|