mirror of
https://github.com/status-im/react-native.git
synced 2025-01-28 10:14:49 +00:00
25639176ff
Summary: This change only affects tests run with Jest. `require('/images/image1.png')` will be replaced with ``` Object { "testUri": "relative/path/to/images/image1.png", } ``` in the Jest snapshot instead of always being 1 returned by RelativeImageStub. This change makes it possible to test conditional asset loading in components. The problem with this change is that it will probably break a lot of existing snapshots, but that should be easily fixed when a project updates to a new version of React Native by running `jest -u` to update all snapshots. A component can have conditional asset loading based on its props, this logic would be nice to test with Jest snapshots. This problem has been discussed in https://github.com/facebook/jest/issues/2838. * **Who does this affect**: Everyone using `Image` in Jest snapshots * **How to migrate**: Running `jest -u` will update the snapshots, the snapshots should be reviewed that they are correct. * **Why make this breaking change**: It enables testing of conditional asset loading. * **Severity (number of people affected x effort)**: Low. Closes https://github.com/facebook/react-native/pull/13319 Reviewed By: rafeca Differential Revision: D5708180 Pulled By: mjesun fbshipit-source-id: 16ac42004d597db08545a21d4fffe95c5ee7e21f
27 lines
908 B
JavaScript
27 lines
908 B
JavaScript
/**
|
|
* Copyright (c) 2017-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
'use strict';
|
|
|
|
/* eslint-env node */
|
|
|
|
const path = require('path');
|
|
const createCacheKeyFunction = require('fbjs-scripts/jest/createCacheKeyFunction');
|
|
|
|
module.exports = {
|
|
// Mocks asset requires to return the filename. Makes it possible to test that
|
|
// the correct images are loaded for components. Essentially
|
|
// require('img1.png') becomes `Object { "testUri": 'path/to/img1.png' }` in
|
|
// the Jest snapshot.
|
|
process: (_, filename) =>
|
|
`module.exports = {
|
|
testUri: ${JSON.stringify(path.relative('.', filename))}
|
|
};`,
|
|
getCacheKey: createCacheKeyFunction([__filename]),
|
|
};
|