atproto/packages/pds/tests/proxied/feedgen.test.ts
Matthieu Sieben 61dc0d60e1
Add linting rule to sort imports (#3220)
* Add linting rule to sort imports

* remove spacing between import groups

* changeset

* changeset

* prettier config fine tuning

* forbid use of deprecated imports

* tidy
2025-02-05 15:06:58 +01:00

67 lines
1.8 KiB
TypeScript

import { AtUri, AtpAgent } from '@atproto/api'
import { SeedClient, TestNetwork } from '@atproto/dev-env'
import { InvalidRequestError } from '@atproto/xrpc-server'
import { forSnapshot } from '../_util'
import basicSeed from '../seeds/basic'
describe('feedgen proxy view', () => {
let network: TestNetwork
let agent: AtpAgent
let sc: SeedClient
let feedUri: AtUri
beforeAll(async () => {
network = await TestNetwork.create({
dbPostgresSchema: 'proxy_feedgen',
})
agent = network.pds.getClient()
sc = network.getSeedClient()
await basicSeed(sc, { addModLabels: network.bsky })
feedUri = AtUri.make(sc.dids.alice, 'app.bsky.feed.generator', 'mutuals')
const feedGen = await network.createFeedGen({
[feedUri.toString()]: ({ params }) => {
if (params.feed !== feedUri.toString()) {
throw new InvalidRequestError('Unknown feed')
}
return {
encoding: 'application/json',
body: {
feed: [
{ post: sc.posts[sc.dids.alice][0].ref.uriStr },
{ post: sc.posts[sc.dids.carol][0].ref.uriStr },
],
},
}
},
})
// publish feed
await agent.api.app.bsky.feed.generator.create(
{ repo: sc.dids.alice, rkey: feedUri.rkey },
{
did: feedGen.did,
displayName: 'Test feed',
createdAt: new Date().toISOString(),
},
sc.getHeaders(sc.dids.alice),
)
await network.processAll()
})
afterAll(async () => {
await network.close()
})
it('performs basic proxy of getFeed', async () => {
const { data: feed } = await agent.api.app.bsky.feed.getFeed(
{ feed: feedUri.toString() },
{
headers: { ...sc.getHeaders(sc.dids.alice) },
},
)
expect(forSnapshot(feed)).toMatchSnapshot()
})
})