Jest зависает после запуска всех тестов при использовании адаптера redis socket.io - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть сервер Node.JS, который использует Socket.IO с адаптером Redis. При запуске тестов Jest процесс Jest зависает после запуска всех тестов. Я сократил код до следующего, чтобы иметь возможность воспроизводить. Именно адаптер Redis вызывает проблему. Что еще мне нужно сделать?

приложение-test.ts

import express from 'express';
import fse from 'fs-extra';
import * as http from 'http';
import socketIo from 'socket.io';
import SocketIORedis from 'socket.io-redis';
import { CONFIG_TYPE, CONFIGS_PATHS } from '../../constants';

class Server {
  // Bootstrap the application.
  public static bootstrap(): Server {
    return new Server();
  }

  public app: express.Application;
  public server: http.Server;
  private io: SocketIO.Server;

  constructor() {
    // Create expressjs application
    this.app = express();

    // Create server
    this.createServer();
  }

  public shutdown(): void {
    this.io.close();
    this.server.close();
  }

  private async createServer() {
    this.server = http.createServer(this.app);
    this.io = socketIo(this.server, { transports: ['polling', 'websocket'] });
    const redisConfig = await fse.readJson(CONFIGS_PATHS[CONFIG_TYPE].REDIS);
    const redisAdapter = SocketIORedis(redisConfig);
    this.io.adapter(redisAdapter);

  }
}

// Bootstrap the server
const server = Server.bootstrap();
export default server;

приложение-test.spec.ts

import app from './app-test';

describe('test', () => {
  afterAll((done) => {
    app.shutdown();
    done();
  });

  it('fake test', () => {
    expect(true).toBeTruthy();
  });
});
...