Files
react-native/Libraries/Components/ActivityIndicator/__tests__/ActivityIndicator-test.js
Rick Hanlon c5b80062ea Fix ActivityIndicator snapshot test, add toMatchShallowSnapshot
Summary:
This diff adds a custom matcher which will wrap a given component and shallow render it, snapshotting the result with the formatting users will see when they do the same.

I also update the ActivityIndicator test to use this new strategy, and add an additional check that the displayName is set.

For context see:
- https://github.com/facebook/react-native/pull/21950
- https://github.com/rajivshah3/rn-broken-snapshot/blob/broken-example/__tests__/App.spec.js#L3
- https://github.com/facebook/react-native/issues/21937

Reviewed By: TheSavior

Differential Revision: D13326689

fbshipit-source-id: 8ed2302a8aad12962fa2498a46d2502ccfb5c737
2018-12-05 17:23:42 -08:00

55 lines
1.5 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @emails oncall+react_native
* @flow
*/
'use strict';
const React = require('React');
const ActivityIndicator = require('ActivityIndicator');
const render = require('../../../../jest/renderer');
describe('ActivityIndicator', () => {
it('should set displayName to prevent <Component /> regressions', () => {
expect(ActivityIndicator.displayName).toBe('ActivityIndicator');
});
it('should render as <ActivityIndicator> when mocked', () => {
const instance = render.create(
<ActivityIndicator size="large" color="#0000ff" />,
);
expect(instance).toMatchSnapshot();
});
it('should shallow render as <ActivityIndicator> when mocked', () => {
const output = render.shallow(
<ActivityIndicator size="large" color="#0000ff" />,
);
expect(output).toMatchSnapshot();
});
it('should shallow render as <ForwardRef(ActivityIndicator)> when not mocked', () => {
jest.dontMock('ActivityIndicator');
const output = render.shallow(
<ActivityIndicator size="large" color="#0000ff" />,
);
expect(output).toMatchSnapshot();
});
it('should render as <View> when not mocked', () => {
jest.dontMock('ActivityIndicator');
const instance = render.create(
<ActivityIndicator size="large" color="#0000ff" />,
);
expect(instance).toMatchSnapshot();
});
});