1jest.mock('react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo', () => {
2  const MockA11y = {
3    addEventListener: jest.fn(),
4    announceForAccessibility: jest.fn(),
5    fetch: jest.fn(),
6    isBoldTextEnabled: jest.fn().mockResolvedValue(false),
7    isGrayscaleEnabled: jest.fn().mockResolvedValue(false),
8    isInvertColorsEnabled: jest.fn().mockResolvedValue(false),
9    isReduceMotionEnabled: jest.fn().mockResolvedValue(false),
10    isReduceTransparencyEnabled: jest.fn().mockResolvedValue(false),
11    isScreenReaderEnabled: jest.fn(() => Promise.resolve(false)),
12    removeEventListener: jest.fn(),
13    setAccessibilityFocus: jest.fn(),
14  };
15
16  // workaround to be compatible with modern `Accessibility` in RN 0.66 which has ESM export
17  // Use `return { default: MockAccessibility };` when we drop support for SDK 44
18  MockA11y.default = MockA11y;
19
20  return MockA11y;
21});
22
23jest.mock('react-native/Libraries/Utilities/Appearance', () => {
24  const MockAppearance = {
25    addChangeListener: jest.fn().mockReturnValue({ remove: jest.fn() }),
26    removeChangeListener: jest.fn(),
27    getColorScheme: jest.fn(() => 'light'),
28  };
29
30  // workaround to be compatible with modern `Appearance` in RN 0.66 which has ESM export
31  // Use `return { default: MockAppearance };` when we drop support for SDK 44
32  MockAppearance.default = MockAppearance;
33
34  return MockAppearance;
35});
36