import * as React from 'react'; import { ReactAnyNode, ReactShallowRenderer } from '../src'; describe('ReactShallowRenderer', () => { describe('internalToJSON', () => { it('throws an error if the node is invalid', () => { const renderer = new ReactShallowRenderer(
); expect(() => // tslint:disable-next-line:no-string-literal renderer['internalToJSON'](({} as unknown) as ReactAnyNode) ).toThrow(/invalid/i); }); }); describe('resolveChildren', () => { it('returns an empty array when undefined is provided', () => { const renderer = new ReactShallowRenderer(); // tslint:disable-next-line:no-string-literal expect(renderer['resolveChildren'](undefined)).toEqual([]); }); it('calls resolveNestedChildren with non-undefined children', () => { const renderer = new ReactShallowRenderer(); // tslint:disable-next-line:no-string-literal renderer['resolveNestedChildren'] = jest.fn(); const nonUndefinedChildren = ['Hello']; // tslint:disable-next-line:no-string-literal renderer['resolveChildren'](nonUndefinedChildren); // tslint:disable-next-line:no-string-literal expect(renderer['resolveNestedChildren']).toHaveBeenCalledTimes(1); // tslint:disable-next-line:no-string-literal expect(renderer['resolveNestedChildren']).toHaveBeenCalledWith( nonUndefinedChildren ); }); }); describe('resolveChildName', () => { it('throws an error if the node is invalid', () => { const renderer = new ReactShallowRenderer(); expect(() => // tslint:disable-next-line:no-string-literal renderer['resolveChildName'](({} as unknown) as ReactAnyNode) ).toThrow(/invalid/i); }); }); describe('invalidNodeToString', () => { it('returns a string representation of the invalid node', () => { const renderer = new ReactShallowRenderer(); const selfReferencing: Record