UNPKG

@tatumio/tatum

Version:

Tatum JS SDK

76 lines 3.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const service_1 = require("../../service"); const e2e_extensions_1 = require("./e2e.extensions"); const mockTestExtension = { dummyMethod: jest.fn(), init: jest.fn(), destroy: jest.fn(), network: jest.fn(), }; describe('Tatum Extension Ecosystem', () => { beforeEach(() => { jest.clearAllMocks(); }); describe('General Extension', () => { it('should work after being registered', async () => { const tatum = await service_1.TatumSDK.init({ network: service_1.Network.ETHEREUM_SEPOLIA, configureExtensions: [{ type: e2e_extensions_1.TestExtension, config: mockTestExtension }], }); await tatum.extension(e2e_extensions_1.TestExtension).sayHello(); await tatum.destroy(); expect(mockTestExtension.dummyMethod).toHaveBeenCalled(); expect(mockTestExtension.init).toHaveBeenCalled(); expect(mockTestExtension.destroy).toHaveBeenCalled(); expect(mockTestExtension.network).toBeCalledWith(service_1.Network.ETHEREUM_SEPOLIA); }); it('should fail if network not supported', async () => { try { const tatum = await service_1.TatumSDK.init({ network: service_1.Network.BITCOIN, configureExtensions: [e2e_extensions_1.TestExtension], }); expect(true).toBe(false); await tatum.destroy(); } catch (e) { if (e instanceof Error) { expect(e.message).toBe('Extension TestExtension is not supported on bitcoin-mainnet network.'); } else { expect(true).toBe(false); } } }); }); describe('Wallet Extension', () => { it('should work after being registered', async () => { const tatum = await service_1.TatumSDK.init({ network: service_1.Network.ETHEREUM_SEPOLIA, configureWalletProviders: [{ type: e2e_extensions_1.TestWalletProvider, config: mockTestExtension }], }); const result = await tatum.walletProvider.use(e2e_extensions_1.TestWalletProvider).getWallet(); await tatum.walletProvider.use(e2e_extensions_1.TestWalletProvider).signAndBroadcast('payload'); await tatum.destroy(); expect(result).toBe('connected'); expect(mockTestExtension.init).toHaveBeenCalled(); expect(mockTestExtension.destroy).toHaveBeenCalled(); expect(mockTestExtension.network).toBeCalledWith(service_1.Network.ETHEREUM_SEPOLIA); expect(mockTestExtension.dummyMethod).toBeCalledTimes(2); }); }); describe('Configurable Wallet Extension', () => { it('should work after being registered without config if optional', async () => { const tatum = await service_1.TatumSDK.init({ network: service_1.Network.ETHEREUM_SEPOLIA, configureWalletProviders: [e2e_extensions_1.TestWalletProvider], }); const result = await tatum.walletProvider.use(e2e_extensions_1.TestWalletProvider).getWallet(); await tatum.walletProvider.use(e2e_extensions_1.TestWalletProvider).signAndBroadcast('payload'); await tatum.destroy(); expect(result).toBe('connected'); }); }); }); //# sourceMappingURL=tatum.extensions.spec.js.map