UNPKG

@parity/api

Version:

The Parity Promise-based API library for interfacing with Ethereum over RPC

88 lines (87 loc) 3.58 kB
"use strict"; // Copyright 2015-2019 Parity Technologies (UK) Ltd. // This file is part of Parity. // // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", { value: true }); var types_1 = require("./types"); var Eth = require("../rpc/eth"); describe('util/types', function () { describe('isArray', function () { it('correctly identifies null as false', function () { expect(types_1.isArray(null)).toBe(false); }); it('correctly identifies empty array as true', function () { expect(types_1.isArray([])).toBe(true); }); it('correctly identifies array as true', function () { expect(types_1.isArray([1, 2, 3])).toBe(true); }); }); describe('isError', function () { it('correctly identifies null as false', function () { expect(types_1.isError(null)).toBe(false); }); it('correctly identifies Error as true', function () { expect(types_1.isError(new Error('an error'))).toBe(true); }); }); describe('isFunction', function () { it('correctly identifies null as false', function () { expect(types_1.isFunction(null)).toBe(false); }); it('correctly identifies function as true', function () { expect(types_1.isFunction(jest.fn())).toBe(true); }); }); describe('isHex', function () { it('correctly identifies hex by leading 0x', function () { expect(types_1.isHex('0x123')).toBe(true); }); it('correctly identifies hex without leading 0x', function () { expect(types_1.isHex('123')).toBe(true); }); it('correctly identifies non-hex values', function () { expect(types_1.isHex('123j')).toBe(false); }); it('correctly indentifies non-string values', function () { expect(types_1.isHex(false)).toBe(false); expect(types_1.isHex(undefined)).toBe(false); expect(types_1.isHex([1, 2, 3])).toBe(false); }); }); describe('isInstanceOf', function () { it('correctly identifies build-in instanceof', function () { // eslint-disable-next-line no-new-wrappers expect(types_1.isInstanceOf(new String('123'), String)).toBe(true); }); it('correctly identifies own instanceof', function () { expect(types_1.isInstanceOf(new Eth({}), Eth)).toBe(true); }); it('correctly reports false for own', function () { expect(types_1.isInstanceOf({}, Eth)).toBe(false); }); }); describe('isObject', function () { it('correctly identifies empty object as object', function () { expect(types_1.isObject({})).toBe(true); }); it('correctly identifies non-empty object as object', function () { expect(types_1.isObject({ data: '123' })).toBe(true); }); it('correctly identifies Arrays as non-objects', function () { expect(types_1.isObject([1, 2, 3])).toBe(false); }); it('correctly identifies Strings as non-objects', function () { expect(types_1.isObject('123')).toBe(false); }); }); describe('isString', function () { it('correctly identifies empty string as string', function () { expect(types_1.isString('')).toBe(true); }); it('correctly identifies string as string', function () { expect(types_1.isString('123')).toBe(true); }); }); });