UNPKG

@substrate/api-sidecar

Version:

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

59 lines 3.23 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 mock_1 = require("../test-helpers/mock"); const material_json_1 = __importDefault(require("../test-helpers/responses/transaction/material.json")); const TransactionMaterialService_1 = require("./TransactionMaterialService"); const transactionMaterialService = new TransactionMaterialService_1.TransactionMaterialService('mock'); describe('TransactionMaterialService', () => { beforeAll(() => { jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => { return mock_1.defaultMockApi; }); }); describe('getTransactionMaterial', () => { it('Should return the scale encoded metadata when the `metadata` query param is `scale`', async () => { expect((0, sanitizeNumbers_1.sanitizeNumbers)(await transactionMaterialService.fetchTransactionMaterial(mock_1.blockHash789629, 'scale'))).toStrictEqual(material_json_1.default); }); it('Should return the decoded metadata when the `metadata` query param is `json`', async () => { const res = await transactionMaterialService.fetchTransactionMaterial(mock_1.blockHash789629, 'json'); // Confirms the returned metadata is not a hex string. expect(typeof res.metadata).toBe('object'); }); it('Should return the response with no metadata when the default behavior is false', async () => { const expectedRes = { at: { hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578', height: '789629', }, genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3', chainName: 'Polkadot', specName: 'polkadot', specVersion: '16', txVersion: '2', }; const res = await transactionMaterialService.fetchTransactionMaterial(mock_1.blockHash789629, false); expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual(expectedRes); }); }); }); //# sourceMappingURL=TransactionMaterialService.spec.js.map