stellar-plus
Version:
beta version of stellar-plus, an all-in-one sdk for the Stellar blockchain
102 lines (101 loc) • 6.16 kB
JavaScript
;
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' });
}));
});
});