chadtmiller.com/pds.js
An atproto PDS in JavaScript, for Cloudflare Workers and Node
0
0
import Database from 'better-sqlite3';
import { describe, expect, it } from 'vitest';
import { createIndexedDiscovery } from '../src/discovery.js';
import { createAppViewStore } from '../src/store.js';
const REPO = 'at://did:plc:owner/dev.pdsjs.git.repo/proj';
describe('createIndexedDiscovery', () => {
it('answers the discovery port from the index', async () => {
const store = createAppViewStore(new Database(':memory:'));
store.putRecord({
did: 'did:plc:stranger',
collection: 'dev.pdsjs.git.pull',
rkey: '3kpull',
cid: 'bafypull',
uri: 'at://did:plc:stranger/dev.pdsjs.git.pull/3kpull',
seq: 1,
value: { subject: { uri: REPO } },
});
const discovery = createIndexedDiscovery(store);
expect(await discovery.about(REPO, 'dev.pdsjs.git.pull')).toEqual([
{
did: 'did:plc:stranger',
collection: 'dev.pdsjs.git.pull',
rkey: '3kpull',
},
]);
expect(
await discovery.about(REPO, 'dev.pdsjs.git.pull', 'subject.uri'),
).toHaveLength(1);
expect(await discovery.about(REPO, 'dev.pdsjs.git.review')).toEqual([]);
});
});