/** * @file TokenizationWorkflow.test.ts * @notice Integration tests for tokenization workflow */ import { describe, it, expect, beforeAll, afterAll } from '@jest/globals'; import { TokenizationWorkflow, TokenizationRequest, TokenizationStatus } from '../../orchestration/tokenization/tokenization-workflow'; import { ethers } from 'ethers'; describe('TokenizationWorkflow', () => { let workflow: TokenizationWorkflow; let provider: ethers.Provider; beforeAll(() => { const rpcUrl = process.env.CHAIN_138_RPC_URL || 'http://localhost:8545'; provider = new ethers.JsonRpcProvider(rpcUrl); workflow = new TokenizationWorkflow( rpcUrl, process.env.TOKEN_REGISTRY_ADDRESS || '', [], // ABI would be imported process.env.FIREFLY_API_URL || 'http://localhost:5000', process.env.FABRIC_API_URL || 'http://localhost:7051', process.env.CACTI_API_URL || 'http://localhost:4000' ); }); describe('initiateTokenization', () => { it('should initiate tokenization workflow', async () => { const request: TokenizationRequest = { requestId: 'TEST-001', underlyingAsset: 'EUR', amount: '1000.00', issuer: '0x1234567890123456789012345678901234567890', reserveId: 'RESERVE-EUR-001', regulatoryFlags: { kyc: true, aml: true } }; // Mock the workflow (in production, this would make actual calls) const result = await workflow.initiateTokenization(request); expect(result).toBeDefined(); expect(result.requestId).toBe(request.requestId); expect(result.status).toBe(TokenizationStatus.COMPLETED); }, 30000); }); describe('getStatus', () => { it('should get tokenization status', async () => { const status = await workflow.getStatus('TEST-001'); expect(status).toBeDefined(); }); }); });