mirror of
https://github.com/typicode/json-server.git
synced 2025-07-28 20:52:08 +08:00
Add --delay option
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
"dependencies": {
|
||||
"body-parser": "^1.8.1",
|
||||
"chalk": "^0.4.0",
|
||||
"connect-pause": "^0.1.0",
|
||||
"cors": "^2.3.0",
|
||||
"errorhandler": "^1.2.0",
|
||||
"express": "^4.9.5",
|
||||
|
@ -31,6 +31,10 @@ module.exports = function () {
|
||||
id: {
|
||||
description: 'Set database id property (e.g. _id)',
|
||||
default: 'id'
|
||||
},
|
||||
delay: {
|
||||
alias: 'd',
|
||||
description: 'Add delay to responses (ms)'
|
||||
}
|
||||
})
|
||||
.boolean('watch')
|
||||
|
@ -3,6 +3,7 @@ var chalk = require('chalk')
|
||||
var is = require('./utils/is')
|
||||
var load = require('./utils/load')
|
||||
var watch = require('./watch')
|
||||
var pause = require('connect-pause')
|
||||
var jsonServer = require('../server')
|
||||
|
||||
function prettyPrint (argv, object, rules) {
|
||||
@ -30,7 +31,7 @@ function prettyPrint (argv, object, rules) {
|
||||
console.log()
|
||||
}
|
||||
|
||||
function createServer (source, object, routes) {
|
||||
function createServer (source, object, routes, delay) {
|
||||
var server = jsonServer.create()
|
||||
|
||||
var router = jsonServer.router(
|
||||
@ -46,6 +47,10 @@ function createServer (source, object, routes) {
|
||||
server.use(rewriter)
|
||||
}
|
||||
|
||||
if (delay) {
|
||||
server.use(pause(delay))
|
||||
}
|
||||
|
||||
server.use(router)
|
||||
|
||||
return server
|
||||
@ -77,7 +82,8 @@ module.exports = function (argv) {
|
||||
console.log(chalk.gray(' Done'))
|
||||
|
||||
// Create server and listen
|
||||
server = createServer(source, data, routes).listen(argv.port, argv.host)
|
||||
server = createServer(source, data, routes, argv.delay)
|
||||
.listen(argv.port, argv.host)
|
||||
|
||||
// Display server informations
|
||||
prettyPrint(argv, data, routes)
|
||||
|
@ -91,6 +91,23 @@ describe('cli', function () {
|
||||
|
||||
})
|
||||
|
||||
describe('db.json -d 1000', function () {
|
||||
|
||||
beforeEach(function (done) {
|
||||
child = cli([dbFile, '-d', 1000])
|
||||
setTimeout(done, 1000)
|
||||
})
|
||||
|
||||
it('should delay response', function (done) {
|
||||
var start = new Date()
|
||||
request.get('/posts').expect(200, function (err) {
|
||||
var end = new Date()
|
||||
done(end - start > 1000 ? err : new Error('Request wasn\'t delayed'))
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
// FIXME test fails on OS X and maybe on Windows
|
||||
// But manually updating db.json works...
|
||||
if (os.platform() === 'linux') {
|
||||
|
Reference in New Issue
Block a user