Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
305 changes: 165 additions & 140 deletions .github/actions/javascript/isDeployChecklistLocked/index.js

Large diffs are not rendered by default.

305 changes: 165 additions & 140 deletions .github/actions/javascript/proposalPoliceComment/index.js

Large diffs are not rendered by default.

44 changes: 22 additions & 22 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ PODS:
- ExpoModulesCore
- ExpoLogBox (57.0.1):
- React-Core
- ExpoModulesCore (57.0.7):
- ExpoModulesCore (57.0.15):
- ExpoModulesJSI
- hermes-engine
- RCTRequired
Expand All @@ -170,10 +170,10 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- ExpoModulesJSI (57.0.4):
- ExpoModulesJSI (57.0.8):
- React-Core
- ReactCommon
- ExpoModulesWorklets (57.0.7):
- ExpoModulesWorklets (57.0.15):
- ExpoModulesCore
- ExpoModulesJSI
- ExpoStoreReview (57.0.1):
Expand Down Expand Up @@ -2955,7 +2955,7 @@ PODS:
- RNGoogleSignin (10.0.1):
- GoogleSignIn (~> 7.0)
- React-Core
- RNLiveMarkdown (0.1.342):
- RNLiveMarkdown (0.1.343):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand Down Expand Up @@ -3101,7 +3101,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- RNReanimated (4.5.5):
- RNReanimated (4.7.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand All @@ -3123,12 +3123,12 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- RNReanimated/apple (= 4.5.5)
- RNReanimated/common (= 4.5.5)
- RNReanimated/view (= 4.5.5)
- RNReanimated/apple (= 4.7.0)
- RNReanimated/common (= 4.7.0)
- RNReanimated/view (= 4.7.0)
- RNWorklets
- Yoga
- RNReanimated/apple (4.5.5):
- RNReanimated/apple (4.7.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand All @@ -3152,7 +3152,7 @@ PODS:
- ReactNativeDependencies
- RNWorklets
- Yoga
- RNReanimated/common (4.5.5):
- RNReanimated/common (4.7.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand All @@ -3176,7 +3176,7 @@ PODS:
- ReactNativeDependencies
- RNWorklets
- Yoga
- RNReanimated/view (4.5.5):
- RNReanimated/view (4.7.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand Down Expand Up @@ -3337,7 +3337,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- RNWorklets (0.11.1):
- RNWorklets (0.13.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand All @@ -3359,10 +3359,10 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- RNWorklets/apple (= 0.11.1)
- RNWorklets/common (= 0.11.1)
- RNWorklets/apple (= 0.13.0)
- RNWorklets/common (= 0.13.0)
- Yoga
- RNWorklets/apple (0.11.1):
- RNWorklets/apple (0.13.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand All @@ -3385,7 +3385,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- RNWorklets/common (0.11.1):
- RNWorklets/common (0.13.0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
Expand Down Expand Up @@ -3961,9 +3961,9 @@ SPEC CHECKSUMS:
ExpoImageManipulator: d3c962dabd86b331980f8ec6794c6073b3cb541a
ExpoLocation: 187949911b868f72e34a8a6f8f487207ba86388a
ExpoLogBox: 8a3cfa2897e088083cd49fc1ff7fdb2de4385547
ExpoModulesCore: 5b2895ff83c42d320aaaa713c44051d84b0de698
ExpoModulesJSI: 3accd404d715d63e7b04015d20c857e903e3bc73
ExpoModulesWorklets: b21b8f233b5fd71ca74327217601fa4ead9ddaaf
ExpoModulesCore: 9c02efc618119023146b9b8db9c0930e43ac977d
ExpoModulesJSI: 4f849c58e99b57c2438b21ed6bc2fcb6f984a0d1
ExpoModulesWorklets: 5e70b46d570c5b1b702c18bc8ac8d1af0171450e
ExpoStoreReview: 2a0f6b8e04112aea2f6e3e1cb84109d78f4d041f
ExpoTaskManager: f68326227852a30148700965c37c058c1473c6a2
ExpoVideo: b1d9a325ddcd4f3ed8ccb374c01b688e98bc6a04
Expand Down Expand Up @@ -4109,18 +4109,18 @@ SPEC CHECKSUMS:
RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8
RNGestureHandler: 85e32defcf23dd3b023356355c5c1dd1d9d51bde
RNGoogleSignin: 89877c73f0fbf6af2038fbdb7b73b5a25b8330cc
RNLiveMarkdown: f4c383d846d5d756f42bdf6006e85d5baf0ebfc8
RNLiveMarkdown: b6894bb864d517f51ea80c98facd26571f2cd0fe
RNLocalize: 82e7aa2857ce5dcd9e2a0c04f8c34c2ed50821df
rnmapbox-maps: 54eb40428a4fd89f484a492fc7186bc1c1eea9ce
RNNitroSQLite: c986393b7cb0e5e4587d0c9f7108e56ee8db9627
RNPermissions: 32bd3b977f28442af0900b102f4458f0f9f9b77c
RNReactNativeHapticFeedback: 6c8677db48f62a635e6a2065f5d2bd02498d7a73
RNReanimated: f093c30aa11e45a8044dcc19417f44cffa1c4e1d
RNReanimated: e75c988a6527ec651ea2957b93891ddb64d530d4
RNScreens: 8708989f700bdc3dc5abc3c77aa3b5f3e73ce2b2
RNSentry: c878a3c462c1097f63a81615c784d44641ae92e4
RNShare: eb378c57de30a83b0253eed74762ee99249f47d7
RNSVG: 394cfd0518613b144c65ffe69045f827b78a7a7c
RNWorklets: f0734080219ea54d479c179da498c9b24611faed
RNWorklets: 3da8f468c848547646f4e6b12fb46ad93a2cdee2
SDWebImage: 16309af6d214ba3f77a7c6f6fdda888cb313a50a
SDWebImageAVIFCoder: afe194a084e851f70228e4be35ef651df0fc5c57
SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c
Expand Down
1 change: 1 addition & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const emitsUntestedFiles = !shardMatch || shardMatch[1] === '1';

module.exports = {
preset: 'jest-expo',
resolver: '<rootDir>/jest/resolver.ts',
collectCoverageFrom: emitsUntestedFiles ? ['<rootDir>/src/**/*.{ts,tsx,js,jsx}', '!<rootDir>/src/**/__mocks__/**', '!<rootDir>/src/**/tests/**', '!**/*.d.ts'] : undefined,
// Keeps the instrumented set identical to `collectCoverageFrom` above on the shards that skip it.
coveragePathIgnorePatterns: ['/node_modules/', '<rootDir>/(?!src/)', '/__mocks__/', '<rootDir>/src/.*/tests/', '\\.d\\.ts$'],
Expand Down
28 changes: 28 additions & 0 deletions jest/resolver.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Since Reanimated 4.6 its shared files are split into `.native`/`.web` variants and Jest resolves the `.native` ones,
// which call native-only APIs at import time (e.g. `setCSSEventHandler`) and crash every suite that imports Reanimated.
// Reanimated's resolver maps those files to their web variants (and chains the Worklets resolver), but replacing the
// jest-expo preset's React Native resolver would break mocking `react-native/*` subpaths, so this chains both.
//
// Jest `require`s this file untransformed, so Node strips the types and loads it as an ES module: Jest reads the `sync`
// export, and both resolvers are untyped CommonJS loaded through `createRequire`.
import {createRequire} from 'node:module';

type ResolverOptions = {
defaultResolver: SyncResolver;
};

/** The subset of Jest's `SyncResolver` (from `jest-resolve`) that this file relies on. */
type SyncResolver = (path: string, options: ResolverOptions) => string;

const requireResolver: (id: string) => SyncResolver = createRequire(import.meta.url);
const reactNativeResolver = requireResolver('@react-native/jest-preset/jest/resolver');
const reanimatedResolver = requireResolver('react-native-reanimated/jest/resolver');

const resolver: SyncResolver = (request, options) =>
reanimatedResolver(request, {
...options,
defaultResolver: (path, nextOptions) => reactNativeResolver(path, {...nextOptions, defaultResolver: options.defaultResolver}),
});

export default resolver;
export {resolver as sync};
5 changes: 0 additions & 5 deletions jest/setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,6 @@ jest.mock('react-native-reanimated', () => ({
// react-native-reanimated/mock leaves dispatchCommand out (see its own "ADD ME IF NEEDED" comment). forceClearInput
// (src/libs/ComponentUtils) dispatches it from a UI-thread worklet, so any test exercising that path needs it mocked.
dispatchCommand: jest.fn(),
// react-native-reanimated/mock also leaves out useComposedEventHandler, useHandler and isSharedValue, which Gesture Handler 3
// calls from its detectors (including the ones behind its ScrollView / FlatList wrappers).
useComposedEventHandler: jest.fn(() => () => {}),
useHandler: jest.fn(() => ({context: {}, doDependenciesDiffer: false})),
isSharedValue: jest.fn((value: unknown) => typeof value === 'object' && value !== null && 'value' in value && 'get' in value && typeof value.get === 'function'),
useReducedMotion: jest.fn,
useScrollViewOffset: jest.fn(() => 0),
useAnimatedRef: jest.fn(() => jest.fn()),
Expand Down
62 changes: 33 additions & 29 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading