/// /* tslint:disable:no-use-before-declare */ import { configure, shallow } from 'enzyme'; // tslint:disable-next-line const Adapter = require('enzyme-adapter-react-16'); import * as React from 'react'; import { asyncState } from './asyncState'; /* tslint:enable:no-use-before-declare */ configure({ adapter: new Adapter() }); /** * simple React component */ @asyncState class Simple extends React.Component { constructor(props: {}) { super(props); } public render(): JSX.Element { return

simple

; } } describe('asyncState decorator', () => { it('wraps mount', () => { const view = shallow(); expect(view).toBeTruthy(); }); it('inject updateAsyncState and key', () => { const s: any = new Simple({ asyncKey: Symbol() }); expect(typeof (s.updateAsyncState)).toBe('function'); expect(typeof (s.key)).toBe('symbol'); expect(s.key.toString()).toBe('Symbol()'); }); });