Socket.on не вызывается в мокко - PullRequest
1 голос
/ 07 августа 2020

Я пытаюсь протестировать socket.io с помощью mocha, но у меня проблема при вызове сокета на . Я думаю, что сокет не подключен, потому что журнал консоли не запускается, но отображается console.log вне вызова сокета. Или неверно, как я использую метод done ()?

const { assert } = require('chai');
const ioServer = require('socket.io');
const ioClient = require('socket.io-client');
const http = require('http');

const socketUrl = 'http://localhost:5000';
const options = {
  transports: ['websocket'],
  'force new connection': true,
};

let server;
let client;
let httpServer;

describe('Socket', () => {
  beforeEach(done => {
    httpServer = http.createServer().listen();
    server = ioServer(httpServer);
    client = ioClient.connect(socketUrl, options);
    server.on('connection', socket => {
      console.log('connected server');
      socket.emit('echo', 'Hello World');
    });
    client.on('echo', message => {
      console.log('connected client');
      console.log(message);
    });
    console.log('test');
    done();
  });

  afterEach(done => {
    server.close();
    client.close();
    done();
  });

  it('It should connect socket', done => {
    client.on('echo', message => {
      assert.equal(message, 'Hello World');
    });
    done();
  });
});

Вот снимок экрана терминала cli при запуске mocha. Мокко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...