-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[feature/react-intl] merge feature/redux (#734)
* Add support for helpers in redux-thunk actions (#650) Support for isomorphic `fetch` and `graphqlRequest` helpers in redux-thunk action creators * [feature/redux] Fix: Redux helpers client configuration (#663) * Update npm modules; tweak Stylelint settings * Change db string length (#691) * Update history module to v3 (#692) - Update `history` dependency to v3.0.0 ([changelog](https://github.com/ReactJSTraining/history/blob/master/CHANGES.md)) - Add `windowScrollX` and `windowScrollY` helpers to `core/DOMUtils` - Rename `match()` to `UniversalRouter.resolve()` - Fix scroll issues ([see article](https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration)) * fix(Isomorphic Style Loader): Add support to load multiple styles (#678) * fix(Isomorphic Style Loader): Add support to load multiple styles * fix(Isomorphic Style Loader): Add remove feature back * Adds testing section (#687) Integrates comments by @langpavel * Fix npm warnings about graphql dependencies (#693) fixes #661 * Fix OccurrenceOrderPlugin spelling (#683) * fixed typo in passport.js (#696) * Docs: use more expressive language (#701) * Add eslint global-require exception (#703) Add eslint global-require exception, based in 'src/server.js' file. The 'feature/react-intl' branch also has this problem. * Update stylelint-config-standard (#707) * Update stylelint-config-standard When I run 'npm run lint', this warning show up: Deprecation Warning: 'number-zero-length-no-unit' has been deprecated, and will be removed in '7.0'. Use 'length-zero-no-unit' instead. See: http://stylelint.io/user-guide/rules/length-zero-no-unit/ update package to remove it. * Update stylelint to use length-zero-no-unit instead number-zero-length-no-unit. * Fix spelling of "vice versa" (#710) * Remove jade dependency * Update react-style-guide.md (#718) replace ../Nav with ../Navigation * Update CHANGELOG.md
- Loading branch information
Showing
28 changed files
with
491 additions
and
327 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
## Testing your application | ||
|
||
### Used libraries | ||
|
||
RSK comes with the following libraries for testing purposes: | ||
|
||
- [Mocha](https://mochajs.org/) - Node.js and browser test runner | ||
- [Chai](http://chaijs.com/) - Assertion library | ||
- [Enzyme](https://github.com/airbnb/enzyme) - Testing utilities for React | ||
|
||
You may also want to take a look at the following related packages: | ||
|
||
- [jsdom](https://github.com/tmpvar/jsdom) | ||
- [react-addons-test-utils](https://www.npmjs.com/package/react-addons-test-utils) | ||
|
||
### Running tests | ||
|
||
To test your application simply run the | ||
[`npm test`](https://github.com/kriasoft/react-starter-kit/blob/b22b1810461cec9c53eedffe632a3ce70a6b29a3/package.json#L154) | ||
command which will: | ||
- recursively find all files ending with `.test.js` in your `src/` directory | ||
- mocha execute found files | ||
|
||
```bash | ||
npm test | ||
``` | ||
|
||
### Conventions | ||
|
||
- test filenames MUST end with `test.js` or `npm test` will not be able to detect them | ||
- test filenames SHOULD be named after the related component (e.g. create `Login.test.js` for | ||
`Login.js` component) | ||
|
||
### Basic example | ||
|
||
To help you on your way RSK comes with the following | ||
[basic test case](https://github.com/kriasoft/react-starter-kit/blob/master/src/components/App/App.test.js) | ||
you can use as a starting point: | ||
|
||
```js | ||
import React from 'react'; | ||
import { expect } from 'chai'; | ||
import { shallow } from 'enzyme'; | ||
import App from './App'; | ||
|
||
describe('App', () => { | ||
|
||
it('renders children correctly', () => { | ||
const wrapper = shallow( | ||
<App context={{ insertCss: () => {} }}> | ||
<div className="child" /> | ||
</App> | ||
); | ||
|
||
expect(wrapper.contains(<div className="child" />)).to.be.true; | ||
}); | ||
|
||
}); | ||
``` | ||
|
||
### React-intl example | ||
|
||
React-intl users MUST render/wrap components inside an IntlProvider like the example below: | ||
|
||
The example below example is a drop-in test for the RSK `Header` component: | ||
|
||
```js | ||
import React from 'react'; | ||
import Header from './Header'; | ||
import IntlProvider from 'react-intl'; | ||
import Navigation from '../../components/Navigation'; | ||
|
||
describe('A test suite for <Header />', () => { | ||
|
||
it('should contain a <Navigation/> component', () => { | ||
it('rendering', () => { | ||
const wrapper = renderIntoDocument(<IntlProvider locale="en"><Header /></IntlProvider>); | ||
expect(wrapper.find(Navigation)).to.have.length(1); | ||
}); | ||
}); | ||
|
||
}); | ||
``` | ||
|
||
Please note that NOT using IntlProvider will produce the following error: | ||
|
||
> Invariant Violation: [React Intl] Could not find required `intl` object. <IntlProvider> | ||
> needs to exist in the component ancestry. | ||
### Linting | ||
|
||
Running RSK eslint will also scan your test files: | ||
|
||
```bash | ||
npm run eslint | ||
``` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.