Skip to content

Commit e67a37c

Browse files
grypezclaude
andcommitted
test(evm-wallet-experiment): add delegation twin docker e2e test
Runs run-delegation-twin-e2e.mjs inside the away container as part of the Docker E2E suite. Covers local cumulativeSpend enforcement and chain-side rejection of an expired timestamp delegation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0308a04 commit e67a37c

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

packages/evm-wallet-experiment/test/e2e/docker/docker-e2e.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import type {
1313
} from './helpers/docker-e2e-kernel-services.ts';
1414
import {
1515
callVat,
16+
dockerExec,
1617
evmRpc,
1718
isStackHealthy,
1819
readContracts,
@@ -321,6 +322,27 @@ describe('Docker E2E', () => {
321322
expectations[delegationMode]();
322323
});
323324
});
325+
326+
// -------------------------------------------------------------------------
327+
// Delegation twin
328+
// -------------------------------------------------------------------------
329+
330+
describe('delegation twin', () => {
331+
it('enforces cumulativeSpend locally; chain enforces expired timestamp', () => {
332+
const delegate = resolveOnChainDelegateAddress({
333+
delegationMode,
334+
home: homeResult,
335+
away: awayResult,
336+
});
337+
const scriptPath =
338+
'/app/packages/evm-wallet-experiment/test/e2e/docker/run-delegation-twin-e2e.mjs';
339+
const output = dockerExec(
340+
kernelServices.away,
341+
`node --conditions development ${scriptPath} ${delegationMode} ${homeResult.kref} ${awayResult.kref} ${delegate}`,
342+
);
343+
expect(output).toContain('All delegation twin tests passed');
344+
}, 180_000);
345+
});
324346
},
325347
);
326348
});

0 commit comments

Comments
 (0)