08-27-周三_17-09-29
This commit is contained in:
66
node_modules/dnode-protocol/test/proto.js
generated
vendored
Normal file
66
node_modules/dnode-protocol/test/proto.js
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
var test = require('tap').test;
|
||||
var proto = require('../');
|
||||
var traverse = require('traverse');
|
||||
|
||||
test('proto hashes', function (t) {
|
||||
t.plan(4);
|
||||
|
||||
var s = proto({
|
||||
x : function (f, g) {
|
||||
setTimeout(f.bind({}, 7, 8, 9), 25);
|
||||
setTimeout(g.bind({}, [ 'q', 'r' ]), 50);
|
||||
},
|
||||
y : 555
|
||||
});
|
||||
|
||||
var c = proto({});
|
||||
|
||||
var sreqs = [];
|
||||
s.on('request', function (req) {
|
||||
sreqs.push(traverse.clone(req));
|
||||
c.handle(req);
|
||||
});
|
||||
|
||||
var creqs = [];
|
||||
c.on('request', function (req) {
|
||||
creqs.push(traverse.clone(req));
|
||||
s.handle(req);
|
||||
});
|
||||
|
||||
s.start();
|
||||
|
||||
t.deepEqual(sreqs, [ {
|
||||
method : 'methods',
|
||||
arguments : [ { x : '[Function]', y : 555 } ],
|
||||
callbacks : { 0 : [ '0', 'x' ] },
|
||||
links : [],
|
||||
} ]);
|
||||
|
||||
c.start();
|
||||
|
||||
t.deepEqual(creqs, [ {
|
||||
method : 'methods',
|
||||
arguments : [ {} ],
|
||||
callbacks : {},
|
||||
links : [],
|
||||
} ]);
|
||||
|
||||
var pending = 2;
|
||||
c.request('x', [
|
||||
function (x, y , z) {
|
||||
t.deepEqual([ x, y, z ], [ 7, 8, 9 ]);
|
||||
if (--pending === 0) t.end();
|
||||
},
|
||||
function (qr) {
|
||||
t.deepEqual(qr, [ 'q', 'r' ]);
|
||||
if (--pending === 0) t.end();
|
||||
}
|
||||
]);
|
||||
|
||||
t.deepEqual(creqs.slice(1), [ {
|
||||
method : 'x',
|
||||
arguments : [ '[Function]', '[Function]' ],
|
||||
callbacks : { 0 : [ '0' ], 1 : [ '1' ] },
|
||||
links : [],
|
||||
} ]);
|
||||
});
|
Reference in New Issue
Block a user