# redux-base

Role | Name | Email | Slack
---- | ---- | ----- | -----
*Product Owner* | Frances Haugen | [frances@gigster.com](mailto:frances@gigster.com) | [@frances]
*Maintainer* | Geoff Kinder | [geoff.kinder@gigster.com](mailto:geoff.kinder@gigster.com) | [@geoff]
*Developer* | Mark Miyashita | [mark.miyashita@gigster.com](mailto:mark.miyashita@gigster.com) | [@mark]

## Overview

Adds Redux infrastructure to your React app. This includes a store, a way to easily create and add reducers, and infrastructure to store your state in localstorage on web and native.

## Usage

### Specification

Name | Status | Description
---- | ------ | -----------
`generateTests` | `true`/`false` | Set to true if you would like generated tests to be created for you for the app.
`storybook` | `true`/`false` | Set to true if you would like to generate storybook decorators for Redux.

### Dependencies

This module is dependent on [`redux`](https://redux.js.org/) version 3.7.2.

### Examples

There are two examples for this project:

1. [`with-tests`](examples/with-tests) - This example is generated with `generateTests: true` so it has the infrastructure as well as generated tests.
2. [`with-storybook`](examples/with-storybook) - This example is generated with `storybook: true` so it contains storybook decorators to use when rendering with Redux.

## Troubleshooting

## Testing

Module tests are defined using a `test/scenarios.yaml` file. This file defines the set of example gigs that we generate as part of integration testing. To run all tests, run `yarn test` at the root of this module.

Each scenario is generated in `test/scenario/<name>` which you can then `cd` into and run the actual app. For a scenario called `default`, this is done via:

```sh
cd test/scenario/default
yarn install

# Run tests.
yarn test

# Start the app.
yarn start
```

<!-- 2.0 Release -->
