Как дождаться завершения теста

258
21 июня 2017, 02:46
const URL = "http://127.0.0.1:8081";
let expect = require("chai").expect;
export class MainTest {
    io = require('socket.io-client');
    socket: SocketIO.Socket;
    players: SocketIO.Socket[] = [];
    messages: any = {};
    testCount: number = 0;
    constructor() {
        this.socket = this.io(URL);
        for (let i = 0; i < 10; i++) {
            this.players.push(this.io(URL));
        }
        this.registerUser();
        this.loginUser();
        this.checkMessage();
        this.playerFindRoom();
    }

    registerUser() {
        it('check registration', () => {
            this.players.forEach((player) => {
                player.emit('registration', "I want to register");
            });
        });
    }
    loginUser() {
        it('check login', () => {
            this.players.forEach((player) => {
                player.emit('login', "I want to login");
            });
        });
    }
    checkMessage() {
        it('check messages', (done) => {
            let count: number = 0;
            this.players.forEach((player) => {
                this.messages[player.id] = {};
                this.messages[player.id].mess = [];
                player.on('message', (data: any) => {
                    this.messages[player.id].mess.push(data);
                    count++;
                    if (count == this.players.length * 2) {
                        done();
                        this.testCount++
                    }
                });
            });
        });
    };
    playerFindRoom() {
        it('check player find room', (done) => {
            this.players.forEach((player) => {
                player.emit('playerConnect', "I want to find free room or create new room");
            });
            let count: number = 0;
            this.players.forEach((player) => {
                player.on('message', (data: any) => {
                    count++;
                    console.log(count);
                    if (count == 10) {
                        done();
                    }
                });
            });
        });
    }
}

Есть такой код все тесты запускаются асинхронно насколько я понимаю, как мне запустить playerFindRoom после проверки checkMessage

READ ALSO
JavaScript не работает _${width}px_ Почему?

JavaScript не работает _${width}px_ Почему?

Здравствуйте! Помогите пожалуйста: почему-то не срабатывает вот это - ${width}Net Beans (8

303
Получить строку-разметку элемента

Получить строку-разметку элемента

Можно ли как-то в javaScript/jQuery, имея сам элемент, получить строку с его html-разметкой?

326
Собирать проект при помощи webpack

Собирать проект при помощи webpack

ПриветСейчас у меня установлен npm + Babel, у которого сборка происходит при помощи npm run watch:

315
Как добавить в div несколько div&#39;ов?

Как добавить в div несколько div'ов?

Приветствую! Подскажите пожалуйста, как добавить в див несколько дивов через переборУ меня есть 9 квадратов, в них я пытаюсь добавить 9 пустых...

329