From 8b66bcd28d5912b515e0bd74d1dcacf53f7c33e9 Mon Sep 17 00:00:00 2001 From: Chris Hibbert Date: Wed, 28 Aug 2024 11:10:47 -0700 Subject: [PATCH] test: test updating instances in promiseSpace updates agoricNames --- packages/vats/test/name-hub-published.test.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/vats/test/name-hub-published.test.js b/packages/vats/test/name-hub-published.test.js index f33ba8cc1d6..15892c0e495 100644 --- a/packages/vats/test/name-hub-published.test.js +++ b/packages/vats/test/name-hub-published.test.js @@ -3,9 +3,12 @@ import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { makeMockChainStorageRoot } from '@agoric/internal/src/storage-test-utils.js'; import { makeHandle } from '@agoric/zoe/src/makeHandle.js'; import { eventLoopIteration } from '@agoric/internal/src/testing-utils.js'; +import { makeTracer } from '@agoric/internal'; import { + agoricNamesReserved, makeAgoricNamesAccess, makePromiseSpaceForNameHub, + makeWellKnownSpaces, } from '../src/core/utils.js'; import { makePromiseSpace } from '../src/core/promise-space.js'; import { @@ -58,3 +61,30 @@ test('promise space reserves non-well-known names', async t => { t.is(await nameHub.lookup('thing1'), true); }); + +test('promise space reset instance to change a value', async t => { + const { nameAdmin, nameHub: agoricNames } = makeNameHubKit(); + + const tracer = makeTracer('test NS'); + const space = await makeWellKnownSpaces( + nameAdmin, + tracer, + Object.keys(agoricNamesReserved), + ); + + const auctionInstance1 = makeHandle('instance1'); + const instanceLookup = await agoricNames.lookup('instance'); + + // @ts-expect-error storing fake instance + space.instance.produce.auctioneer.resolve(auctionInstance1); + // @ts-expect-error expecting instance + t.is(await space.instance.consume.auctioneer, auctionInstance1); + t.is(await instanceLookup.lookup('auctioneer'), auctionInstance1); + + const auctionInstance2 = makeHandle('instance2'); + await space.instance.produce.auctioneer.reset(); + // @ts-expect-error fake instance + await space.instance.produce.auctioneer.resolve(auctionInstance2); + + t.is(await instanceLookup.lookup('auctioneer'), auctionInstance2); +});