1*641d0767SEvan Baconimport React from 'react';
2*641d0767SEvan Baconimport renderer from 'react-test-renderer';
3*641d0767SEvan Bacon
4*641d0767SEvan Baconimport View from '../../primitives/View';
5*641d0767SEvan Baconimport { createSafeStyledView } from '../createSafeStyledView';
6*641d0767SEvan Bacon
7*641d0767SEvan Baconconst Safe = createSafeStyledView(View);
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(`strips invalid style properties`, () => {
22*641d0767SEvan Bacon  const tree = renderer.create(
23*641d0767SEvan Bacon    <Safe
24*641d0767SEvan Bacon      style={{
25*641d0767SEvan Bacon        transitionDuration: '200ms',
26*641d0767SEvan Bacon        position: 'absolute',
27*641d0767SEvan Bacon      }}
28*641d0767SEvan Bacon    />
29*641d0767SEvan Bacon  );
30*641d0767SEvan Bacon  //   expect(tree.root.children[0]).toHaveStyle({ position: 'absolute' });
31*641d0767SEvan Bacon  expect(tree).toMatchSnapshot();
32*641d0767SEvan Bacon});
33*641d0767SEvan Bacon
34*641d0767SEvan Baconit(`replaces invalid position with "relative"`, () => {
35*641d0767SEvan Bacon  const tree = renderer.create(
36*641d0767SEvan Bacon    <Safe
37*641d0767SEvan Bacon      style={{
38*641d0767SEvan Bacon        position: 'fixed',
39*641d0767SEvan Bacon      }}
40*641d0767SEvan Bacon    />
41*641d0767SEvan Bacon  );
42*641d0767SEvan Bacon  expect(tree).toMatchSnapshot();
43*641d0767SEvan Bacon  expect(console.warn).toBeCalledWith(`Unsupported position: 'fixed'`);
44*641d0767SEvan Bacon});
45*641d0767SEvan Bacon
46*641d0767SEvan Baconit(`mocks out visibility: hidden by lowering the opacity`, () => {
47*641d0767SEvan Bacon  const tree = renderer.create(
48*641d0767SEvan Bacon    <Safe
49*641d0767SEvan Bacon      style={{
50*641d0767SEvan Bacon        visibility: 'hidden',
51*641d0767SEvan Bacon      }}
52*641d0767SEvan Bacon    />
53*641d0767SEvan Bacon  );
54*641d0767SEvan Bacon  expect(tree).toMatchSnapshot();
55*641d0767SEvan Bacon});
56