# React Native Firebase - Testing Project

## Requirements

* Make sure you have Xcode installed (tested with Xcode 8.1-8.2).
* make sure you have node installed (`brew install node`, node 7.6.0 and up is required.
* Make sure you have react-native dependencies installed:
  * react-native-cli is installed (`npm install -g react-native-cli`)
  * watchman is installed (`brew install watchman`)
  * [appleSimUtils](https://github.com/wix/AppleSimulatorUtils)
  * detox-cli `npm install -g detox-cli`

### Step 1: Npm install

* Run `npm install`.

## To test build of your app

### Step 2: Build

* Build the demo project

```sh
detox build --configuration ios.sim.debug
```

### Step 3: Test

* start react-native packager

```sh
npm run start
```

* Run tests on the demo project

```sh
detox test --configuration ios.sim.debug
```

This action will open a new simulator and run the tests on it.

### TODO - Troubleshooting

Gradle issues... https://stackoverflow.com/questions/46917365/error-could-not-initialize-class-com-android-sdklib-repository-androidsdkhandle?rq=1

mac: `export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"`
windows `"C://Program Files/Java/jdk_1.x_"`

android sdk root `export ANDROID_SDK_ROOT="/Users/mike/Library/Android/sdk"`

Add platform-tools to your path

echo 'export ANDROID_HOME=/Users/$USER/Library/Android/sdk' >> ~/.bash_profile
echo 'export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools' >> ~/.bash_profile

Name: TestingAVD

CPU/ABI: null (null)

Path: /Users/mike/.android/avd/Actually_THIS_one.avd

Error: Failed to parse properties from /Users/mike/.android/avd/Actually_THIS_one.avd/config.ini

#### Running specific tests

Mocha supports the `.only` syntax, e.g. instead of `describe(...) || it(...)` you can use `describe.only(...) || it.only(...)` to only run that specific context or test.

Another way to do this is via adding a `--grep` option to e2e/mocha.opts file, e.g. `--grep auth` for all tests that have auth in the file path or tests descriptions.

#### Running Node debugger

Add `--inspect` to e2e/mocha.opts file

To open node debugger tools on chrome navigate to chrome://inspect/#devices and click the `Open dedicated DevTools for Node` link.

Add the default connection of `localhost:9229` if you haven't already - then the debugger will automatically connect everytime you start tests with inspect flag.

#### Mocha options

See https://mochajs.org/#usage
