mirror of
https://github.com/thinkjs/thinkjs.git
synced 2026-01-18 14:26:56 +00:00
92 lines
2.5 KiB
JavaScript
92 lines
2.5 KiB
JavaScript
'use strict';
|
|
|
|
var assert = require('assert');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var muk = require('muk');
|
|
|
|
|
|
|
|
|
|
for(var filepath in require.cache){
|
|
delete require.cache[filepath];
|
|
}
|
|
var Index = require('../../../lib/index.js');
|
|
var instance = new Index();
|
|
instance.load();
|
|
|
|
think.APP_PATH = path.dirname(__dirname) + think.sep + 'testApp';
|
|
|
|
var BaseSocket = think.adapter('socket', 'base');
|
|
|
|
describe('adapter/socket/base', function(){
|
|
it('get instance', function(){
|
|
var instance = new BaseSocket();
|
|
assert.deepEqual(instance.queueNums, 0);
|
|
assert.equal(instance.closeTimer, 0)
|
|
})
|
|
it('log connect', function(){
|
|
var instance = new BaseSocket();
|
|
instance.config = {log_connect: true};
|
|
muk(think, 'log', function(fn, type){
|
|
assert.equal(type, 'SOCKET');
|
|
var str = fn && fn({magenta: function(){}});
|
|
assert.equal(str.indexOf('Connect') > -1, true)
|
|
})
|
|
instance.logConnect();
|
|
muk.restore();
|
|
})
|
|
it('log connect off', function(){
|
|
var instance = new BaseSocket();
|
|
instance.config = {log_connect: false};
|
|
var flag = false;
|
|
muk(think, 'log', function(fn, type){
|
|
flag = true;
|
|
})
|
|
instance.logConnect();
|
|
muk.restore();
|
|
assert.equal(flag, false);
|
|
})
|
|
it('autoClose off', function(){
|
|
var instance = new BaseSocket();
|
|
think.config('auto_close_socket', false);
|
|
var data = instance.autoClose({});
|
|
assert.deepEqual(data, {})
|
|
})
|
|
it('autoClose on', function(done){
|
|
var instance = new BaseSocket();
|
|
think.config('auto_close_socket', true);
|
|
var promise = Promise.resolve();
|
|
var data = instance.autoClose(promise);
|
|
muk(global, 'setTimeout', function(fn){
|
|
fn && fn();
|
|
})
|
|
data.then(function(data){
|
|
think.config('auto_close_socket', false);
|
|
muk.restore();
|
|
done();
|
|
})
|
|
})
|
|
it('autoClose on, queueNums > 0', function(done){
|
|
var instance = new BaseSocket();
|
|
think.config('auto_close_socket', true);
|
|
instance.queueNums = 3;
|
|
var promise = Promise.resolve();
|
|
var data = instance.autoClose(promise);
|
|
data.then(function(data){
|
|
think.config('auto_close_socket', false);
|
|
done();
|
|
})
|
|
})
|
|
it('autoClose on, reject promise', function(done){
|
|
var instance = new BaseSocket();
|
|
think.config('auto_close_socket', true);
|
|
instance.queueNums = 3;
|
|
var promise = Promise.reject();
|
|
var data = instance.autoClose(promise);
|
|
data.catch(function(data){
|
|
think.config('auto_close_socket', false);
|
|
done();
|
|
})
|
|
})
|
|
}) |