1import React from 'react'; 2import { Platform, View as NativeView } from 'react-native'; 3import renderer from 'react-test-renderer'; 4 5import { createDevView } from '../createDevView'; 6 7export const View = createDevView(NativeView); 8 9const originalConsoleError = console.error; 10const originalConsoleWarn = console.warn; 11 12beforeEach(() => { 13 console.error = jest.fn(); 14 console.warn = jest.fn(); 15}); 16afterAll(() => { 17 console.error = originalConsoleError; 18 console.warn = originalConsoleWarn; 19}); 20 21it(`renders`, () => { 22 // Ensure no errors 23 renderer 24 .create( 25 <View> 26 <View /> 27 </View> 28 ) 29 .toJSON(); 30}); 31 32it(`asserts react-dom elements`, () => { 33 const instance = ( 34 <View> 35 <div /> 36 </View> 37 ); 38 if (Platform.OS === 'web') { 39 // Ensure no errors 40 expect(() => renderer.create(instance)).not.toThrowError(); 41 } else { 42 expect(() => renderer.create(instance)).toThrowError(/Using unsupported React DOM element/); 43 } 44}); 45 46it(`warns about unwrapped strings`, () => { 47 // Ensure no errors 48 expect(renderer.create(<View>Hey</View>).toJSON()).toMatchSnapshot(); 49 50 expect(console.warn).toHaveBeenCalledTimes(1); 51}); 52