UNPKG

3.32 kBJavaScriptView Raw
1var assert = require('assert'),
2 describe = require('Jody').describe,
3 cradle = require('cradle'),
4 Model = require('../lib/index'),
5 db = require('./spec_helper').db;
6
7describe("Saving Item").
8beforeAll(function (done) {
9
10 Model.define('User', {
11 // id: String,
12 name: String,
13 surname: String,
14 });
15
16 done();
17
18 Model.load();
19}).
20it("Should save item into db", function (async) {
21
22 var user = Model('User').create({
23 id : "EddieVedder",
24 name : "Eddie",
25 surname : "Vedder"
26 });
27
28
29 user.save(async(function (err, result) {
30 if (err) throw err;
31
32 db.get(user.id,async(function (err, loaded_user) {
33 loaded_user.name.should().beEqual(user.name);
34 loaded_user.surname.should().beEqual(user.surname);
35 }));
36
37 }));
38}).
39it("Should create id for model if not defined", function (async) {
40 Model.define('User_no_id', {
41 id: String,
42 name: String,
43 surname: String,
44 });
45
46 var user = Model('User_no_id').create({name: "John", surname: "Rambo"});
47
48 user.save(async(function (err, user_loaded) {
49 assert.notEqual( user_loaded.id, undefined);
50 user_loaded.name.should().beEqual(user.name);
51 }));
52
53
54}).
55it("Should have a model type", function (async) {
56 var user = Model('User').create({
57 id : "Jimmy",
58 name : "Jimmy",
59 surname : "Page"
60 });
61
62 user.model_type.should().beEqual("User");
63
64 user.save(async(function (err, result) {
65 if (err) {
66 console.dir(err);
67 throw err;
68 }
69
70 db.get(user.id,async(function (err, loaded_user) {
71 loaded_user.model_type.should().beEqual("User");
72
73 }));
74
75 }));
76
77}).
78it("Should have a created date", function (async) {
79
80 var user = Model('User').create({
81 id : "Jimi",
82 name : "Jimi",
83 surname : "Hendrix"
84 });
85
86 user.save(async(function (err, result) {
87 if (err) throw err;
88
89 db.get(user.id,async(function (err, loaded_user) {
90 var dateCreated = new Date(loaded_user.dateCreated);
91 var current_time = new Date();
92 dateCreated.getMinutes().should().beEqual(current_time.getMinutes());
93 dateCreated.getHours().should().beEqual(current_time.getHours());
94 }));
95
96 }));
97
98}).
99it("Should return a json version of model", function (async) {
100 var user = Model('User').create({
101 id : "Jimi",
102 name : "Jimi",
103 surname : "Hendrix"
104 });
105
106 var attr = {
107 id : "Jimi",
108 name : "Jimi",
109 surname : "Hendrix"
110 };
111
112 var user_json = user.toJSON()
113 user_json.name.should().beEqual(attr.name);
114 user_json.surname.should().beEqual(attr.surname);
115});/*.
116it("Should have an update date that gets updated with each save", function (async) {
117 var user = Model.create('User');
118 user.id = "Jimmy";
119 user.name = "Jimmy";
120 user.surname = "Page"
121 user.save(async(function (err, result) {
122 if (err) throw err;
123
124 db.get(user.id,async(function (err, loaded_user) {
125 var first_date_modified = new Date(loaded_user.lastUpdated);
126
127 setTimeout(async(function() {
128
129 user.save(async(function (err, result) {
130 db.get(user.id, async(function (err, loaded_user_again) {
131 var second_date_modified = new Date(loaded_user_again.lastUpdated);
132 second_date_modified.should().notBeEqual(first_date_modified);
133 }));
134 }));
135
136 }), 1000);
137 }));
138
139 }));
140
141
142});*/
143