build.test.js
2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
'use strict';
/* jshint -W030 */
var chai = require('chai')
, expect = chai.expect
, Support = require(__dirname + '/../support')
, DataTypes = require(__dirname + '/../../../lib/data-types')
, current = Support.sequelize;
describe(Support.getTestDialectTeaser('Instance'), function() {
describe('build', function () {
it('should popuplate NOW default values', function () {
var Model = current.define('Model', {
created_time: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: DataTypes.NOW
},
updated_time: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: DataTypes.NOW
},
ip: {
type: DataTypes.STRING,
validate: {
isIP: true
}
},
ip2: {
type: DataTypes.STRING,
validate: {
isIP: {
msg: 'test'
}
}
}
}, {
timestamp: false
})
, instance;
instance = Model.build({ip: '127.0.0.1', ip2: '0.0.0.0'});
expect(instance.get('created_time')).to.be.ok;
expect(instance.get('created_time')).to.be.an.instanceof(Date);
expect(instance.get('updated_time')).to.be.ok;
expect(instance.get('updated_time')).to.be.an.instanceof(Date);
return instance.validate().then(function(err) {
expect(err).to.be.equal(null);
});
});
it('should popuplate explicitely undefined UUID primary keys', function () {
var Model = current.define('Model', {
id: {
type: DataTypes.UUID,
primaryKey: true,
allowNull: false,
defaultValue: DataTypes.UUIDV4
}
})
, instance;
instance = Model.build({
id: undefined
});
expect(instance.get('id')).not.to.be.undefined;
expect(instance.get('id')).to.be.ok;
});
it('should populate undefined columns with default value', function () {
var Model = current.define('Model', {
number1: {
type: DataTypes.INTEGER,
defaultValue: 1
},
number2: {
type: DataTypes.INTEGER,
defaultValue: 2
}
})
, instance;
instance = Model.build({
number1: undefined
});
expect(instance.get('number1')).not.to.be.undefined;
expect(instance.get('number1')).to.equal(1);
expect(instance.get('number2')).not.to.be.undefined;
expect(instance.get('number2')).to.equal(2);
});
});
});