Skip to content
This repository has been archived by the owner on Sep 21, 2022. It is now read-only.

feat: Add ability to pass any event arguments amount via PassthroughEmitter #917

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

tormozz48
Copy link
Contributor

@tormozz48 tormozz48 commented Jun 2, 2018

Текущий PassthroughEmitter имеет 1 "фатальный недостаток": можно использовать только 1 параметр для события.

Данный пулл-реквест устраняет это ограничение.

P.S. текущие юнит тесты на PassthroughEmitter написаны неправильно, так как используется assert.equal вместо assert.deepEqual.

Например существующий тест:

it('should not break promise chain on event emitted by emitAndWait', () => {
        runner.passthroughEvent(child, 'some-event');
        runner.on('some-event', function() {
            return 'some-data';
        });

        return child.emitAndWait('some-event')
            .then((data) => {
                assert.equal(data, 'some-data');
            });
    });

Здесь data, которая возвращается из промиса - это фактически двойной вложенный массив, который образуется путем двухкратного применения waitForResults из emitAndWait класса AsyncEmitter в gemini-core. Т.е. реальное значение data - это [['some-data']].

Корректно данная проверка выглядела бы следующим образом:

it('should not break promise chain on event emitted by emitAndWait', () => {
        runner.passthroughEvent(child, 'some-event');
        runner.on('some-event', function() {
            return 'some-data';
        });

        return child.emitAndWait('some-event')
            .then((data) => {
                assert.equal(data[0][0], 'some-data');
            });
    });

То, что сейчас этот тест проходит - это особенность работы assert.equal

@tormozz48 tormozz48 changed the title feat: Add ability to pass any event arguments via PassthroughEmitter feat: Add ability to pass any event arguments amount via PassthroughEmitter Jun 2, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant