UNPKG

2.68 kBJavaScriptView Raw
1var assert = require('assert'),
2 describe = require('Jody').describe,
3 Model = require('../lib/index');
4
5
6describe("Model Validations", function (spec) {
7
8 spec.beforeAll(function (done) {
9 var Mailer = Model.define("Mailer", {
10 name: String,
11 email: String
12 });
13
14 Model.define("MailerZ", {
15 name: String,
16 email: String
17 });
18
19
20 Model.load(function () {});
21 done();
22 });
23
24 spec.it("Should send error to callback length of email property to small", function (async) {
25 var Mailer = Model('Mailer');
26
27 Mailer.validate(function (check, item) {
28 check(item.email).isEmail();
29 check(item.name).len(0,30);
30 });
31
32 var mail1 = Mailer.create({name: "Garren", email: "Boom"});
33
34 mail1.save(function (err, saved) {
35
36 err[0].should().beEqual("Invalid email");
37 assert.equal(saved, undefined);
38 });
39
40 });
41
42 spec.it("Should not save model to db if validation fails", function (async) {
43 var Mailer = Model('Mailer');
44
45 Mailer.validate(function (check, item) {
46 check(item.email).isEmail();
47 check(item.name).len(0,30);
48 });
49
50 var mail1 = Mailer.create({name: "Harris", email: "Boom"});
51
52 mail1.save(async(function (err, saved) {
53 Mailer.where("name", "Harris", async(function (err, mailers) {
54 err.error.should().beEqual("not_found");
55
56 }));
57 }));
58 });
59
60 spec.it("should still save if not validation method defined", function (async) {
61 var MailerZ = Model("MailerZ");
62
63 var mailZ = MailerZ.create({name: "Magnus", email: "Boom"});
64 console.log("validation spec called");
65
66 mailZ.save(async(function (err, saved) {
67 if (err) throw err;
68 MailerZ.where("name", "Magnus", async(function (err, mailers) {
69 mailers.length.should().beEqual(1);
70 }));
71 }));
72 });
73
74 spec.it("Should return list of validation errors", function (async) {
75
76 var Mailer = Model('Mailer');
77 Mailer.validate(function (check, item) {
78 check(item.name).len(10,30);
79 check(item.email).isEmail();
80
81 });
82
83 var mail1 = Mailer.create({name: "Harris", email: "Boom"});
84 mail1.save(function (err, item) {
85
86 err.length.should().beEqual(2);
87 });
88
89 });
90
91 spec.it("Should return an array of error if exception occurs in validation", function () {
92 var Mailer = Model('Mailer');
93 Mailer.validate(function (check, item) {
94 throw "Weird error here"
95 });
96
97 var mail1 = Mailer.create({name: "Harris", email: "Boom"});
98 mail1.save(function (err, item) {
99
100 err.length.should().beEqual(1);
101 err[0].should().beEqual("Weird error here");
102 });
103
104 });
105
106});
107
108