chadtmiller.com/pds.js
An atproto PDS in JavaScript, for Cloudflare Workers and Node
0
0
import { getKeyDepth } from '@pdsjs/core/repo';
import { describe, expect, test } from 'vitest';
describe('MST Key Depth', () => {
test('returns a non-negative integer', async () => {
const depth = await getKeyDepth('app.bsky.feed.post/abc123');
expect(typeof depth).toBe('number');
expect(depth >= 0).toBe(true);
});
test('is deterministic for same key', async () => {
const key = 'app.bsky.feed.post/test123';
const depth1 = await getKeyDepth(key);
const depth2 = await getKeyDepth(key);
expect(depth1).toBe(depth2);
});
test('different keys can have different depths', async () => {
// Generate many keys and check we get some variation
const depths = new Set();
for (let i = 0; i < 100; i++) {
depths.add(await getKeyDepth(`collection/key${i}`));
}
// Should have at least 1 unique depth (realistically more)
expect(depths.size >= 1).toBe(true);
});
test('handles empty string', async () => {
const depth = await getKeyDepth('');
expect(typeof depth).toBe('number');
expect(depth >= 0).toBe(true);
});
test('handles unicode strings', async () => {
const depth = await getKeyDepth('app.bsky.feed.post/émoji🎉');
expect(typeof depth).toBe('number');
expect(depth >= 0).toBe(true);
});
});