From 08c9bdf4ebaac76558c0192d44d0bddfc03f4797 Mon Sep 17 00:00:00 2001 From: Joel Carter Date: Mon, 4 Dec 2023 12:00:36 -0600 Subject: [PATCH] insert witnessed data --- .../witness/src/spec/Witness.Index.spec.ts | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/packages/payloadset/packages/crypto/packages/nft/packages/nft/packages/witness/src/spec/Witness.Index.spec.ts b/packages/payloadset/packages/crypto/packages/nft/packages/nft/packages/witness/src/spec/Witness.Index.spec.ts index a481200e3..206148b6c 100644 --- a/packages/payloadset/packages/crypto/packages/nft/packages/nft/packages/witness/src/spec/Witness.Index.spec.ts +++ b/packages/payloadset/packages/crypto/packages/nft/packages/nft/packages/witness/src/spec/Witness.Index.spec.ts @@ -113,17 +113,48 @@ describe('CryptoWalletNftWitness Index', () => { expect(mods.length).toBe(privateModules.length + publicModules.length + 1) // Insert NFTS into archivist + const payloads = ( + await Promise.all( + data.map(async (nft) => { + const timestamp = { schema: 'network.xyo.timestamp', timestamp: Date.now() } + const [bw, payloads] = await new BoundWitnessBuilder().payloads([nft, timestamp]).build() + return [bw, ...payloads] + }), + ) + ).flat() + const thumbnailArchivist = assertEx(asArchivistInstance(await node.resolve('NftArchivist'))) - await thumbnailArchivist.insert([]) + await thumbnailArchivist.insert(payloads) sut = assertEx(asDivinerInstance(await node.resolve('NftDiviner'))) // Allow enough time for diviner to divine await delay(5000) }, 40000) - describe('Indexed NFT Info', () => { - it('has tests', async () => { - // TODO + describe('diviner state', () => { + let stateArchivist: MemoryArchivist + beforeAll(async () => { + const mod = await node.resolve('AddressStateArchivist') + stateArchivist = assertEx(asArchivistInstance(mod)) + }) + it('has expected bound witnesses', async () => { + const payloads = await stateArchivist.all() + const stateBoundWitnesses = payloads.filter(isBoundWitness) + expect(stateBoundWitnesses).toBeArrayOfSize(2) + stateBoundWitnesses.forEach((stateBoundWitness) => { + expect(stateBoundWitness).toBeObject() + expect(stateBoundWitness.addresses).toBeArrayOfSize(1) + expect(stateBoundWitness.addresses).toContain(sut.address) + }) + }) + it('has expected state', async () => { + const payloads = await stateArchivist.all() + const statePayloads = payloads.filter(isModuleState) + expect(statePayloads).toBeArrayOfSize(2) + expect(statePayloads.at(-1)).toBeObject() + const statePayload = assertEx(statePayloads.at(-1)) + expect(statePayload.state).toBeObject() + expect(statePayload.state?.offset).toBe(data.length) }) }) })