UNPKG

@kstasi/jest-tolk

Version:

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tonkite/tonkite/main/assets/logo-dark.svg"> <img alt="tonkite logo" src="https://raw.githubusercontent.com/tonkite/tonkite/main/a

115 lines (114 loc) 4.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tlb_1 = require("./tlb"); const tlb_codegen_1 = require("@ton-community/tlb-codegen"); describe('extractTLBCode', () => { it('should return TLBCode for valid fuzzTlb input', () => { const fuzzTlb = '_ a:int b:coins = Args;'; const result = (0, tlb_1.extractTLBCode)(fuzzTlb); expect(result).toBeInstanceOf(tlb_codegen_1.TLBCode); }); }); describe('extractIntFieldFromTLB', () => { const mockTLBCode = { types: new Map([ [ 'Args', new tlb_codegen_1.TLBType('Args', [ new tlb_codegen_1.TLBConstructor([], // parameters [], // variables new Map(), // variablesMap new Map(), // parametersMap 'ArgsConstructor', // name [ { name: 'field1', anonymous: false, fieldType: { kind: 'TLBNumberType', maxBits: 128, signed: false, storeBits: new tlb_codegen_1.TLBNumberExpr(128), bits: new tlb_codegen_1.TLBNumberExpr(128), }, subFields: [], }, { name: 'field2', anonymous: false, fieldType: { kind: 'TLBNamedType', name: 'coins', arguments: [], }, subFields: [], }, ], { bitLen: 0, binary: '' }, // tag [], // constraints '', // declaration ''), ]), ], ]), }; it('should return correct bits and signed for TLBNumberType', () => { const result = (0, tlb_1.extractIntFieldFromTLB)(mockTLBCode, 'field1'); expect(result).toEqual({ bits: 128, signed: false }); }); it('should return correct bits and signed for TLBNamedType coins', () => { const result = (0, tlb_1.extractIntFieldFromTLB)(mockTLBCode, 'field2'); expect(result).toEqual({ bits: 120, signed: false }); }); it('should throw an error for non-TLBNumberType fields', () => { expect(() => (0, tlb_1.extractIntFieldFromTLB)(mockTLBCode, 'nonExistentField')).toThrow('Field nonExistentField is not of type TLBNumberType'); }); }); describe('extractSliceFieldFromTLB', () => { const mockTLBCode = { types: new Map([ [ 'Args', new tlb_codegen_1.TLBType('Args', [ new tlb_codegen_1.TLBConstructor([], // parameters [], // variables new Map(), // variablesMap new Map(), // parametersMap 'ArgsConstructor', // name [ { name: 'field1', anonymous: false, fieldType: { kind: 'TLBNamedType', name: 'address', arguments: [], }, subFields: [], }, { name: 'field2', anonymous: false, fieldType: { kind: 'TLBNamedType', name: 'other', arguments: [], }, subFields: [], }, ], { bitLen: 0, binary: '' }, // tag [], // constraints '', // declaration ''), ]), ], ]), }; it('should return "address" for address type', () => { const result = (0, tlb_1.extractSliceFieldFromTLB)(mockTLBCode, 'field1'); expect(result).toBe('address'); }); it('should return "slice" for non-address type', () => { const result = (0, tlb_1.extractSliceFieldFromTLB)(mockTLBCode, 'field2'); expect(result).toBe('slice'); }); });