forked from cloudhead/resourcer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cache-test.js
61 lines (57 loc) · 2.41 KB
/
cache-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
require.paths.unshift(require('path').join(__dirname, '..', 'lib'));
var path = require('path'),
sys = require('sys'),
events = require('events'),
assert = require('assert'),
vows = require('vows'),
resourcer = require('resourcer');
var connection = new(resourcer.engines.memory.Connection)('cache-test').load([
{ resource: 'Article', title: 'The Great Gatsby', published: true, author: 'fitzgerald'},
{ resource: 'Article', title: 'Finding vim', published: false, author: 'cloudhead' },
{ resource: 'Article', title: 'Channeling force', published: true, author: 'yoda' },
{ resource: 'Body', name: 'fitzgerald' }
]);
var Article = resourcer.defineResource('Article', function () {
this.property('title');
this.property('published', Boolean);
}).register().connect('memory://cache-test');
vows.describe('resourcer/resource/cache').addVows({
"When creating an instance, and saving it": {
topic: function () {
this.article = new(Article)({ _id: 43, title: "The Last Article", published: true });
this.article.save(this.callback);
},
"and then loading it back up with `get()`": {
topic: function () {
Article.get(43, this.callback);
},
"It should return the previous instance": function (res) {
assert.strictEqual (res._properties, this.article._properties);
}
},
"and then loading it back up with `find()`": {
topic: function () {
Article.find({ title: "The Last Article" }, this.callback);
},
"It should return the previous instance": function (res) {
assert.strictEqual (res[0]._properties, this.article._properties);
}
}
}
}).addVows({
"When creating an instance, and saving it": {
topic: function () {
this.article = new(Article)({ _id: 43, title: "The Last Article", published: true });
this.article.save(this.callback);
},
"and then clearing the cache and loading it back up with `get()`": {
topic: function () {
resourcer.caches.clear();
Article.get(43, this.callback);
},
"It should return a new instance": function (res) {
assert.notStrictEqual (res, this.article);
}
}
}
}).export(module);