···1616 - Add `eval "$(rbenv init - zsh)"` to your `~/.zshrc`
1717 - From inside the project directory:
1818 - `bundler install` (this will install Cocoapods)
1919-- Setup your environment [for e2e testing using detox](https://wix.github.io/Detox/docs/introduction/getting-started):
2020- - `yarn global add detox-cli`
2121- - `brew tap wix/brew`
2222- - `brew install applesimutils`
2319- After initial setup:
2420 - Copy `google-services.json.example` to `google-services.json` or provide your own `google-services.json`. (A real firebase project is NOT required)
2521 - `npx expo prebuild` -> you will also need to run this anytime `app.json` or native `package.json` deps change
···120116121117### Running E2E Tests
122118123123-- Make sure you've set your environment following the above
124124-- Make sure Metro and the dev server are running
125125-- Run `yarn e2e`
126126-- Find the artifacts in the `artifact` folder
119119+See [testing.md](./testing.md).
127120128121### Polyfills
129122
+10-4
docs/testing.md
···33Make sure you've copied `.env.example` to `.env.test` and provided any required
44values.
5566-### Using Maestro E2E tests
66+## Using Maestro
77+781. Install Maestro by following [these instructions](https://maestro.mobile.dev/getting-started/installing-maestro). This will help us run the E2E tests.
88-2. You can write Maestro tests in `__e2e__/maestro` directory by creating a new `.yaml` file or by modifying an existing one.
99-3. You can also use [Maestro Studio](https://maestro.mobile.dev/getting-started/maestro-studio) which automatically generates commands by recording your actions on the app. Therefore, you can create realistic tests without having to manually write any code. Use the `maestro studio` command to start recording your actions.
99+2. You can write Maestro tests in `/.maestro/flows/` directory by creating a new `.yml` file or by modifying an existing one.
1010+3. You can also use [Maestro Studio](https://maestro.mobile.dev/getting-started/maestro-studio) which automatically generates commands by recording your actions on the app. Therefore, you can create realistic tests without having to manually write any code. Use the `maestro studio` command to start recording your actions.
10111212+### Running Maestro tests
11131212-### Using Flashlight for Performance Testing
1414+- In one tab, run `yarn e2e:mock-server`
1515+- In a second tab, run `yarn e2e:metro`
1616+- In a third tab, run `yarn e2e:run`
1717+1818+## Using Flashlight for Performance Testing
13191. Make sure Maestro is installed (optional: only for automated testing) by following the instructions above
14202. Install Flashlight by following [these instructions](https://docs.flashlight.dev/)
15213. The simplest way to get started is by running `yarn perf:measure` which will run a live preview of the performance test results. You can [see a demo here](https://github.com/bamlab/flashlight/assets/4534323/4038a342-f145-4c3b-8cde-17949bf52612)
···11import React from 'react'
22-import {Pressable, View} from 'react-native'
33-import {navigate} from '../../../Navigation'
22+import {LogBox, Pressable, View} from 'react-native'
33+import {useQueryClient} from '@tanstack/react-query'
44+45import {useModalControls} from '#/state/modals'
55-import {useQueryClient} from '@tanstack/react-query'
66+import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences'
67import {useSessionApi} from '#/state/session'
77-import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences'
88import {useLoggedOutViewControls} from '#/state/shell/logged-out'
99+import {navigate} from '../../../Navigation'
1010+1111+LogBox.ignoreAllLogs()
9121013/**
1114 * This utility component is only included in the test simulator