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