1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00

add mocha example (#5182)

Adding an example of testing with Mocha

#4767
This commit is contained in:
Stephen Sauceda 2018-09-16 18:12:39 -04:00 committed by Tim Neutkens
parent 35c2103e57
commit e2d331dbcc
7 changed files with 116 additions and 0 deletions

View file

@ -0,0 +1,13 @@
{
"env": {
"development": {
"presets": ["next/babel"]
},
"production": {
"presets": ["next/babel"]
},
"test": {
"presets": [["next/babel", { "preset-env": { "modules": "commonjs" } }]]
}
}
}

View file

@ -0,0 +1,50 @@
[![Deploy to now](https://deploy.now.sh/static/button.svg)](https://deploy.now.sh/?repo=https://github.com/zeit/next.js/tree/master/examples/with-mocha)
# Example app with Mocha tests
## How to use
### Using `create-next-app`
Execute [`create-next-app`](https://github.com/segmentio/create-next-app) with [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) or [npx](https://github.com/zkat/npx#readme) to bootstrap the example:
```bash
npx create-next-app --example with-mocha with-mocha-app
# or
yarn create next-app --example with-mocha with-mocha-app
```
### Download manually
Download the example:
```bash
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-mocha
cd with-mocha
```
Install it and run:
```bash
npm install
npm run dev
# or
yarn
yarn dev
```
## Run Mocha tests
```bash
npm run test
# or
yarn test
```
## The idea behind the example
This example features:
* An app with Mocha tests
> A very important part of this example is the `.babelrc` file which configures the `test` environment to use `babel-preset-env` and configures it to transpile modules to `commonjs`). [Learn more](https://github.com/zeit/next.js/issues/2895).

View file

@ -0,0 +1,4 @@
import Enzyme from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
Enzyme.configure({ adapter: new Adapter() })

View file

@ -0,0 +1,23 @@
{
"name": "with-mocha",
"version": "1.0.0",
"scripts": {
"test": "NODE_ENV=test mocha",
"dev": "next",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "latest",
"react": "^16.5.0",
"react-dom": "^16.5.0"
},
"devDependencies": {
"@babel/core": "^7.0.1",
"@babel/register": "^7.0.0",
"enzyme": "^3.6.0",
"enzyme-adapter-react-16": "^1.5.0",
"expect.js": "^0.3.1",
"mocha": "^5.2.0"
}
}

View file

@ -0,0 +1,10 @@
export default () => (
<div>
<style jsx>{`
p {
color: red;
}
`}</style>
<p>Hello World!</p>
</div>
)

View file

@ -0,0 +1,14 @@
/* global describe, it */
import { shallow } from 'enzyme'
import React from 'react'
import expect from 'expect.js'
import App from '../pages/index.js'
describe('With Enzyme', () => {
it('App shows "Hello world!"', () => {
const app = shallow(<App />)
expect(app.find('p').text()).to.equal('Hello World!')
})
})

View file

@ -0,0 +1,2 @@
--require @babel/register
--file mocha.setup.js