atproto/packages/ozone/tests/takedown.test.ts
Foysal Ahamed 53621f8e10
Add a policy property to takedown events (#3271)
*  Add a policy property to takedown events

*  Add policy list setting validation

*  Make multiple policies possible for takedown and event search

* 📝 Add changeset

*  Use , as policies separator
2025-01-02 20:46:53 -05:00

65 lines
1.6 KiB
TypeScript

import {
TestNetwork,
TestOzone,
SeedClient,
basicSeed,
ModeratorClient,
} from '@atproto/dev-env'
import { AtpAgent } from '@atproto/api'
describe('moderation', () => {
let network: TestNetwork
let ozone: TestOzone
let agent: AtpAgent
let bskyAgent: AtpAgent
let pdsAgent: AtpAgent
let sc: SeedClient
let modClient: ModeratorClient
const repoSubject = (did: string) => ({
$type: 'com.atproto.admin.defs#repoRef',
did,
})
beforeAll(async () => {
network = await TestNetwork.create({
dbPostgresSchema: 'ozone_takedown',
})
ozone = network.ozone
agent = network.ozone.getClient()
bskyAgent = network.bsky.getClient()
pdsAgent = network.pds.getClient()
sc = network.getSeedClient()
modClient = network.ozone.getModClient()
await basicSeed(sc)
await network.processAll()
})
afterAll(async () => {
await network.close()
})
it('allows specifying policy for takedown actions.', async () => {
await modClient.performTakedown({
subject: repoSubject(sc.dids.bob),
policies: ['trolling'],
})
// Verify that that the takedown even exposes the policy specified for it
const { events } = await modClient.queryEvents({
subject: sc.dids.bob,
types: ['tools.ozone.moderation.defs#modEventTakedown'],
})
expect(events[0].event.policies?.[0]).toEqual('trolling')
// Verify that event stream can be filtered by policy
const { events: filteredEvents } = await modClient.queryEvents({
subject: sc.dids.bob,
policies: ['trolling'],
})
expect(filteredEvents[0].subject.did).toEqual(sc.dids.bob)
})
})