Skip to content

Commit 24d3b34

Browse files
authored
Merge pull request #434 from gemini-testing/feat/use.eventemitter2
feat: use EventEmitter2 instead of AsyncEmitter from gemini-core
2 parents 4d666ae + 3c41ab7 commit 24d3b34

File tree

10 files changed

+52
-40
lines changed

10 files changed

+52
-40
lines changed

lib/gui/api/facade.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
'use strict';
22

3-
const {AsyncEmitter} = require('gemini-core').events;
3+
const EventEmitter2 = require('eventemitter2');
44
const guiEvents = require('../constants/gui-events');
55

6-
module.exports = class ApiFacade extends AsyncEmitter {
6+
module.exports = class ApiFacade extends EventEmitter2 {
77
static create() {
88
return new ApiFacade();
99
}

lib/gui/api/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ module.exports = class Api {
1212
}
1313

1414
async initServer(server) {
15-
await this._gui.emitAndWait(this._gui.events.SERVER_INIT, server);
15+
await this._gui.emitAsync(this._gui.events.SERVER_INIT, server);
1616
}
1717

1818
async serverReady(data) {
19-
await this._gui.emitAndWait(this._gui.events.SERVER_READY, data);
19+
await this._gui.emitAsync(this._gui.events.SERVER_READY, data);
2020
}
2121
};

lib/plugin-api.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
'use strict';
22

3-
const AsyncEmitter = require('gemini-core').events.AsyncEmitter;
3+
const EventsEmitter = require('events');
44
const pluginEvents = require('./constants/plugin-events');
55
const {downloadDatabases, mergeDatabases, getTestsTreeFromDatabase} = require('./db-utils/server');
66

7-
module.exports = class HtmlReporter extends AsyncEmitter {
7+
module.exports = class HtmlReporter extends EventsEmitter {
88
static create(config) {
99
return new this(config);
1010
}

package-lock.json

Lines changed: 12 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"body-parser": "^1.18.2",
5151
"chalk": "^1.1.3",
5252
"debug": "^4.1.1",
53+
"eventemitter2": "6.4.7",
5354
"express": "^4.16.2",
5455
"filesize": "^8.0.6",
5556
"fs-extra": "^7.0.1",

test/unit/hermione.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ describe('lib/hermione', () => {
5858

5959
HermioneReporter(hermione, opts);
6060

61-
return hermione.emitAndWait(hermione.events.INIT);
61+
return hermione.emitAsync(hermione.events.INIT);
6262
}
6363

6464
function mkStubResult_(options = {}) {
@@ -73,7 +73,7 @@ describe('lib/hermione', () => {
7373
}
7474

7575
async function stubWorkers() {
76-
await hermione.emitAndWait(events.RUNNER_START, {
76+
await hermione.emitAsync(events.RUNNER_START, {
7777
registerWorkers: () => {
7878
return {saveDiffTo: sandbox.stub()};
7979
}
@@ -138,15 +138,15 @@ describe('lib/hermione', () => {
138138
it('should add skipped test to result', async () => {
139139
await initReporter_();
140140
hermione.emit(events.TEST_PENDING, mkStubResult_({title: 'some-title'}));
141-
await hermione.emitAndWait(hermione.events.RUNNER_END);
141+
await hermione.emitAsync(hermione.events.RUNNER_END);
142142

143143
assert.deepEqual(StaticReportBuilder.prototype.addSkipped.args[0][0].state, {name: 'some-title'});
144144
});
145145

146146
it('should add passed test to result', async () => {
147147
await initReporter_();
148148
hermione.emit(events.TEST_PASS, mkStubResult_({title: 'some-title'}));
149-
await hermione.emitAndWait(hermione.events.RUNNER_END);
149+
await hermione.emitAsync(hermione.events.RUNNER_END);
150150

151151
assert.deepEqual(StaticReportBuilder.prototype.addSuccess.args[0][0].state, {name: 'some-title'});
152152
});
@@ -158,7 +158,7 @@ describe('lib/hermione', () => {
158158
await initReporter_();
159159

160160
hermione.emit(events[event], testResult);
161-
await hermione.emitAndWait(hermione.events.RUNNER_END);
161+
await hermione.emitAsync(hermione.events.RUNNER_END);
162162

163163
assert.deepEqual(StaticReportBuilder.prototype.addError.args[0][0].state, {name: 'some-title'});
164164
});
@@ -169,7 +169,7 @@ describe('lib/hermione', () => {
169169
err.stateName = 'state-name';
170170

171171
hermione.emit(events[event], mkStubResult_({title: 'some-title', assertViewResults: [err]}));
172-
await hermione.emitAndWait(hermione.events.RUNNER_END);
172+
await hermione.emitAsync(hermione.events.RUNNER_END);
173173

174174
assert.deepEqual(StaticReportBuilder.prototype.addError.args[0][0].state, {name: 'some-title'});
175175
});
@@ -185,7 +185,7 @@ describe('lib/hermione', () => {
185185
});
186186

187187
hermione.emit(events[event], testResult);
188-
await hermione.emitAndWait(hermione.events.RUNNER_END);
188+
await hermione.emitAsync(hermione.events.RUNNER_END);
189189

190190
assert.deepEqual(StaticReportBuilder.prototype.addFail.args[0][0].state, {name: 'some-title'});
191191
});
@@ -197,7 +197,7 @@ describe('lib/hermione', () => {
197197
err.stateName = 'state-name';
198198

199199
hermione.emit(events[event], mkStubResult_({title: 'some-title', assertViewResults: [err]}));
200-
await hermione.emitAndWait(hermione.events.RUNNER_END);
200+
await hermione.emitAsync(hermione.events.RUNNER_END);
201201

202202
assert.deepEqual(StaticReportBuilder.prototype.addFail.args[0][0].state, {name: 'some-title'});
203203
});
@@ -210,7 +210,7 @@ describe('lib/hermione', () => {
210210
await initReporter_({path: '/absolute'});
211211
const testData = mkStubResult_({assertViewResults: [{refImg: {path: 'ref/path'}, stateName: 'plain'}]});
212212
hermione.emit(events.TEST_PASS, testData);
213-
await hermione.emitAndWait(events.RUNNER_END);
213+
await hermione.emitAsync(events.RUNNER_END);
214214

215215
assert.calledOnceWith(utils.copyFileAsync, 'ref/path', 'report/plain', '/absolute');
216216
});
@@ -223,7 +223,7 @@ describe('lib/hermione', () => {
223223
err.currImg = {path: 'current/path'};
224224

225225
hermione.emit(events.RETRY, mkStubResult_({assertViewResults: [err]}));
226-
await hermione.emitAndWait(events.RUNNER_END);
226+
await hermione.emitAsync(events.RUNNER_END);
227227

228228
assert.calledOnceWith(utils.copyFileAsync, 'current/path', 'report/plain', '/absolute');
229229
});
@@ -238,15 +238,15 @@ describe('lib/hermione', () => {
238238
err.refImg = {path: 'reference/path'};
239239

240240
hermione.emit(events.TEST_FAIL, mkStubResult_({assertViewResults: [err]}));
241-
await hermione.emitAndWait(events.RUNNER_END);
241+
await hermione.emitAsync(events.RUNNER_END);
242242

243243
assert.calledWith(utils.copyFileAsync, 'reference/path', 'report/plain', '/absolute');
244244
});
245245

246246
it('should save current image from assert view fail', async () => {
247247
utils.getCurrentPath.callsFake((test, stateName) => `report/${stateName}`);
248248
await initReporter_({path: '/absolute'});
249-
await hermione.emitAndWait(events.RUNNER_START, {
249+
await hermione.emitAsync(events.RUNNER_START, {
250250
registerWorkers: () => {
251251
return {saveDiffTo: sandbox.stub()};
252252
}
@@ -256,7 +256,7 @@ describe('lib/hermione', () => {
256256
err.currImg = {path: 'current/path'};
257257

258258
hermione.emit(events.TEST_FAIL, mkStubResult_({assertViewResults: [err]}));
259-
await hermione.emitAndWait(events.RUNNER_END);
259+
await hermione.emitAsync(events.RUNNER_END);
260260

261261
assert.calledWith(utils.copyFileAsync, 'current/path', 'report/plain', '/absolute');
262262
});
@@ -270,13 +270,13 @@ describe('lib/hermione', () => {
270270

271271
await initReporter_();
272272

273-
await hermione.emitAndWait(events.RUNNER_START, {
273+
await hermione.emitAsync(events.RUNNER_START, {
274274
registerWorkers: () => {
275275
return {saveDiffTo};
276276
}
277277
});
278278
hermione.emit(events.TEST_FAIL, mkStubResult_({assertViewResults: [err]}));
279-
await hermione.emitAndWait(events.RUNNER_END);
279+
await hermione.emitAsync(events.RUNNER_END);
280280

281281
assert.calledWith(
282282
saveDiffTo, sinon.match.instanceOf(ImageDiffError), sinon.match('/report/plain')

test/unit/lib/gui/api/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
const {EventEmitter} = require('events');
3+
const EventEmitter2 = require('eventemitter2');
44
const guiEvents = require('lib/gui/constants/gui-events');
55
const Api = require('lib/gui/api');
66
const {stubTool} = require('../../../utils');
@@ -12,7 +12,7 @@ describe('lig/gui/api', () => {
1212

1313
Api.create(tool);
1414

15-
assert.instanceOf(tool.gui, EventEmitter);
15+
assert.instanceOf(tool.gui, EventEmitter2);
1616
});
1717

1818
it('should add events to gui api', () => {

test/unit/lib/gui/tool-runner/report-subsciber.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('lib/gui/tool-runner/hermione/report-subscriber', () => {
4646

4747
reportSubscriber(hermione, reportBuilder, client);
4848

49-
return hermione.emitAndWait(hermione.events.RUNNER_END)
49+
return hermione.emitAsync(hermione.events.RUNNER_END)
5050
.then(() => assert.calledOnceWith(client.emit, clientEvents.END));
5151
});
5252

@@ -61,7 +61,7 @@ describe('lib/gui/tool-runner/hermione/report-subscriber', () => {
6161

6262
reportSubscriber(hermione, reportBuilder, client);
6363
hermione.emit(hermione.events.TEST_FAIL, testResult);
64-
await hermione.emitAndWait(hermione.events.RUNNER_END);
64+
await hermione.emitAsync(hermione.events.RUNNER_END);
6565

6666
assert.callOrder(mediator, client.emit.withArgs(clientEvents.END));
6767
});
@@ -91,8 +91,8 @@ describe('lib/gui/tool-runner/hermione/report-subscriber', () => {
9191
reportBuilder.format.withArgs(testData, hermione.events.TEST_PENDING).returns(formattedResult);
9292

9393
reportSubscriber(hermione, reportBuilder, client);
94-
hermione.emitAndWait(hermione.events.TEST_PENDING, testData);
95-
await hermione.emitAndWait(hermione.events.RUNNER_END);
94+
hermione.emitAsync(hermione.events.TEST_PENDING, testData);
95+
await hermione.emitAsync(hermione.events.RUNNER_END);
9696

9797
assert.calledOnceWith(reportBuilder.addSkipped, formattedResult);
9898
});
@@ -106,8 +106,8 @@ describe('lib/gui/tool-runner/hermione/report-subscriber', () => {
106106
reportBuilder.getTestBranch.withArgs('some-id').returns('test-tree-branch');
107107

108108
reportSubscriber(hermione, reportBuilder, client);
109-
hermione.emitAndWait(hermione.events.TEST_PENDING, testData);
110-
await hermione.emitAndWait(hermione.events.RUNNER_END);
109+
hermione.emitAsync(hermione.events.TEST_PENDING, testData);
110+
await hermione.emitAsync(hermione.events.RUNNER_END);
111111

112112
assert.calledWith(client.emit, clientEvents.TEST_RESULT, 'test-tree-branch');
113113
});
@@ -124,7 +124,7 @@ describe('lib/gui/tool-runner/hermione/report-subscriber', () => {
124124

125125
reportSubscriber(hermione, reportBuilder, client);
126126
hermione.emit(hermione.events.TEST_FAIL, testData);
127-
await hermione.emitAndWait(hermione.events.RUNNER_END);
127+
await hermione.emitAsync(hermione.events.RUNNER_END);
128128

129129
assert.calledWithMatch(reportBuilder.addFail, {attempt: 1});
130130
});
@@ -138,7 +138,7 @@ describe('lib/gui/tool-runner/hermione/report-subscriber', () => {
138138

139139
reportSubscriber(hermione, reportBuilder, client);
140140
hermione.emit(hermione.events.TEST_FAIL, testData);
141-
await hermione.emitAndWait(hermione.events.RUNNER_END);
141+
await hermione.emitAsync(hermione.events.RUNNER_END);
142142

143143
assert.callOrder(formattedResult.saveTestImages, reportBuilder.addFail);
144144
});
@@ -153,7 +153,7 @@ describe('lib/gui/tool-runner/hermione/report-subscriber', () => {
153153

154154
reportSubscriber(hermione, reportBuilder, client);
155155
hermione.emit(hermione.events.TEST_FAIL, testData);
156-
await hermione.emitAndWait(hermione.events.RUNNER_END);
156+
await hermione.emitAsync(hermione.events.RUNNER_END);
157157

158158
assert.calledWith(client.emit, clientEvents.TEST_RESULT, 'test-tree-branch');
159159
});

test/unit/lib/plugin-adapter.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ describe('lib/plugin-adapter', () => {
3838

3939
function initApiReporter_(opts) {
4040
initReporter_(opts);
41-
return tool.emitAndWait(tool.events.INIT);
41+
return tool.emitAsync(tool.events.INIT);
4242
}
4343

4444
function initCliReporter_(opts, {command = 'foo'} = {}) {
@@ -48,7 +48,7 @@ describe('lib/plugin-adapter', () => {
4848
tool.emit(tool.events.CLI, commander);
4949
commander.emit(`command:${command}`);
5050

51-
return tool.emitAndWait(tool.events.INIT);
51+
return tool.emitAsync(tool.events.INIT);
5252
}
5353

5454
function mkCommander_(commands = ['default-command']) {
@@ -168,7 +168,7 @@ describe('lib/plugin-adapter', () => {
168168
.then(() => {
169169
tool.emit(tool.events.END);
170170

171-
return tool.emitAndWait(tool.events.RUNNER_END).then(() => {
171+
return tool.emitAsync(tool.events.RUNNER_END).then(() => {
172172
assert.calledOnce(StaticReportBuilder.prototype.finalize);
173173
});
174174
});
@@ -179,7 +179,7 @@ describe('lib/plugin-adapter', () => {
179179
.then(() => {
180180
tool.emit(tool.events.END);
181181

182-
return tool.emitAndWait(tool.events.RUNNER_END).then(() => {
182+
return tool.emitAsync(tool.events.RUNNER_END).then(() => {
183183
assert.calledWithMatch(logger.log, 'some/path');
184184
});
185185
});
@@ -192,7 +192,7 @@ describe('lib/plugin-adapter', () => {
192192
.then(() => {
193193
tool.emit(tool.events.END);
194194

195-
return tool.emitAndWait(tool.events.RUNNER_END).then(() => {
195+
return tool.emitAsync(tool.events.RUNNER_END).then(() => {
196196
assert.calledWith(logger.error, sinon.match('Html-reporter runtime error: some-error'));
197197
});
198198
});

test/unit/utils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
const _ = require('lodash');
4-
const {AsyncEmitter} = require('gemini-core').events;
4+
const EventEmitter2 = require('eventemitter2');
55

66
function stubConfig(config = {}) {
77
const browsers = config.browsers || {};
@@ -22,7 +22,7 @@ const stubTestCollection = (testsTree = {}) => {
2222
};
2323

2424
function stubTool(config = stubConfig(), events = {}, errors = {}, htmlReporter) {
25-
const tool = new AsyncEmitter();
25+
const tool = new EventEmitter2();
2626

2727
tool.config = config;
2828
tool.events = events;

0 commit comments

Comments
 (0)