@parity/api
Version:
The Parity Promise-based API library for interfacing with Ethereum over RPC
88 lines (87 loc) • 3.58 kB
JavaScript
;
// 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);
});
});
});