Skip to content
This repository was archived by the owner on Feb 15, 2023. It is now read-only.

Commit 2cabadf

Browse files
committed
Test coverage++
1 parent 77aa182 commit 2cabadf

File tree

7 files changed

+233
-29
lines changed

7 files changed

+233
-29
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"glob": "~7.1.1",
4343
"jscs": "~3.0.7",
4444
"mocha": "~3.1.0",
45+
"mock-fs": "~3.11.0",
4546
"pmock": "~0.2.3",
4647
"rewire": "~2.5.2",
4748
"should": "~4.0.0"

src/backends/mongoose.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ Backend.prototype.serializeValue = function (value) {
1919
Backend.prototype.collectReferences = function (activities) {
2020
var modelReferences = {};
2121
this.iterActivityFieldsWithReferences(activities, function (args) {
22-
2322
if (modelReferences[args.modelRef]) {
2423
modelReferences[args.modelRef].push(args.instanceRef);
2524
} else {

src/backends/waterline.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ function Backend() {}
1313
util.inherits(Backend, baseBackend);
1414

1515
Backend.prototype.serializeValue = function (value) {
16-
throw 'Cant serialize for waterline since model.identity is not accessible from the instance';
17-
if (typeof (value._id) != 'undefined') {
18-
return value.constructor.modelName + ':' + value.id;
19-
} else {
20-
return value;
21-
}
16+
throw new Error('Cant serialize for waterline since model.identity is not accessible from the instance');
17+
// if (typeof (value._id) != 'undefined') {
18+
// return value.constructor.modelName + ':' + value.id;
19+
// } else {
20+
// return value;
21+
// }
2222
};
2323

2424
Backend.prototype.collectReferences = function (activities) {
@@ -65,16 +65,16 @@ Backend.prototype.getIdFromRef = function (ref) {
6565
return ref.split(':')[1];
6666
};
6767

68-
function getReferencePaths(paths) {
69-
var names = [];
70-
for (var k in paths) {
71-
if (paths[k].instance === 'ObjectID' && k !== 'id') {
72-
names.push(paths[k].path);
73-
}
74-
}
68+
// function getReferencePaths(paths) {
69+
// var names = [];
70+
// for (var k in paths) {
71+
// if (paths[k].instance === 'ObjectID' && k !== 'id') {
72+
// names.push(paths[k].path);
73+
// }
74+
// }
7575

76-
return names.join(' ');
77-
}
76+
// return names.join(' ');
77+
// }
7878

7979
/*
8080

src/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ function _loadFile(path) {
66

77
var settings = {};
88

9-
config = JSON.parse(JSON.stringify(require(path).config));
9+
var config = JSON.parse(JSON.stringify(require(path).config));
1010

1111
Object.keys(config).forEach(function (key) {
1212
settings[key] = config[key];

test/backends/base_test.js

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
var Backend = require('../../src/backends/base')
2+
, expect = require('expect.js');
3+
4+
describe('Base Backend', function() {
5+
var backend;
6+
7+
beforeEach(function() {
8+
backend = new Backend;
9+
});
10+
11+
describe('#collectReferences', function() {
12+
it('(1) default', function() {
13+
var refs = backend.collectReferences([{
14+
actor: 'User:123456',
15+
object: 'Tweet:00001',
16+
other: 'something',
17+
}]);
18+
19+
expect(refs).to.eql({
20+
User: ['123456'],
21+
Tweet: ['00001'],
22+
});
23+
});
24+
25+
it('(2) origin field', function() {
26+
var refs = backend.collectReferences([{
27+
actor: 'User:123456',
28+
object: 'Tweet:00001',
29+
origin: 'Tweet:00002',
30+
}]);
31+
32+
expect(refs).to.eql({
33+
User: ['123456'],
34+
Tweet: ['00001'],
35+
});
36+
});
37+
38+
it('(3) multiple', function() {
39+
var refs = backend.collectReferences([{
40+
actor: 'User:123456',
41+
object: 'Tweet:00001',
42+
other: 'Tweet:00002',
43+
}]);
44+
45+
expect(refs).to.eql({
46+
User: ['123456'],
47+
Tweet: ['00001', '00002'],
48+
});
49+
});
50+
});
51+
52+
it('#serializeActivity', function() {
53+
expect(backend.serializeActivity).to.be.a(Function);
54+
55+
var activity = {
56+
actor: 'User:123456',
57+
object: 'Tweet:1',
58+
other: 'matthisk',
59+
};
60+
61+
backend.serializeActivity(activity);
62+
63+
expect(activity).to.eql({
64+
actor: 'User:123456',
65+
object: 'Tweet:1',
66+
other: 'matthisk',
67+
});
68+
});
69+
70+
it('#loadFromStorage', function() {
71+
expect(backend.loadFromStorage).to.be.a(Function);
72+
73+
backend.loadFromStorage();
74+
});
75+
76+
it('#getClassFromRef', function() {
77+
expect(backend.getClassFromRef).to.be.a(Function);
78+
79+
backend.getClassFromRef();
80+
});
81+
82+
it('#serializeValue', function() {
83+
expect(backend.serializeValue).to.be.a(Function);
84+
85+
var v = backend.serializeValue(1);
86+
87+
expect(v).to.be(1);
88+
});
89+
90+
});

test/backends/waterline_test.js

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
var Backend = require('../../src/backends/waterline').Backend
2+
, sinon = require('sinon')
3+
, extend = require('util')._extend
4+
, expect = require('expect.js');
5+
6+
describe('Waterline Backend', function() {
7+
var backend;
8+
9+
beforeEach(function() {
10+
backend = new Backend;
11+
});
12+
13+
it('#serializeValue', function() {
14+
expect(function() {
15+
backend.serializeValue('value');
16+
}).to.throwException();
17+
});
18+
19+
describe('#collectReferences', function() {
20+
it('(1) default', function() {
21+
var refs = backend.collectReferences([{
22+
actor: 'User:123456',
23+
object: 'Tweet:00001',
24+
other: 'something',
25+
}]);
26+
27+
expect(refs).to.eql({
28+
User: ['123456'],
29+
Tweet: ['00001'],
30+
});
31+
});
32+
33+
it('(2) origin field', function() {
34+
var refs = backend.collectReferences([{
35+
actor: 'User:123456',
36+
object: 'Tweet:00001',
37+
origin: 'Tweet:00002',
38+
}]);
39+
40+
expect(refs).to.eql({
41+
User: ['123456'],
42+
Tweet: ['00001'],
43+
});
44+
});
45+
46+
it('(3) multiple', function() {
47+
var refs = backend.collectReferences([{
48+
actor: 'User:123456',
49+
object: 'Tweet:00001',
50+
other: 'Tweet:00002',
51+
}]);
52+
53+
expect(refs).to.eql({
54+
User: ['123456'],
55+
Tweet: ['00001', '00002'],
56+
});
57+
});
58+
});
59+
60+
it('#getIdFromRef', function() {
61+
expect(backend.getIdFromRef).to.be.a(Function);
62+
63+
var ref = backend.getIdFromRef('User:1234');
64+
65+
expect(ref).to.be('1234');
66+
});
67+
68+
it('#getClassFromRef', function() {
69+
expect(backend.getClassFromRef).to.be.a(Function);
70+
71+
var mc = backend.getClassFromRef('user');
72+
73+
expect(mc).to.be(undefined);
74+
});
75+
76+
describe('#loadFromStorage', function() {
77+
78+
var modelClass = {
79+
find: function(ids) {
80+
expect(ids).to.eql({ id: [0,1,2] });
81+
82+
return {
83+
exec: function(cb) {
84+
cb(null, [{ id: 0 }, { id: 1 }, { id: 2 }]);
85+
}
86+
};
87+
}
88+
};
89+
90+
it('#loadFromStorage', function(done) {
91+
expect(backend.loadFromStorage).to.be.a(Function);
92+
93+
function cb(err, found) {
94+
done();
95+
}
96+
97+
backend.loadFromStorage(modelClass, [0, 1, 2], cb);
98+
});
99+
100+
it('#loadFromStorage', function(done) {
101+
expect(backend.loadFromStorage).to.be.a(Function);
102+
103+
modelClass = extend({}, modelClass);
104+
modelClass['pathsToPopulate'] = function() {};
105+
106+
function cb(err, found) {
107+
done();
108+
}
109+
110+
backend.loadFromStorage(modelClass, [0, 1, 2], cb);
111+
});
112+
113+
});
114+
115+
});

test/index_test.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
var should = require('should')
22
, expect = require('expect.js')
33
, fs = require('fs')
4+
, mockFs = require('mock-fs')
5+
, mockery = require('mockery')
46
, path = require('path')
57
, pmock = require('pmock')
68
, Config = require('../src/config')
@@ -78,21 +80,18 @@ describe('Config Env Var', function() {
7880
STREAM_NODE_CONFIG_DIR: configDir,
7981
});
8082

81-
try {
82-
fs.mkdirSync(configDir);
83-
fs.writeFileSync(configFile, 'exports.config = { apiKey: 12345 };');
84-
} catch(e) {
85-
console.error(e);
86-
}
83+
var mockConfig = {};
84+
mockConfig[configFile] = '';
85+
86+
mockFs(mockConfig);
87+
88+
mockery.enable();
89+
mockery.registerMock(configFile, { config: { apiKey: 12345 } });
8790
});
8891

8992
after(function() {
90-
try {
91-
fs.unlink(configFile);
92-
fs.rmdirSync(configDir);
93-
} catch(e) {
94-
console.error(e);
95-
}
93+
mockFs.restore();
94+
mockery.disable();
9695
this.env.reset();
9796
});
9897

0 commit comments

Comments
 (0)