Skip to content

Added needed Jest config to babel and eslint #84

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from Oct 17, 2017
Merged

Added needed Jest config to babel and eslint #84

merged 1 commit into from Oct 17, 2017

Conversation

ghost
Copy link

@ghost ghost commented Sep 25, 2017

fixes #81

@caedmon
Copy link
Contributor

caedmon commented Sep 26, 2017

This does indeed get it closer to working, thanks.

I also had to add to .babelrc:
"plugins": ["transform-class-properties", "transform-object-rest-spread"],
I suppose the list should match those in the webpack config files.

And I still get the 'React depends on requestAnimationFrame.' warning.

To get coverage of untested files, I also had to add a jest.conf.js excluding dist and kit as well as the usual node_modules.

@ghost
Copy link
Author

ghost commented Sep 26, 2017

@caedmon Can you post your jest config? I'll add to the PR.

@caedmon
Copy link
Contributor

caedmon commented Sep 27, 2017

Not sure what's the best way to post the file, but maybe this will work.
I ended up setting it up to report coverage only for src, so no need to exclude dist, kit and node_modules.

jest.config.js.txt

@leebenson
Copy link
Member

@Nate0001 - I'll leave this PR open, pending your comments on @caedmon's config changes. If that completes the jest testing config, feel free to re-commit and I'll merge.

@caedmon
Copy link
Contributor

caedmon commented Sep 27, 2017

I wonder if it wouldn't be helpful to include a sample test of a component and/or some mention in the doc of how to add a test and run tests.

@ghost
Copy link
Author

ghost commented Oct 12, 2017

Fixed the babel errors by installing babel-jest. There's still the issue of import aliases.

@ghost
Copy link
Author

ghost commented Oct 12, 2017

Fixed import aliases.

@leebenson Everything should be working correctly now

@leebenson leebenson merged commit f1ea326 into reactql:master Oct 17, 2017
leebenson added a commit that referenced this pull request Oct 17, 2017
2.9.0 - 2017-10-17
-----------------------------------------------

## Building
* Fixes static building via `npm run build-static`, by replacing broken
`chunk-manifest-webpack-plugin` (closes #55)

## Webpack
* Adds `src` to modules path, to avoid `src/` prefixes at the start of
userland imports (closes #69)
* Fixes stats configuration to work with the latest Webpack versions
* Adds CORS config to webpack_dev_server, to enable LAN-wide browser
hot-code reloading (closes #99)
* Removes leading `/` in asset output, to allow defining a `<base>` tag
in userland via React Helmet (closes #102)

## ESLint
* Refactors rules, to be grouped by plugin
* Adds `jsx-a11y/anchor-is-valid` rule to avoid 'href' on React Router
`<Link>` attributes
* Adds `function-paren-newline` rule to enforce consistent parenthesis
* Adds `object-curly-newline` rule to allow one-line / multi-line
object definitions
* Fixes various kit and src files to conform to new rules

## React
* Bumps to React v16 - officially out of RC!

## Config
* Adds `.disableKoaHelmet()` for disabling
[koa-helmet](https://www.npmjs.com/package/koa-helmet) on the server
(closes #79)
* Adds `.setKoaHelmetOptions()` for passing options to Koa Helmet
* Sets `.koaHelmetOptions` and `.bodyParserOptions` to null by default

## App
* Disables SSL by default

## Server
* Removes leading `/` in bundled assets (along with Webpack) to allow
for a `<base>` tag to define the load path

## Testing (Jest)
* Fixes Jest testing to be compatible with Babel and React (closes #81,
merges #84 - thanks @Nate0001)

## General
* Fixes 'local' typo (merges #89 - thanks @kane-c)
* Fixes misspelled `browserslist` file (merges #95 - thanks @klarstrup)
* Adds idiomatic [React Helmet](https://github.com/nfl/react-helmet)
`<head>` tags, adds missing html/body attributes, base, link, style,
script and noscript, uses new `Helmet.renderStatic()` call (closes #101
& #94 - thanks @klarstrup)
* Adds default `<base href="/" />` tag, when none is defined with React
Helmet

## Docker
* Adds Alpine-based `Dockerfile` to reduce Docker image size from 943mb
-> 323mb (closes #98, merges #97 - thanks @kane-c)
* Adds `docker-compose.yml` for production (closes #98)
* Adds `docker-compose.dev.yml` for local development. Removes the
local `node_modules` to ensure Alpine-compatible Linux binaries are
being referenced by local code changes. Supports hot code reloading
in-browser and via SSR

## NPM
* Bumps packages:
"babel-eslint": "^8.0.1"
"copy-webpack-plugin": "^4.1.1",
"cross-env": "^5.1.0",
"eslint": "^4.9.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-plugin-compat": "^2.0.1",
"eslint-plugin-jsx-a11y": "^6.0.2",
"eslint-plugin-react": "^7.4.0",
"extract-text-webpack-plugin": "^3.0.1",
"file-loader": "^1.1.5",
"graphql-tag": "^2.5.0",
"iltorb": "^2.0.1"
"jest": "^21.2.1",
"less": "^3.0.0-alpha.3",
"postcss-loader": "^2.0.8",
"resolve-url-loader": "^2.1.1",
"rimraf": "^2.6.2",
"serve": "^6.2.0",
"style-loader": "^0.19.0",
"webpack": "^3.8.0",
"webpack-chunk-hash": "^0.5.0",
"webpack-config": "^7.5.0",
"webpack-dev-server": "^2.9.2",
"webpack-manifest-plugin": "^1.3.2",
"apollo-server-koa": "^1.1.7",
"graphql": "^0.11.7",
"koa-send": "^4.1.1",
"prop-types": "^15.6.0",
"react": "^16.0.0",
"react-apollo": "^1.4.16",
"react-dom": "^16.0.0",
"react-hot-loader": "^3.1.1"
@caedmon
Copy link
Contributor

caedmon commented Oct 28, 2017

I added #112 to fix one problem I found with this config. Another problem I'm seeing is with babel config where in some cases it throws on destructuring assignment. I can silence that by changing the jest.transform.js to look like this:

presets: [
  'react',
  ['env']
],

However, I'm not terribly familiar with babel config and not sure if that could introduce other problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

how to configure with jest
2 participants