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

Commit 9e443ff

Browse files
committed
Improve test coverage
1 parent 84dedc3 commit 9e443ff

File tree

3 files changed

+83
-6
lines changed

3 files changed

+83
-6
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@
3838
"bson": "~0.5.4",
3939
"coveralls": "~2.11.14",
4040
"eslint": "~3.7.1",
41+
"expect.js": "~0.3.1",
4142
"glob": "~7.1.1",
4243
"jscs": "~3.0.7",
4344
"mocha": "~3.1.0",
45+
"rewire": "~2.5.2",
4446
"should": "~4.0.0"
4547
},
4648
"peerDependencies": {

src/index.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
var FeedManager = require('./FeedManager.js');
22
var config = require('./config.js');
33
var settings = config();
4+
var extend = require('util')._extend;
45
var waterline = require('./backends/waterline');
56
var mongoose = require('./backends/mongoose.js');
67

78
module.exports.FeedManager = new FeedManager(settings);
89
module.exports.feedManagerFactory = function (options) {
10+
var withSettings = extend({}, settings);
911
options = options || {};
1012

11-
for (var key in settings) {
12-
if (settings.hasOwnProperty(key) && options.hasOwnProperty(key)) {
13-
settings[key] = options[key];
13+
for (var key in withSettings) {
14+
if (withSettings.hasOwnProperty(key) && options.hasOwnProperty(key)) {
15+
withSettings[key] = options[key];
1416
}
1517
}
1618

17-
return new FeedManager(settings);
19+
return new FeedManager(withSettings);
1820
};
1921

2022
module.exports.mongoose = mongoose;

test/index_test.js

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1-
var should = require('should');
2-
var BaseBackend = require('../src/backends/base.js');
1+
var should = require('should')
2+
, expect = require('expect.js')
3+
, fs = require('fs')
4+
, path = require('path')
5+
, Config = require('../src/config')
6+
, BaseBackend = require('../src/backends/base.js')
7+
, FeedManager = require('../src/FeedManager')
8+
, main = require('../src/index');
39

410
describe('StreamBackend', function () {
511

@@ -22,3 +28,70 @@ describe('StreamBackend', function () {
2228
});
2329

2430
});
31+
32+
describe('feedManagerFactory', function() {
33+
34+
it('should return a FeedManager instance', function() {
35+
var fm = main.feedManagerFactory({});
36+
37+
expect(fm).to.be.a(FeedManager);
38+
});
39+
40+
it('should ignore unkown settings', function() {
41+
var fm = main.feedManagerFactory({
42+
unknown: 'abcdefg'
43+
});
44+
45+
expect(fm).to.be.a(FeedManager);
46+
expect(fm.settings.unknown).to.be.undefined;
47+
});
48+
49+
it('should override known settings', function() {
50+
var fm = main.feedManagerFactory({
51+
apiKey: 'abcdefg'
52+
});
53+
54+
expect(fm).to.be.a(FeedManager);
55+
expect(fm.settings.apiKey).to.be('abcdefg');
56+
});
57+
58+
});
59+
60+
describe('Feed manager', function() {
61+
62+
it('default config', function() {
63+
var settings = main.FeedManager.settings;
64+
65+
var expected = require('../getstream.js').config;
66+
expect(settings).to.eql(expected);
67+
});
68+
69+
describe('haha', function() {
70+
var configDir = path.join(__dirname, './tmp');
71+
var configFile = path.join(configDir, 'getstream.js');
72+
73+
before(function() {
74+
process.env.STREAM_NODE_CONFIG_DIR = configDir;
75+
76+
fs.mkdirSync(configDir);
77+
fs.writeFileSync(configFile, 'exports.config = { apiKey: 12345 };');
78+
});
79+
80+
after(function() {
81+
fs.unlink(configFile);
82+
fs.rmdirSync(configDir);
83+
delete process.env.STREAM_NODE_CONFIG_DIR;
84+
});
85+
86+
it('env var config dir', function() {
87+
var settings = Config();
88+
89+
expect(settings.apiKey).to.be(12345);
90+
});
91+
});
92+
93+
94+
it('override config', function() {
95+
96+
});
97+
});

0 commit comments

Comments
 (0)