Skip to content

Commit

Permalink
fix afterStart module bug and clean test cases and add coverage
Browse files Browse the repository at this point in the history
Change-Id: I5b27e248ea96b043f48ba717ca1829fdfcd28381
  • Loading branch information
changchang committed Dec 29, 2012
1 parent e3cfbe4 commit 112d34b
Show file tree
Hide file tree
Showing 20 changed files with 129 additions and 29 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ node_modules/*
*.sublime-project
*.sublime-workspace
lib/doc/
lib-cov/
coverage.html
2 changes: 2 additions & 0 deletions .jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"describe",
"it",
"before",
"beforeEach",
"after",
"afterEach",
"window",
"__resources__"
],
Expand Down
18 changes: 15 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,21 @@
MOCHA_OPTS=
TESTS = test/*
REPORTER = spec
REPORTER = dot
TIMEOUT = 5000

test:
@./node_modules/.bin/mocha \
--reporter $(REPORTER) --timeout $(TIMEOUT) $(TESTS)
--reporter $(REPORTER) --timeout $(TIMEOUT) $(TESTS) \
$(MOCHA_OPTS)

.PHONY: test
test-cov: lib-cov
@POMELO_COV=1 $(MAKE) test REPORTER=html-cov > coverage.html

lib-cov:
@jscoverage lib lib-cov

clean:
rm -f coverage.html
rm -fr lib-cov

.PHONY: test clean
4 changes: 3 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
module.exports = require('./lib/pomelo');
module.exports = process.env.POMELO_COV ?
require('./lib-cov/pomelo') :
require('./lib/pomelo');
1 change: 0 additions & 1 deletion lib/master/master.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ var starter = require('../master/starter');
var logger = require('pomelo-logger').getLogger(__filename);
var crashLogger = require('pomelo-logger').getLogger('crash-log');
var admin = require('pomelo-admin');
var AfterStart = require('../modules/afterStart');
var util = require('util');
var pathUtil = require('../util/pathUtil');

Expand Down
2 changes: 1 addition & 1 deletion lib/util/appUtil.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ module.exports.stopComps = function(comps, index, force, cb) {
* Any component {method} return err, it would return err directly.
*
* @param {Array} comps loaded component list
* @param {String} method component lifecycle method name, such as: start, afterStart, stop
* @param {String} method component lifecycle method name, such as: start, stop
* @param {Function} cb
*/
module.exports.optComponents = function(comps, method, cb) {
Expand Down
4 changes: 2 additions & 2 deletions lib/util/events.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
ADD_SERVERS: '__add_server__',
REMOVE_SERVERS: '__remove_server__',
ADD_SERVERS: '__add_servers__',
REMOVE_SERVERS: '__remove_servers__',
NEW_REQ: '__new_request__',
NEW_RESP: '__new_response__'
};
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
"socket.io":">=0.9.4",
"pomelo-sync":">=0.0.1",
"async":">=0.0.1",
"seq-queue":">=0.0.5",
"seq-queue":"0.0.5",
"crc":">=0.0.1",
"cliff": ">=0.1.8",
"pomelo-loader":">=0.0.4",
"pomelo-rpc":">=0.0.10",
"pomelo-loader":"0.0.4",
"pomelo-rpc":"0.1.0",
"pomelo-protocol":">=0.0.3",
"pomelo-admin":">=0.0.17",
"pomelo-admin":"0.0.19",
"pomelo-monitor":">=0.3.5",
"pomelo-logger": "0.0.2"
},
Expand Down
74 changes: 72 additions & 2 deletions test/applicationTest.js → test/application.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
var app = require('../lib/application');
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var app = require('../' + lib + '/application');
var pomelo = require('../');
var should = require('should');

