Skip to content

Commit

Permalink
Add integration tests, and update .gitignore
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Newman authored and Alex Newman committed Apr 3, 2017
1 parent 34e5c08 commit 376f325
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 1 deletion.
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -11,3 +11,5 @@ npm-debug.log
# coverage
.nyc_output
coverage

.DS_Store
1 change: 0 additions & 1 deletion readme.md
Expand Up @@ -641,7 +641,6 @@ module.exports = {
}
```


### Customizing webpack config

In order to extend our usage of `webpack`, you can define a function that extends its config via `next.config.js`.
Expand Down
7 changes: 7 additions & 0 deletions test/integration/distDir/next.config.js
@@ -0,0 +1,7 @@
module.exports = {
onDemandEntries: {
// Make sure entries are not getting disposed.
maxInactiveAge: 1000 * 60 * 60
},
distDir: 'dist'
}
3 changes: 3 additions & 0 deletions test/integration/distDir/pages/index.js
@@ -0,0 +1,3 @@
export default () => (
<div>Hello World</div>
)
49 changes: 49 additions & 0 deletions test/integration/distDir/test/index.test.js
@@ -0,0 +1,49 @@
/* global jasmine, describe, it, expect, beforeAll, afterAll */

import { join } from 'path'
import { existsSync } from 'fs'
import {
nextServer,
nextBuild,
startApp,
stopApp,
renderViaHTTP
} from 'next-test-utils'

const appDir = join(__dirname, '../')
let appPort
let server
let app
jasmine.DEFAULT_TIMEOUT_INTERVAL = 40000

describe('Production Usage', () => {
beforeAll(async () => {
await nextBuild(appDir)
app = nextServer({
dir: join(__dirname, '../'),
dev: false,
quiet: true
})

server = await startApp(app)
appPort = server.address().port
})
afterAll(() => stopApp(server))

describe('With basic usage', () => {
it('should render the page', async () => {
const html = await renderViaHTTP(appPort, '/')
expect(html).toMatch(/Hello World/)
})
})

describe('File locations', () => {
it('should build the app within the given `dist` directory', () => {
expect(existsSync(join(__dirname, '/../dist/app.js'))).toBeTruthy()
})

it('should not build the app within the default `.next` directory', () => {
expect(existsSync(join(__dirname, '/../.next/app.js'))).toBeFalsy()
})
})
})

0 comments on commit 376f325

Please sign in to comment.