test.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var kcp = require('./../build/Release/kcp');
  2. var expect = require('chai').expect;
  3. var kcpobj1 = new kcp.KCP(123, {name : 'kcpobj1'});
  4. var kcpobj2 = new kcp.KCP(123, {name : 'kcpobj2'});
  5. var interval = 10;
  6. var msg = 'helloworld';
  7. describe('Test node-kcp', function(){
  8. describe('# nodelay', function(){
  9. it('set default mode', function(){
  10. expect(kcpobj1.nodelay(0, interval, 0, 0)).to.be.equal(0);
  11. expect(kcpobj2.nodelay(0, interval, 0, 0)).to.be.equal(0);
  12. });
  13. });
  14. describe('# update & check', function(){
  15. it('test update and check', function(){
  16. var now = Date.now();
  17. kcpobj1.update(now);
  18. expect(kcpobj1.check(now)).to.be.equal(interval);
  19. kcpobj2.update(now);
  20. expect(kcpobj2.check(now)).to.be.equal(interval);
  21. });
  22. });
  23. describe('# input & output', function(){
  24. it('test input and output', function(done){
  25. var kcpobj1TID = setTimeout(function(){
  26. kcpobj1.update(Date.now());
  27. }, interval);
  28. kcpobj1.output(function(data, size, context){
  29. expect(context.name).to.be.equal('kcpobj1');
  30. expect(kcpobj2.input(data)).to.be.equal(0);
  31. clearTimeout(kcpobj1TID);
  32. done();
  33. });
  34. kcpobj1.send(msg);
  35. });
  36. });
  37. describe('# recveive message', function(){
  38. it('test receive msg', function(done){
  39. var kcpobj2TID = setTimeout(function(){
  40. kcpobj2.update(Date.now());
  41. expect(kcpobj2.recv().toString()).to.be.equal(msg);
  42. done();
  43. }, interval);
  44. });
  45. });
  46. });