···16 - Add `eval "$(rbenv init - zsh)"` to your `~/.zshrc`
17 - From inside the project directory:
18 - `bundler install` (this will install Cocoapods)
19-- Setup your environment [for e2e testing using detox](https://wix.github.io/Detox/docs/introduction/getting-started):
20- - `yarn global add detox-cli`
21- - `brew tap wix/brew`
22- - `brew install applesimutils`
23- After initial setup:
24 - Copy `google-services.json.example` to `google-services.json` or provide your own `google-services.json`. (A real firebase project is NOT required)
25 - `npx expo prebuild` -> you will also need to run this anytime `app.json` or native `package.json` deps change
···120121### Running E2E Tests
122123-- Make sure you've set your environment following the above
124-- Make sure Metro and the dev server are running
125-- Run `yarn e2e`
126-- Find the artifacts in the `artifact` folder
127128### Polyfills
129
···16 - Add `eval "$(rbenv init - zsh)"` to your `~/.zshrc`
17 - From inside the project directory:
18 - `bundler install` (this will install Cocoapods)
000019- After initial setup:
20 - Copy `google-services.json.example` to `google-services.json` or provide your own `google-services.json`. (A real firebase project is NOT required)
21 - `npx expo prebuild` -> you will also need to run this anytime `app.json` or native `package.json` deps change
···116117### Running E2E Tests
118119+See [testing.md](./testing.md).
000120121### Polyfills
122
+10-4
docs/testing.md
···3Make sure you've copied `.env.example` to `.env.test` and provided any required
4values.
56-### Using Maestro E2E tests
071. Install Maestro by following [these instructions](https://maestro.mobile.dev/getting-started/installing-maestro). This will help us run the E2E tests.
8-2. You can write Maestro tests in `__e2e__/maestro` directory by creating a new `.yaml` file or by modifying an existing one.
9-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.
1001112-### Using Flashlight for Performance Testing
0000131. Make sure Maestro is installed (optional: only for automated testing) by following the instructions above
142. Install Flashlight by following [these instructions](https://docs.flashlight.dev/)
153. 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)
···3Make sure you've copied `.env.example` to `.env.test` and provided any required
4values.
56+## Using Maestro
7+81. Install Maestro by following [these instructions](https://maestro.mobile.dev/getting-started/installing-maestro). This will help us run the E2E tests.
9+2. You can write Maestro tests in `/.maestro/flows/` directory by creating a new `.yml` file or by modifying an existing one.
10+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.
1112+### Running Maestro tests
1314+- In one tab, run `yarn e2e:mock-server`
15+- In a second tab, run `yarn e2e:metro`
16+- In a third tab, run `yarn e2e:run`
17+18+## Using Flashlight for Performance Testing
191. Make sure Maestro is installed (optional: only for automated testing) by following the instructions above
202. Install Flashlight by following [these instructions](https://docs.flashlight.dev/)
213. 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)
···1import React from 'react'
2-import {Pressable, View} from 'react-native'
3-import {navigate} from '../../../Navigation'
04import {useModalControls} from '#/state/modals'
5-import {useQueryClient} from '@tanstack/react-query'
6import {useSessionApi} from '#/state/session'
7-import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences'
8import {useLoggedOutViewControls} from '#/state/shell/logged-out'
000910/**
11 * This utility component is only included in the test simulator
···1import React from 'react'
2+import {LogBox, Pressable, View} from 'react-native'
3+import {useQueryClient} from '@tanstack/react-query'
4+5import {useModalControls} from '#/state/modals'
6+import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences'
7import {useSessionApi} from '#/state/session'
08import {useLoggedOutViewControls} from '#/state/shell/logged-out'
9+import {navigate} from '../../../Navigation'
10+11+LogBox.ignoreAllLogs()
1213/**
14 * This utility component is only included in the test simulator