UNPKG

1.78 kBJavaScriptView Raw
1var describe = require('Jody').describe,
2 Model = require('../lib/index');
3
4describe("Before Create Callback").
5 beforeAll(function (done) {
6 Model.define('Guitar',{name: String,
7 rating: Number,
8 year: Date
9 });
10
11 done();
12
13 }).
14 it("Should be called on creation of new model object", function (async) {
15 var Guitar = Model('Guitar');
16
17 Guitar.beforeCreate(function (guitar) {
18 guitar.name.should().beEqual("Fender Telecaster");
19 guitar.name = "Gibson Custom";
20 });
21
22 var create_guitar = Guitar.create({name: "Fender Telecaster", rating: 10, year: new Date(1963,01,01)});
23
24 create_guitar.name.should().beEqual("Gibson Custom");
25
26 }).
27 it("Should only get called for defined model", function () {
28 var Piano = Model.define('Piano',{name: String, year: Date});
29
30 var Guitar = Model('Guitar');
31
32
33 Guitar.beforeCreate(function (guitar) {
34 guitar.name = "Gibson Custom";
35 });
36
37 var piano = Piano.create({name: "Yamaha", date: Date.now()});
38
39 piano.name.should().beEqual("Yamaha");
40
41 }).
42 it("Should only be called once when object created", function (async) {
43 var call_count = 0;
44 var Guitar = Model('Guitar');
45
46 Guitar.beforeCreate(function (guitar) {
47 //guitar.name = "Gibson Custom";
48 call_count += 1;
49 });
50
51 var fender = Guitar.create({name: "Fender Stratocaster", rating: 5, year: new Date(1990,04,05)});
52
53 call_count.should().beEqual(1);
54
55 fender.save(async(function (err, res) {
56 call_count.should().beEqual(1);
57
58 Guitar.find(res.id, async(function (err, loaded_fender) {
59 call_count.should().beEqual(1);
60 }));
61 }));
62
63
64
65 });