Skip to content

Commit f49d843

Browse files
committed
delete user code example
1 parent 0cbfadc commit f49d843

File tree

3 files changed

+79
-3
lines changed

3 files changed

+79
-3
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// :snippet-start: delete-user
2+
import React from 'react';
3+
import {UserProvider, useApp, useUser} from '@realm/react';
4+
// :remove-start:
5+
import {Credentials} from 'realm';
6+
import {App} from 'realm';
7+
import {AppProvider} from '@realm/react';
8+
import {render, fireEvent, waitFor} from '@testing-library/react-native';
9+
import {View, Button} from 'react-native';
10+
11+
const APP_ID = 'example-testers-kvjdy';
12+
13+
function AppWrapper() {
14+
return (
15+
<View>
16+
<AppProvider id={APP_ID}>
17+
<MyApp />
18+
</AppProvider>
19+
</View>
20+
);
21+
}
22+
23+
function MyApp() {
24+
const [loggedIn, setLoggedIn] = React.useState(false);
25+
const app = useApp();
26+
27+
React.useEffect(() => {
28+
app.logIn(Credentials.anonymous()).then(user => user && setLoggedIn(true));
29+
}, []);
30+
// ...
31+
return loggedIn ? (
32+
<View>
33+
<UserProvider>
34+
<DeleteUser />
35+
</UserProvider>
36+
</View>
37+
) : null;
38+
}
39+
// :remove-end:
40+
41+
function DeleteUser() {
42+
const app = useApp();
43+
const user = useUser();
44+
45+
async function deleteUser() {
46+
// Delete the currently logged in user
47+
await app.deleteUser(user);
48+
expect(app.currentUser).toBeNull(); // :remove:
49+
}
50+
// ...
51+
// :remove-start:
52+
return <Button onPress={deleteUser} testID='test-delete-user' title='Test Me!' />;
53+
// :remove-end:
54+
}
55+
// :snippet-end:
56+
57+
afterEach(async () => await App.getApp(APP_ID).currentUser?.logOut());
58+
59+
test('delete user', async () => {
60+
const {getByTestId} = render(<AppWrapper />);
61+
const button = await waitFor(() => getByTestId('test-delete-user'));
62+
fireEvent.press(button);
63+
await waitFor(() => expect(App.getApp(APP_ID).currentUser).toBeNull());
64+
});
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React from 'react';
2+
import {UserProvider, useApp, useUser} from '@realm/react';
3+
4+
function DeleteUser() {
5+
const app = useApp();
6+
const user = useUser();
7+
8+
async function deleteUser() {
9+
// Delete the currently logged in user
10+
await app.deleteUser(user);
11+
}
12+
// ...
13+
}

source/sdk/react-native/manage-users/create-and-delete-users.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,8 @@ Call the :js-sdk:`App.deleteUser() <Realm.App.html#deleteUser>` on a user object
3434
the user's account from your Realm application. This deletes the account from
3535
the server in addition to clearing local data.
3636

37-
38-
.. literalinclude:: /examples/generated/node/authenticate.snippet.delete-user.js
39-
:language: javascript
37+
.. literalinclude:: /examples/generated/react-native/ts/delete-user.test.snippet.delete-user.tsx
38+
:language: typescript
4039

4140
To use your app in the future, the user must sign up for a new account.
4241
They can use the same credentials (depending on the authentication provider),

0 commit comments

Comments
 (0)