Fix #510 thanks to @robinvenneman

This commit is contained in:
typicode
2017-04-12 21:14:48 +02:00
parent 6559219acd
commit dcae2885a0
3 changed files with 16 additions and 2 deletions

View File

@ -3,6 +3,7 @@
## [Unreleased]
* Drop Node 0.12 support
* Prevent `TypeError` when a filter is applied on a `null` value [#510](https://github.com/typicode/json-server/issues/510)
## [0.9.6][2016-03-08]

View File

@ -114,9 +114,12 @@ module.exports = (db, name) => {
const isRange = /_lte$/.test(key) || /_gte$/.test(key)
const isLike = /_like$/.test(key)
const path = key.replace(/(_lte|_gte|_ne|_like)$/, '')
// get item value based on path
// i.e post.title -> 'foo'
const elementValue = _.get(element, path)
if (elementValue === undefined) {
// Prevent toString() failing on undefined or null values
if (elementValue === undefined || elementValue === null) {
return
}

View File

@ -20,7 +20,7 @@ describe('Server', () => {
db.posts = [
{ id: 1, body: 'foo' },
{ id: 2, body: 'bar' }
{ id: 2, body: 'bar' },
]
db.tags = [
@ -163,6 +163,16 @@ describe('Server', () => {
.expect(db.comments)
.expect(200)
))
// https://github.com/typicode/json-server/issues/510
it.only('should not fail with null value', () => {
db.posts.push({ id: 99, body: null })
return request(server)
.get('/posts?body=foo')
.expect('Content-Type', /json/)
.expect([ db.posts[0] ])
.expect(200)
})
})
describe('GET /:resource?q=', () => {