import request from 'supertest'; import express from 'express'; // Mock simple des routes funds sans dépendances externes const mockFundsRoutes = express.Router(); mockFundsRoutes.post('/transfer', (req, res) => { res.json({ success: true, message: 'Transfert de 0.01 BTC réussi', transactionId: 'txid123456789', address: 'bc1qtest123', sourceBalance: 1.5, targetBalance: 0.01 }); }); mockFundsRoutes.get('/check', (req, res) => { res.json({ success: true, relay: { outputsCount: 1, balance: 0.01 }, mining: { balance: 1.5 }, needsTransfer: false }); }); describe('Funds Routes', () => { let app: express.Application; beforeEach(() => { app = express(); app.use(express.json()); app.use('/api/v1/funds', mockFundsRoutes); }); describe('POST /api/v1/funds/transfer', () => { it('devrait transférer des fonds avec succès', async () => { const response = await request(app) .post('/api/v1/funds/transfer') .send({ amount: 0.01, source: 'mining_mnemonic', target: 'default' }); expect(response.status).toBe(200); expect(response.body.success).toBe(true); expect(response.body.message).toContain('Transfert de 0.01 BTC réussi'); }); }); describe('GET /api/v1/funds/check', () => { it('devrait vérifier les fonds avec succès', async () => { const response = await request(app) .get('/api/v1/funds/check'); expect(response.status).toBe(200); expect(response.body.success).toBe(true); expect(response.body.relay.outputsCount).toBe(1); expect(response.body.relay.balance).toBe(0.01); }); }); });