test: add integration test

This commit is contained in:
Khaled Garbaya
2017-10-18 15:29:18 +02:00
committed by Benedikt Rötsch
parent 703a5e4d3a
commit d7654bb9bf
4 changed files with 48 additions and 3 deletions

2
app.js
View File

@@ -34,7 +34,7 @@ app.use(breadcrumb())
// Pass our application state and custom helpers to all our templates // Pass our application state and custom helpers to all our templates
app.use(async function (req, res, next) { app.use(async function (req, res, next) {
// Inject ucstom helpers // Inject custom helpers
res.locals.helpers = helpers res.locals.helpers = helpers
// Express query string // Express query string

View File

@@ -6,7 +6,9 @@
"start:watch": "nodemon ./bin/www --ignore public/", "start:watch": "nodemon ./bin/www --ignore public/",
"start": "node ./bin/www", "start": "node ./bin/www",
"lint": "eslint ./app.js routes", "lint": "eslint ./app.js routes",
"format": "eslint --fix . bin --ignore public node_modules" "format": "eslint --fix . bin --ignore public node_modules",
"test:integration": "jest test/integration",
"test:integration:watch": "jest test/integration --watch"
}, },
"engines": { "engines": {
"node": ">=8.4.0" "node": ">=8.4.0"
@@ -30,7 +32,10 @@
"eslint-config-standard": "^6.2.1", "eslint-config-standard": "^6.2.1",
"eslint-plugin-promise": "^3.4.2", "eslint-plugin-promise": "^3.4.2",
"eslint-plugin-standard": "^2.0.1", "eslint-plugin-standard": "^2.0.1",
"jest": "^21.2.1",
"nodemon": "^1.12.1", "nodemon": "^1.12.1",
"pug-lint": "^2.5.0" "pug-lint": "^2.5.0",
"superagent": "^3.6.3",
"supertest": "^3.0.0"
} }
} }

View File

@@ -0,0 +1,31 @@
/* global describe, test, expect */
const app = require('../../app')
const request = require('supertest')
describe('courses', () => {
test('it should render a list of courses', () => {
return request(app).get('/courses')
.expect(200)
.then((response) => {
expect(response.text.match(/<h1>All Courses /)).toBeTruthy()
})
})
test('it should render a course', () => {
return request(app).get('/courses/headless-content-management-using-contentful')
.expect(200)
.then((response) => {
expect(response.text.match(/class="course__title"/)).toBeTruthy()
})
})
test('it should return 404 when a course does not exist', () => {
return request(app).get('/courses/dont-exist').expect(404)
})
test('it should render a lesson', () => {
return request(app).get('/courses/headless-content-management-using-contentful/lessons/content-from-your-idea-to-any-display')
.expect(200)
.then((response) => {
expect(response.text.match(/class="lesson__title"/)).toBeTruthy()
})
})
})

View File

@@ -0,0 +1,9 @@
/* global describe, test */
const app = require('../../app')
const request = require('supertest')
describe('Home page', () => {
test('it should render the landing page', () => {
return request(app).get('/').expect(200)
})
})