UNPKG

stellar-plus

Version:

beta version of stellar-plus, an all-in-one sdk for the Stellar blockchain

102 lines (101 loc) 6.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const network_1 = require("../../../stellar-plus/network"); const errors_1 = require("../../../stellar-plus/rpc/default-handler/errors"); const index_1 = require("../../../stellar-plus/rpc/default-handler/index"); const NETWORK_CONFIG = (0, network_1.TestNet)(); describe('Default RPC Handler', () => { beforeEach(() => { jest.clearAllMocks(); }); describe('constructor', () => { it('should throw an error if the network configuration is missing the RPC URL', () => { const netWorkConfigWithoutRpcUrl = (0, network_1.CustomNet)(Object.assign(Object.assign({}, NETWORK_CONFIG), { rpcUrl: undefined })); expect(() => new index_1.DefaultRpcHandler(netWorkConfigWithoutRpcUrl)).toThrow(errors_1.DRHError.missingRpcUrl()); }); it('should create a new Soroban server instance', () => { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); expect(rpcHandler).toBeDefined(); expect(rpcHandler.server).toBeDefined(); }); it('should create a new Soroban server instance with allowHttp option when enabled in the network', () => { const networkConfigWithHttp = (0, network_1.CustomNet)(Object.assign(Object.assign({}, NETWORK_CONFIG), { allowHttp: true })); const rpcHandler = new index_1.DefaultRpcHandler(networkConfigWithHttp); expect(rpcHandler).toBeDefined(); expect(rpcHandler.server).toBeDefined(); }); }); describe('getTransaction', () => { it('should return the transaction response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.getTransaction = jest.fn().mockResolvedValue({ id: 'mock_transaction' }); const response = yield rpcHandler.getTransaction('mock_transaction'); expect(response).toEqual({ id: 'mock_transaction' }); })); }); describe('simulateTransaction', () => { it('should return the transaction simulation response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.simulateTransaction = jest.fn().mockResolvedValue({ id: 'mock_simulation' }); const response = yield rpcHandler.simulateTransaction(jest.fn()); expect(response).toEqual({ id: 'mock_simulation' }); })); }); describe('prepareTransaction', () => { it('should return the transaction preparation response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.prepareTransaction = jest.fn().mockResolvedValue({ id: 'mock_preparation' }); const response = yield rpcHandler.prepareTransaction(jest.fn()); expect(response).toEqual({ id: 'mock_preparation' }); })); }); describe('submitTransaction', () => { it('should return the transaction submission response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.sendTransaction = jest.fn().mockResolvedValue({ id: 'mock_submission' }); const response = yield rpcHandler.submitTransaction(jest.fn()); expect(response).toEqual({ id: 'mock_submission' }); })); }); describe('getLatestLedger', () => { it('should return the latest ledger response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.getLatestLedger = jest.fn().mockResolvedValue({ id: 'mock_ledger' }); const response = yield rpcHandler.getLatestLedger(); expect(response).toEqual({ id: 'mock_ledger' }); })); }); describe('getHealth', () => { it('should return the health response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.getHealth = jest.fn().mockResolvedValue({ id: 'mock_health' }); const response = yield rpcHandler.getHealth(); expect(response).toEqual({ id: 'mock_health' }); })); }); describe('getNetwork', () => { it('should return the network response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.getNetwork = jest.fn().mockResolvedValue({ id: 'mock_network' }); const response = yield rpcHandler.getNetwork(); expect(response).toEqual({ id: 'mock_network' }); })); }); describe('getEvents', () => { it('should return the events response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.getEvents = jest.fn().mockResolvedValue({ id: 'mock_events' }); const response = yield rpcHandler.getEvents(jest.fn()); expect(response).toEqual({ id: 'mock_events' }); })); }); describe('getLedgerEntries', () => { it('should return the ledger entries response from Soroban', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const rpcHandler = new index_1.DefaultRpcHandler(NETWORK_CONFIG); rpcHandler.server.getLedgerEntries = jest.fn().mockResolvedValue({ id: 'mock_ledger_entries' }); const response = yield rpcHandler.getLedgerEntries(); expect(response).toEqual({ id: 'mock_ledger_entries' }); })); }); });