var WAIT_TIME = 100;
Expand Down Expand Up @@ -72,7 +74,6 @@ describe('application test', function(){
};

app.init({base: mockBase});
app.defaultConfiguration();
app.load(mockComponent);
app.start(function(err) {
should.not.exist(err);
Expand Down Expand Up @@ -172,4 +173,73 @@ describe('application test', function(){
server2Count.should.equal(1);
});
});

describe('#add and remove servers', function() {
it('should add servers and emit event and fetch the new server info by get methods', function(done) {
var newServers = [
{id: 'connector-server-1', serverType: 'connecctor', host: '127.0.0.1', port: 1234, wsPort: 3000},
{id: 'area-server-1', serverType: 'area', host: '127.0.0.1', port: 2234},
];
app.init({base: mockBase});
app.event.on(pomelo.events.ADD_SERVERS, function(servers) {
// check event args
newServers.should.eql(servers);

// check servers
var curServers = app.getServers();
should.exist(curServers);
var item, i, l;
for(i=0, l=newServers.length; i<l; i++) {
item = newServers[i];
item.should.eql(curServers[item.id]);
}

// check get server by id
for(i=0, l=newServers.length; i<l; i++) {
item = newServers[i];
item.should.eql(app.getServerById(item.id));
}

// check server types
var types = [];
for(i=0, l=newServers.length; i<l; i++) {
item = newServers[i];
if(types.indexOf(item.serverType) < 0) {
types.push(item.serverType);
}
}
var types2 = app.getServerTypes();
types.length.should.equal(types2.length);
for(i=0, l=types.length; i<l; i++) {
types2.should.include(types[i]);
}

// check server type list
var slist;
for(i=0, l=newServers.length; i<l; i++) {
item = newServers[i];
slist = app.getServersByType(item.serverType);
should.exist(slist);
contains(slist, item).should.be.true;
}

done();
});

app.addServers(newServers);
});

it('should remove server info and emit event', function(done) {
done();
});
});
});

var contains = function(slist, sinfo) {
for(var i=0, l=slist.length; i<l; i++) {
if(slist[i].id === sinfo.id) {
return true;
}
}
return false;
};
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');

var serialFilter = require('../../../lib/filters/handler/serial');
var FilterService = require('../../../lib/common/service/filterService');
var serialFilter = require('../../../' + lib + '/filters/handler/serial');
var FilterService = require('../../../' + lib + '/common/service/filterService');
var util = require('util');

var mockSession = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var serialFilter = require('../../../lib/filters/handler/time');
var FilterService = require('../../../lib/common/service/filterService');
var serialFilter = require('../../../' + lib + '/filters/handler/time');
var FilterService = require('../../../' + lib + '/common/service/filterService');
var util = require('util');
var mockSession = {
key : "123"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var timeoutFilter = require('../../../lib/filters/handler/timeout');
var FilterService = require('../../../lib/common/service/filterService');
var timeoutFilter = require('../../../' + lib + '/filters/handler/timeout');
var FilterService = require('../../../' + lib + '/common/service/filterService');
var util = require('util');
var mockSession = {
key : "123"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var rpcLogFilter = require('../../../lib/filters/rpc/rpcLog');
var rpcLogFilter = require('../../../' + lib + '/filters/rpc/rpcLog');

var mockData = {
serverId : "connector-server-1",
Expand Down
2 changes: 1 addition & 1 deletion test/pomeloTest.js → test/pomelo.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var pomelo = require('../lib/pomelo');
var pomelo = require('../');
var should = require('should');
var mockBase = process.cwd() + '/test';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var pomelo = require('../../');
var ChannelService = require('../../lib/common/service/channelService');
var ChannelService = require('../../' + lib + '/common/service/channelService');

var channelName = 'test_channel';
var mockBase = process.cwd() + '/test';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var ConnectionService = require('../../lib/common/service/connectionService');
var ConnectionService = require('../../' + lib + '/common/service/connectionService');

var mockApp = {
settings: {
Expand All @@ -8,6 +9,10 @@ var mockApp = {

get: function(key) {
return this.settings[key];
},

getServerId: function() {
return this.get('serverId');
}
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var FilterService = require('../../lib/common/service/filterService');
var FilterService = require('../../' + lib + '/common/service/filterService');

var WAIT_TIME = 50;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var HandlerService = require('../../lib/common/service/handlerService');
var HandlerService = require('../../' + lib + '/common/service/handlerService');

var mockApp = {
serverType: 'connector',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var should = require('should');
var taskManager = require('../../lib/common/service/taskManager');
var taskManager = require('../../' + lib + '/common/service/taskManager');

var fn_num = 0;
var ontimeout_num = 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var countDownLatch = require('../../lib/util/countDownLatch');
var lib = process.env.POMELO_COV ? 'lib-cov' : 'lib';
var countDownLatch = require('../../' + lib + '/util/countDownLatch');
var should = require('should');

var cbCreator = (function() {
Expand Down

0 comments on commit 112d34b

Please sign in to comment.