~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/pds.js

An atproto PDS in JavaScript, for Cloudflare Workers and Node

0
0
main
33 lines · 1.1 KB Raw History
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([]);
  });
});