mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-08 09:37:21 +08:00
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
55 lines
1.5 KiB
JavaScript
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();
|
|
});
|
|
});
|