diff --git a/packages/react-native-web/src/exports/View/__tests__/index-test.js b/packages/react-native-web/src/exports/View/__tests__/index-test.js index be68620b..cc5bf530 100644 --- a/packages/react-native-web/src/exports/View/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/View/__tests__/index-test.js @@ -10,13 +10,28 @@ describe('components/View', () => { expect(container.firstChild).toMatchSnapshot(); }); - test('text node throws error (single)', () => { - const subject = () => render(hello); - expect(subject).toThrow(); + test('non-text is rendered', () => { + const children = ; + const { container } = render({children}); + expect(container.firstChild).toMatchSnapshot(); }); - test('text node throws error (array)', () => { - const subject = () => + describe('raw text nodes as children', () => { + beforeEach(() => { + jest.spyOn(console, 'error'); + console.error.mockImplementation(() => {}); + }); + + afterEach(() => { + console.error.mockRestore(); + }); + + test('error logged (single)', () => { + render(hello); + expect(console.error).toBeCalled(); + }); + + test('error logged (array)', () => { render( @@ -24,13 +39,8 @@ describe('components/View', () => { ); - expect(subject).toThrow(); - }); - - test('non-text is rendered', () => { - const children = ; - const { container } = render({children}); - expect(container.firstChild).toMatchSnapshot(); + expect(console.error).toBeCalled(); + }); }); describe('prop "hitSlop"', () => { diff --git a/packages/react-native-web/src/exports/View/index.js b/packages/react-native-web/src/exports/View/index.js index 0df60a94..43902f65 100644 --- a/packages/react-native-web/src/exports/View/index.js +++ b/packages/react-native-web/src/exports/View/index.js @@ -15,7 +15,6 @@ import applyNativeMethods from '../../modules/applyNativeMethods'; import createElement from '../createElement'; import css from '../StyleSheet/css'; import filterSupportedProps from './filterSupportedProps'; -import invariant from 'fbjs/lib/invariant'; import StyleSheet from '../StyleSheet'; import TextAncestorContext from '../Text/TextAncestorContext'; import React from 'react'; @@ -42,10 +41,11 @@ class View extends React.Component { if (process.env.NODE_ENV !== 'production') { React.Children.toArray(this.props.children).forEach(item => { - invariant( - typeof item !== 'string', - `Unexpected text node: ${item}. A text node cannot be a child of a .` - ); + if (typeof item === 'string') { + console.error( + `Unexpected text node: ${item}. A text node cannot be a child of a .` + ); + } }); }