Skip to content

Commit 59699a5

Browse files
committed
Cleanup the structure, improve mocks
1 parent 1fd2726 commit 59699a5

File tree

4 files changed

+36
-44
lines changed

4 files changed

+36
-44
lines changed

packages/react-native-reanimated/jest-web-setup.js

Lines changed: 0 additions & 41 deletions
This file was deleted.

packages/react-native-reanimated/jest.config.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
// @ts-expect-error - jest-expo/config doesn't have type declarations
12
const { getWebPreset } = require('jest-expo/config');
23

3-
const sharedSetupFiles = ['<rootDir>/jest-setup.js'];
4+
const sharedSetupFiles = ['<rootDir>/jest/setup.js'];
45
const sharedSetupFilesAfterEnv = ['@testing-library/jest-native/extend-expect'];
56

67
/**
@@ -29,17 +30,19 @@ const nativeProject = createProject({
2930

3031
const {
3132
snapshotResolver: _,
33+
watchPlugins: __,
3234
...baseWebPreset
3335
} = getWebPreset();
3436

3537
const webProject = createProject({
3638
...baseWebPreset,
37-
setupFiles: [...baseWebPreset.setupFiles, '<rootDir>/jest-web-setup.js'],
39+
setupFiles: [...baseWebPreset.setupFiles, '<rootDir>/jest/setup.web.js'],
3840
displayName: 'web',
3941
testMatch: ['**/*.web.test.@(js|jsx|ts|tsx)'],
4042
testEnvironment: 'jsdom',
4143
});
4244

45+
4346
module.exports = {
4447
projects: [nativeProject, webProject],
4548
};

packages/react-native-reanimated/jest-setup.js renamed to packages/react-native-reanimated/jest/setup.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// @ts-nocheck
22
delete global.MessageChannel;
33
require('react-native-worklets/jestSetup');
4-
require('./src/jestUtils').setUpTests();
4+
require('../src/jestUtils').setUpTests();
55

66
jest.mock('react-native-worklets', () =>
77
require('react-native-worklets/src/mock')
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const { Platform } = require('react-native');
2+
3+
/* global window */
4+
if (window && typeof window.matchMedia !== 'function') {
5+
window.matchMedia = (query) => ({
6+
matches: false,
7+
media: query,
8+
onchange: null,
9+
addEventListener: () => { },
10+
removeEventListener: () => { },
11+
addListener: () => { },
12+
removeListener: () => { },
13+
dispatchEvent: () => false,
14+
});
15+
}
16+
17+
Platform.OS = 'web';
18+
19+
const originalSelect = Platform.select.bind(Platform);
20+
21+
Platform.select = (spec) => {
22+
if (spec && typeof spec === 'object') {
23+
/** @type {Record<string, unknown>} */
24+
const typedSpec = spec;
25+
return typedSpec.web ?? typedSpec.default ?? originalSelect(typedSpec);
26+
}
27+
28+
return spec;
29+
};
30+

0 commit comments

Comments
 (0)