Skip to content
This repository was archived by the owner on Nov 10, 2023. It is now read-only.

Commit 047e32d

Browse files
authored
fix(validate): default values should be added to the instance (#21)
* fix(validate): default values should be filled * chore(package): version bump
1 parent 4d38eed commit 047e32d

File tree

4 files changed

+39
-7
lines changed

4 files changed

+39
-7
lines changed

lib/model/util/validateSchema.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ const RequelizeError = require('../../error')
1313
function validateSchema (Model, instance) {
1414
return new Promise((resolve, reject) => {
1515
debug(`validating ${JSON.stringify(instance._data)}`)
16-
Joi.validate(instance._data, Model._schema, (err) => {
16+
Joi.validate(instance._data, Model._schema, (err, values) => {
1717
if (err) {
1818
return reject(new RequelizeError('ValidationError', err.details))
1919
}
2020

21+
Object.assign(instance._data, values)
22+
2123
resolve()
2224
})
2325
})

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "requelize",
3-
"version": "0.8.0",
3+
"version": "0.8.1",
44
"description": "RethinkDB ORM",
55
"main": "index.js",
66
"repository": "https://github.com/buckless/requelize.git",

test/test.invalidSchema.js

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,41 @@
11
const Joi = require('joi')
22
const { test, requelize, dropDb } = require('./utils')
33

4+
test('instance - default values', (t) => {
5+
t.plan(1)
6+
7+
let Foo
8+
let foo
9+
10+
dropDb()
11+
.then(() => {
12+
Foo = requelize.model('foo', {
13+
name: Joi.string().default('bar')
14+
})
15+
16+
return requelize.sync()
17+
})
18+
.then(() => {
19+
foo = new Foo()
20+
21+
return foo.save()
22+
})
23+
.then((res) => {
24+
t.equal('bar', res.name, 'default value')
25+
})
26+
.catch((err) => {
27+
t.fail(err)
28+
})
29+
.then(() => {
30+
t.end()
31+
})
32+
})
33+
434
test('instance - invalid schema', (t) => {
535
t.plan(1)
636

737
let Foo
8-
let inst
38+
let foo
939

1040
dropDb()
1141
.then(() => {
@@ -20,11 +50,11 @@ test('instance - invalid schema', (t) => {
2050
return requelize.sync()
2151
})
2252
.then(() => {
23-
inst = new Foo()
53+
foo = new Foo()
2454

25-
inst.name = 2
55+
foo.name = 2
2656

27-
return inst.save()
57+
return foo.save()
2858
})
2959
.catch((err) => {
3060
t.equal('RequelizeError', err.name, 'joi validation error')

test/test.parse.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ test('no parsing', (t) => {
7979
.reduce((a, b) => a.add(b))
8080
.run()
8181
.then((res) => {
82-
t.equal(2, res)
82+
t.equal(2, res, 'map reduce working')
8383
})
8484
})
8585
.catch((err) => {

0 commit comments

Comments
 (0)