UNPKG

@parity/light.js-react

Version:

A HOC to easily use @parity/light.js with React.

45 lines (44 loc) 2.11 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 }); require("symbol-observable"); // TODO Remove this once https://github.com/acdlite/recompose/pull/660 is merged // eslint-disable-next-line @typescript-eslint/no-unused-vars var React = require("react"); var Adapter = require("enzyme-adapter-react-16"); var Enzyme = require("enzyme"); var rxjs_1 = require("rxjs"); var recompose_1 = require("recompose"); var _1 = require("./"); Enzyme.configure({ adapter: new Adapter() }); var mount = Enzyme.mount; var MockComponent = recompose_1.toClass(function (props) { return (React.createElement("div", null, JSON.stringify(props))); }); var mockRpc$ = function () { return rxjs_1.of('bar'); }; describe('withOneObservable', function () { test('it should return a HOC', function () { expect(typeof _1.withOneObservable('foo', function () { return rxjs_1.of('bar'); })).toBe('function'); }); test('it should give the wrapped component the correct props', function () { // eslint-disable-next-line @typescript-eslint/no-unused-vars var EnhancedComponent = _1.withOneObservable('foo', mockRpc$)(MockComponent); var wrapper = mount(React.createElement(EnhancedComponent, null)); var div = wrapper.find('div'); expect(div.text()).toEqual(JSON.stringify({ foo: 'bar' })); }); }); describe('light', function () { test('it should return a HOC', function () { expect(typeof _1.default({ foo: mockRpc$ })).toBe('function'); }); test('it should give the wrapped component the correct props', function () { // eslint-disable-next-line @typescript-eslint/no-unused-vars var EnhancedComponent = _1.default({ foo: mockRpc$, baz: mockRpc$ })(MockComponent); var wrapper = mount(React.createElement(EnhancedComponent, null)); var div = wrapper.find('div'); expect(div.text()).toEqual(JSON.stringify({ foo: 'bar', baz: 'bar' })); }); });