UNPKG

3.7 kBJavaScriptView Raw
1var describe = require('Jody').describe,
2 Model = require('../lib/index'),
3 assert = require('assert');
4
5describe("Defining a model").
6 beforeAll(function (done) {
7 done();
8 }).
9 beforeEach(function (done) {
10 Model.remove_models();
11 done();
12 }).
13 it("Should contain specified schema for model after define", function (async) {
14 var User = Model.define('User',{name:String});
15
16 User.schema.name.type.should().beEqual(String);
17 }).
18 it("Should contain specified schema for model after load", function (async) {
19 var User = Model.define('User',{name:String});
20 User = Model('User');
21
22 User.schema.name.type.should().beEqual(String);
23 }).
24 it("Should be seperate models", function (async) {
25 var User = Model.define('User',{name:String});
26 var Post = Model.define('Post',{title:String});
27
28 var user = User.create({name:"garren"});
29 var post = Post.create({title:"hello"});
30
31 user.should().notBeEqual(post);
32 User.should().notBeEqual(Post);
33 User.schema.should().notBeEqual(Post.schema);
34 });
35
36describe('Create Model').
37 beforeEach(function (done) {
38 Model.remove_models();
39 done();
40 }).
41 it("should be created with supplied parameters", function() {
42 Model.define('User', {
43 name: String,
44 });
45 var user = Model('User').create({name: "Barry"});
46
47 user.name.should().beEqual("Barry");
48
49 }).
50 it("Should create basic model given basic details", function () {
51 var user = Model.define('User', {
52 id: String,
53 name: String,
54 surname: String,
55 });
56
57 var raw_user = {
58 id: "garren-smith",
59 name: "Garren",
60 surname: "Smith"
61 };
62
63 var created_user = Model('User').create(raw_user);
64
65 created_user.name.should().beEqual('Garren');
66 created_user.surname.should().beEqual('Smith');
67
68 }).
69 it("Should Supply defaults for unsupplied values", function () {
70 var user = Model.define('User', {
71 name: String,
72 surname: String,
73 age: {type: String, default:"3"}
74 });
75
76 var raw_user = {
77 name: "Garren",
78 surname: "Smith"
79 };
80
81 var created_user = Model('User').create(raw_user);
82
83 created_user.name.should().beEqual('Garren');
84 created_user.surname.should().beEqual('Smith');
85 created_user.age.should().beEqual('3');
86
87 }).
88 it("Should create new model object with supplied values", function() {
89 Model.define('User', {
90 name: String,
91 surname: String,
92 age: String
93 });
94
95 var user = Model('User').create({name:"Kurt",surname: "Cobain", age: 31});
96
97 user.name.should().beEqual("Kurt");
98 user.surname.should().beEqual("Cobain");
99 user.age.should().beEqual(31);
100
101 }).
102 it("Should contain undefined propety if no default defined", function () {
103 var user = Model.define('User', {
104 name: String,
105 surname: String,
106 age: String
107 });
108
109 var raw_user = {
110 name: "Garren",
111 surname: "Smith"
112 };
113
114 var created_user = Model('User').create(raw_user);
115
116 created_user.name.should().beEqual('Garren');
117 created_user.surname.should().beEqual('Smith');
118 assert.equal(created_user.age, undefined);
119
120 }).
121 it("Should handle booleans correctly", function() {
122 Model.define('CareBear', {
123 name: String,
124 happy: {type: Boolean, default:true}
125 });
126
127 var bear1 = Model('CareBear').create({
128 name: "Bear1",
129 happy: false
130 });
131
132 bear1.happy.should().beFalse();
133
134 var bear2 = Model('CareBear').create({
135 name: "Bear2",
136 happy: true
137 });
138
139 bear2.happy.should().beTrue();
140
141 var bear3 = Model('CareBear').create({
142 name: "Bear1",
143 });
144
145 bear3.happy.should().beTrue();
146 });