1 | var describe = require('Jody').describe,
|
2 | Model = require('../lib/index');
|
3 |
|
4 | describe("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 |
|
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 | });
|