UNPKG

@substrate/api-sidecar

Version:

REST service that makes it easy to interact with blockchain nodes built using Substrate's FRAME framework.

66 lines 3.2 kB
"use strict"; // Copyright 2017-2025 Parity Technologies (UK) Ltd. // This file is part of Substrate API Sidecar. // // Substrate API Sidecar is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const apiRegistry_1 = require("../../apiRegistry"); const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers"); const registries_1 = require("../../test-helpers/registries"); const mock_1 = require("../test-helpers/mock"); const getKeyNames_1 = require("../test-helpers/mock/data/getKeyNames"); const operations_json_1 = __importDefault(require("../test-helpers/responses/blocks/operations.json")); const traces_json_1 = __importDefault(require("../test-helpers/responses/blocks/traces.json")); const BlocksTraceService_1 = require("./BlocksTraceService"); const trace_1 = require("./trace"); /** * Save the getKeyNames function reference, so we can point it to a different function * for testing and then reassign it back to the original after this test suite is done. */ const tempGetKeyNames = trace_1.Trace['getKeyNames'].bind(trace_1.Trace); /** * HistoricApi used in order to create the correct types per the blocks runtime. */ const mockHistoricApi = { registry: registries_1.kusamaRegistryV2025, }; /** * BlocksTraceService mock */ const blocksTraceService = new BlocksTraceService_1.BlocksTraceService('mock'); beforeAll(() => { jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mock_1.defaultMockApi); trace_1.Trace['getKeyNames'] = () => getKeyNames_1.keyNames; }); afterAll(() => { // Clean up our test specific overrides trace_1.Trace['getKeyNames'] = tempGetKeyNames; }); describe('BlocksTraceService', () => { describe('BlocksTraceService.traces', () => { it('works when ApiPromise works', async () => { expect((0, sanitizeNumbers_1.sanitizeNumbers)(await blocksTraceService.traces(mock_1.blockHash789629))).toStrictEqual(traces_json_1.default); }); }); describe('BlocksTraceService.operations', () => { it('works when ApiPromise works (without `actions`)', async () => { expect((0, sanitizeNumbers_1.sanitizeNumbers)(await blocksTraceService.operations(mock_1.blockHash789629, mockHistoricApi, false))).toMatchObject(operations_json_1.default); }); it.todo('works when ApiPromise works (with `actions`)'); }); }); //# sourceMappingURL=BlocksTraceService.spec.js.map