UNPKG

3.76 kBJavaScriptView Raw
1var booksdb = new localdb('books', 'Array')
2var config = new localdb('config', 'Object')
3var User = new localdb({
4 name: 'User',
5 type: 'Array',
6 timestamp: true
7})
8
9test('localdb is a function', function () {
10 ok(typeof localdb == 'function')
11})
12
13test('add a book and return books', function () {
14 var books = initBooks()
15 ok(books instanceof Array)
16
17})
18
19test('inc and dec', function () {
20 ok(config.inc('count').get('count') === 1)
21 ok(config.dec('count').get('count') === 0)
22 ok(config.inc('count', 2).get('count') === 2)
23})
24
25test('remove a book and return books', function () {
26 var books = initBooks()
27 var updated = booksdb.remove('title', 'Diao').get()
28 ok(updated.length == books.length - 1)
29})
30
31test('find a book in books', function () {
32 initBooks()
33 var book = booksdb.findOne({title: 'Diao', author: 'SOX'})
34 ok(book.title === 'Diao' && book.author === 'SOX')
35})
36
37test('desending all books by index', function () {
38 initBooks()
39 var books = booksdb.find(null, {sort: -1})
40 ok(books[0].title === '大大泡泡堂')
41})
42
43test('update a book', function () {
44 initBooks()
45 var book = booksdb.findOne({title: 'Diao'})
46 book.title = 'Love'
47 booksdb.save(book)
48 book = booksdb.findOne({title: 'Love'})
49 ok(book.title === 'Love')
50})
51
52test('update books', function () {
53 initBooks()
54 var books = booksdb.find()
55 books.forEach(function (b) {
56 b.what = 'ever'
57 booksdb.save(b)
58 })
59 var result = true
60 booksdb.find().forEach(function (b) {
61 if (b.what !== 'ever') {
62 result = false
63 return
64 }
65 })
66 ok(result)
67})
68
69test('extend and populate', function () {
70
71 var user_id = initUsers()[0]._id
72 var Music = new localdb('music', 'Array', true)
73 Music.destroy()
74 var user = User.extend(user_id)
75 ok(user.__type)
76
77 var music = {
78 name: 'searet base',
79 singer: 'zone',
80 user: user
81 }
82 var m = Music.add(music).add(music).populate('user').find()
83 console.log(m)
84})
85
86test('remove a key', function () {
87 var site = config.set('date', Date.now()).set('owner', 'God').get()
88 var existed = (typeof site.owner === 'string') ? true : false
89 site = config.remove('owner').get()
90 var existing = (typeof site.owner === 'string') ? true : false
91 ok(existed && !existing)
92})
93
94test('update an Object db', function () {
95 var site = config.set('sitename', 'Google').get()
96 ok(site.sitename === 'Google')
97})
98
99test('add a user with auto timestamp', function () {
100 initUsers()
101 var user = User.findOne({username: 'kevin'})
102 ok(user.createdAt)
103})
104
105test('skip and limit when finding user', function () {
106 initUsers()
107 var user = User.find(null, {skip: 1, limit: 1})
108 ok(user[0].username === 'joe')
109})
110
111test('get some key/index in database', function () {
112 var sitename = config.set('sitename', 'Google').get('sitename')
113 ok(sitename === 'Google')
114
115 initUsers()
116 var username = User.get(1).username
117 ok(username === 'joe')
118})
119
120test('override with Array', function () {
121 var user = User.override([{
122 username: 'foo'
123 }, {
124 username: 'bar'
125 }], true).findOne()
126 ok(user._id && user.createdAt && user.updatedAt)
127})
128
129test('destroy db and fetch unexisting element', function () {
130 var db = booksdb.destroy().get()
131 ok(booksdb.get(0) === null)
132 ok(db === null)
133})
134
135function initBooks () {
136 booksdb.destroy()
137 return booksdb.add({
138 title: 'Gone with wind',
139 author: 'Kinpika',
140 year: 2013
141 }).add({
142 title: 'Diao',
143 author: 'SOX',
144 year: 2013
145 }).add({
146 title: '大大泡泡堂',
147 author: 'SOX',
148 year: 2013
149 }).get()
150}
151
152function initUsers () {
153 User.destroy()
154 User.add({
155 username: 'kevin',
156 birth: '1994'
157 }).add({
158 username: 'joe',
159 age: 10
160 }).add({
161 username: 'daniel',
162 age: 19,
163 weight: 50
164 })
165
166 return User.get()
167}