diff --git a/test/helpers/WarpGraphMockPersistence.ts b/test/helpers/WarpGraphMockPersistence.ts index a7064436c..b836defc7 100644 --- a/test/helpers/WarpGraphMockPersistence.ts +++ b/test/helpers/WarpGraphMockPersistence.ts @@ -35,7 +35,7 @@ class WarpGraphMockPersistence { readonly writeBlob = vi.fn(); readonly writeTree = vi.fn(); readonly readBlob = vi.fn(); - readonly readTreeOids = vi.fn().mockResolvedValue({}); + readonly readTreeOids = vi.fn(async (_treeOid: string): Promise> => ({})); readonly commitNode = vi.fn(); readonly commitNodeWithTree = vi.fn(); readonly updateRef = vi.fn(async (ref: string, sha: string) => { diff --git a/test/helpers/mockPorts.ts b/test/helpers/mockPorts.ts index 275d0afb6..03a362d2c 100644 --- a/test/helpers/mockPorts.ts +++ b/test/helpers/mockPorts.ts @@ -21,7 +21,7 @@ export interface MockPersistence { readBlob: Mock; writeBlob: Mock; readTree: Mock; - readTreeOids: Mock; + readTreeOids: Mock<(treeOid: string) => Promise>>; writeTree: Mock; commitNode: Mock; commitNodeWithTree: Mock; @@ -62,7 +62,7 @@ export function createMockPersistence(overrides: Partial = {}): readBlob: vi.fn().mockResolvedValue(new Uint8Array(0)), writeBlob: vi.fn().mockResolvedValue(MOCK_OID), readTree: vi.fn().mockResolvedValue({}), - readTreeOids: vi.fn().mockResolvedValue({}), + readTreeOids: vi.fn(async (_treeOid: string): Promise> => ({})), writeTree: vi.fn().mockResolvedValue(MOCK_OID), commitNode: vi.fn().mockResolvedValue(MOCK_OID), commitNodeWithTree: vi.fn().mockResolvedValue(MOCK_OID), diff --git a/test/unit/helpers/WarpGraphMockPersistence.test.ts b/test/unit/helpers/WarpGraphMockPersistence.test.ts index 2d3f7423b..b3ae9c97f 100644 --- a/test/unit/helpers/WarpGraphMockPersistence.test.ts +++ b/test/unit/helpers/WarpGraphMockPersistence.test.ts @@ -14,4 +14,15 @@ describe('WarpGraphMockPersistence', () => { await expect(persistence.compareAndSwapRef(ref, nextOid, null)).rejects.toThrow('CAS mismatch'); await expect(persistence.readRef(ref)).resolves.toBe(currentOid); }); + + it('types readTreeOids as a tree object id to object-map contract', async () => { + const persistence = createMockPersistence(); + const readTreeOids: (treeOid: string) => Promise> = + persistence.readTreeOids; + + const treeOids = await readTreeOids('tree-oid'); + + expect(treeOids).toEqual({}); + expect(Array.isArray(treeOids)).toBe(false); + }); }); diff --git a/test/unit/helpers/mockPorts.test.ts b/test/unit/helpers/mockPorts.test.ts index 111f8fbcf..dd78462cf 100644 --- a/test/unit/helpers/mockPorts.test.ts +++ b/test/unit/helpers/mockPorts.test.ts @@ -14,4 +14,15 @@ describe('mockPorts createMockPersistence', () => { await expect(persistence.compareAndSwapRef(ref, nextOid, null)).rejects.toThrow('CAS mismatch'); await expect(persistence.readRef(ref)).resolves.toBe(currentOid); }); + + it('types readTreeOids as a tree object id to object-map contract', async () => { + const persistence = createMockPersistence(); + const readTreeOids: (treeOid: string) => Promise> = + persistence.readTreeOids; + + const treeOids = await readTreeOids('tree-oid'); + + expect(treeOids).toEqual({}); + expect(Array.isArray(treeOids)).toBe(false); + }); });