Skip to content

Commit d145b1b

Browse files
chore: update examples to use v14 (#1872)
1 parent 507f501 commit d145b1b

26 files changed

+3650
-2425
lines changed

.yarnrc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ npmPreapprovedPackages:
1010
- '@react-native/*'
1111
- '@types/react'
1212
- hermes-compiler
13+
- expo
14+
- '@expo/cli'
1315

1416
yarnPath: .yarn/releases/yarn-4.11.0.cjs

examples/basic/App.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
import * as React from 'react';
2-
import { SafeAreaView } from 'react-native';
2+
import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
33
import { LoginForm } from './components/LoginForm';
44
import { Home } from './components/Home';
55

66
const App = () => {
77
const [user, setUser] = React.useState<string | null>(null);
88

99
return (
10-
<SafeAreaView>
11-
{user == null ? <LoginForm onLoginSuccess={setUser} /> : <Home user={user} />}
12-
</SafeAreaView>
10+
<SafeAreaProvider>
11+
<SafeAreaView>
12+
{user == null ? <LoginForm onLoginSuccess={setUser} /> : <Home user={user} />}
13+
</SafeAreaView>
14+
</SafeAreaProvider>
1315
);
1416
};
1517

examples/basic/__tests__/App.test.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ jest.useFakeTimers();
77
/**
88
* A good place to start is having a tests that your component renders correctly.
99
*/
10-
test('renders correctly', () => {
10+
test('renders correctly', async () => {
1111
// Idiom: no need to capture render output, as we will use `screen` for queries.
12-
render(<App />);
12+
await render(<App />);
1313

1414
// Idiom: `getBy*` queries are predicates by themselves, but we will use it with `expect().toBeOnTheScreen()`
1515
// to clarify our intent.
@@ -26,7 +26,7 @@ test('User can sign in successully with correct credentials', async () => {
2626
const user = userEvent.setup();
2727

2828
// Idiom: no need to capture render output, as we will use `screen` for queries.
29-
render(<App />);
29+
await render(<App />);
3030

3131
// Idiom: `getBy*` queries are predicates by themselves, but we will use it with `expect().toBeOnTheScreen()`
3232
// to clarify our intent.
@@ -65,7 +65,7 @@ test('User can sign in successully with correct credentials', async () => {
6565
*/
6666
test('User will see errors for incorrect credentials', async () => {
6767
const user = userEvent.setup();
68-
render(<App />);
68+
await render(<App />);
6969

7070
expect(screen.getByRole('header', { name: 'Sign in to Example App' })).toBeOnTheScreen();
7171

@@ -86,7 +86,7 @@ test('User will see errors for incorrect credentials', async () => {
8686
*/
8787
test('User can sign in after incorrect attempt', async () => {
8888
const user = userEvent.setup();
89-
render(<App />);
89+
await render(<App />);
9090

9191
expect(screen.getByRole('header', { name: 'Sign in to Example App' })).toBeOnTheScreen();
9292

examples/basic/components/__tests__/AnimatedView.test.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,27 @@ describe('AnimatedView', () => {
1313
});
1414

1515
it('should use native driver when useNativeDriver is true', async () => {
16-
render(
16+
await render(
1717
<AnimatedView fadeInDuration={250} useNativeDriver={true}>
1818
<Text>Test</Text>
1919
</AnimatedView>,
2020
);
2121
expect(screen.root).toHaveStyle({ opacity: 0 });
2222

23-
act(() => jest.advanceTimersByTime(250));
23+
await act(() => jest.advanceTimersByTime(250));
2424
// Does not work with native driver
2525
// expect(screen.root).toHaveStyle({ opacity: 1 });
2626
});
2727

2828
it('should not use native driver when useNativeDriver is false', async () => {
29-
render(
29+
await render(
3030
<AnimatedView fadeInDuration={250} useNativeDriver={false}>
3131
<Text>Test</Text>
3232
</AnimatedView>,
3333
);
3434
expect(screen.root).toHaveStyle({ opacity: 0 });
3535

36-
act(() => jest.advanceTimersByTime(250));
36+
await act(() => jest.advanceTimersByTime(250));
3737
expect(screen.root).toHaveStyle({ opacity: 1 });
3838
});
3939
});

examples/basic/jest-setup.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import mockSafeAreaContext from 'react-native-safe-area-context/jest/mock';
2+
3+
jest.mock('react-native-safe-area-context', () => mockSafeAreaContext);

examples/basic/package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,24 @@
1111
"typecheck": "tsc --noEmit"
1212
},
1313
"dependencies": {
14-
"expo": "^53.0.19",
15-
"expo-status-bar": "~2.2.3",
16-
"react": "19.0.0",
17-
"react-dom": "19.0.0",
18-
"react-native": "0.79.5",
19-
"react-native-web": "^0.20.0"
14+
"expo": "^54.0.32",
15+
"expo-status-bar": "~3.0.9",
16+
"react": "19.1.0",
17+
"react-dom": "19.1.0",
18+
"react-native": "0.81.5",
19+
"react-native-safe-area-context": "^5.6.2",
20+
"react-native-web": "^0.21.0"
2021
},
2122
"devDependencies": {
2223
"@babel/core": "^7.24.0",
23-
"@testing-library/react-native": "^13.0.0",
24+
"@testing-library/react-native": "^14.0.0-beta.0",
2425
"@types/eslint": "^8.56.10",
2526
"@types/jest": "^29.5.12",
26-
"@types/react": "~19.0.10",
27+
"@types/react": "~19.1.10",
2728
"eslint": "^8.57.0",
2829
"jest": "^29.7.0",
29-
"react-test-renderer": "19.0.0",
30-
"typescript": "^5.3.0"
30+
"test-renderer": "0.14.0",
31+
"typescript": "~5.9.2"
3132
},
3233
"private": true,
3334
"packageManager": "yarn@4.0.1"

0 commit comments

Comments
 (0)