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); }); });