server.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { fork } from 'child_process';
  2. import tape from 'tape';
  3. import _test from 'tape-promise';
  4. import fetch from 'isomorphic-fetch';
  5. import socketclient from 'socket.io-client';
  6. const tapetest = _test(tape);
  7. const serverhost = 'localhost',
  8. serverport = 2424,
  9. server = fork('build/server.js');
  10. tapetest('test server', async function testServer(assert) {
  11. let client;
  12. try {
  13. await waitPro();
  14. const ret = await fetch(`http://${serverhost}:${serverport}`),
  15. data = await ret.text();
  16. assert.equal(data, 'working', 'received message from server');
  17. }
  18. catch(e) {
  19. console.log('error in', assert.name, e);
  20. assert.fail(`error in ${assert.name}`);
  21. }
  22. assert.end();
  23. });
  24. tapetest.onFinish(async function cleanup() {
  25. server.kill();
  26. });
  27. function waitPro(n = 1000) {
  28. return new Promise(function pro(resolve, reject) {
  29. setTimeout(resolve, n);
  30. });
  31. }
  32. function responsePro(socket, evt, wait = 3000) {
  33. return new Promise(function pro(resolve, reject) {
  34. let to = setTimeout(reject.bind(null, 'socket event TIMEOUT ' + evt), wait);
  35. socket.once(evt, function (a) {
  36. clearTimeout(to);
  37. resolve(a);
  38. });
  39. });
  40. }