Skip to content

Commit 407bad0

Browse files
authored
Merge pull request #110 from incuna/master
Fix errors when calling initData without config
2 parents 7997a71 + d7575e6 commit 407bad0

File tree

2 files changed

+57
-2
lines changed

2 files changed

+57
-2
lines changed

lib/initData.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ function getConfig(){
99
var config = defaultConfig;
1010

1111
if(module.exports.config){
12-
config.rootDirectory = module.exports.config.rootDirectory || config.module.rootDirectory;
12+
config.rootDirectory = module.exports.config.rootDirectory || config.rootDirectory;
13+
config.protractorConfig = module.exports.config.protractorConfig || config.protractorConfig;
1314
}
1415

15-
var protractorConfigFile = path.join(config.rootDirectory, module.exports.config.protractorConfig || config.protractorConfig);
16+
var protractorConfigFile = path.join(config.rootDirectory, config.protractorConfig);
1617
var protractorConfig = require(protractorConfigFile).config;
1718

1819
config.mocks = protractorConfig.mocks || defaultConfig.mocks;

specs/initData.spec.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
'use strict';
2+
3+
var fs = require('fs');
4+
var path = require('path');
5+
6+
var initDataModule = {
7+
path: '../lib/initData',
8+
require: function () {
9+
return require(this.path);
10+
},
11+
teardown: function () {
12+
delete require.cache[require.resolve(this.path)];
13+
}
14+
};
15+
16+
var defaultConfig = {
17+
path: path.join(__dirname, '../protractor-conf.js'),
18+
setup: function () {
19+
fs.writeFileSync(this.path, 'exports.config = {}');
20+
},
21+
teardown: function () {
22+
fs.unlinkSync(this.path);
23+
}
24+
};
25+
26+
var globalMocks = {
27+
setup: function () {
28+
global.protractor = {};
29+
global.browser = {
30+
addMockModule: function () {}
31+
};
32+
},
33+
teardown: function () {
34+
delete global.protractor;
35+
delete global.browser;
36+
}
37+
};
38+
39+
40+
describe('init data', function(){
41+
beforeEach(function () {
42+
this.initData = initDataModule.require();
43+
globalMocks.setup();
44+
defaultConfig.setup();
45+
});
46+
afterEach(function () {
47+
initDataModule.teardown();
48+
globalMocks.teardown();
49+
defaultConfig.teardown();
50+
});
51+
it('will not error when not providing config', function () {
52+
expect(this.initData).not.toThrow();
53+
});
54+
});

0 commit comments

Comments
 (0)