Skip to content

Commit

Permalink
fix(hermione gui): mark browser section as running on test run
Browse files Browse the repository at this point in the history
  • Loading branch information
sipayRT committed Apr 18, 2018
1 parent 7962756 commit 97951e0
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 13 deletions.
3 changes: 1 addition & 2 deletions lib/gui/tool-runner-factory/gemini/report-subscriber.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ module.exports = (gemini, reportBuilder, client, reportPath) => {
gemini.on(gemini.events.BEGIN_STATE, (data) => {
const {name, suite: {path: suitePath}} = data.state;
client.emit(clientEvents.BEGIN_STATE, {
name,
suitePath,
suitePath: suitePath.concat(name),
browserId: data.browserId,
status: RUNNING
});
Expand Down
3 changes: 1 addition & 2 deletions lib/gui/tool-runner-factory/hermione/report-subscriber.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,9 @@ module.exports = (hermione, reportBuilder, client, reportPath) => {
});

hermione.on(hermione.events.TEST_BEGIN, (data) => {
const {title: name, browserId} = data;
const {browserId} = data;

client.emit(clientEvents.BEGIN_STATE, {
name,
suitePath: getSuitePath(data),
browserId,
status: RUNNING
Expand Down
14 changes: 7 additions & 7 deletions lib/static/modules/reducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,27 +50,27 @@ export default function reducer(state = getInitialState(compiledData), action) {
const suites = clone(state.suites);
const {suitePath, status} = action.payload;
const test = findNode(suites, suitePath);
test && (test.status = status);

forceUpdateSuiteData(suites, test);
if (test) {
test.status = status;
forceUpdateSuiteData(suites, test);
}

return assign({}, state, {suites});
}
case actionNames.TEST_BEGIN: {
const suites = clone(state.suites);
const {name, suitePath, status, browserId} = action.payload;
const test = findNode(suites, suitePath.concat(name));
const {suitePath, status, browserId} = action.payload;
const test = findNode(suites, suitePath);
if (test) {
test.status = status;
test.browsers.forEach((b) => {
if (b.name === browserId) {
b.result.status = status;
}
});
forceUpdateSuiteData(suites, test);
}

forceUpdateSuiteData(suites, test);

return assign({}, state, {suites});
}
case actionNames.TESTS_END: {
Expand Down
27 changes: 26 additions & 1 deletion test/lib/gui/tool-runner-factory/gemini/report-subscriber.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const {EventEmitter} = require('events');
const reportSubscriber = require('lib/gui/tool-runner-factory/gemini/report-subscriber');
const ReportBuilder = require('lib/report-builder-factory/report-builder');
const clientEvents = require('lib/gui/constants/client-events');
const {RUNNING} = require('lib/constants/test-statuses');
const {stubTool, stubConfig} = require('test/utils');

describe('lib/gui/tool-runner-factory/gemini/report-subscriber', () => {
Expand All @@ -12,7 +13,8 @@ describe('lib/gui/tool-runner-factory/gemini/report-subscriber', () => {
let client;

const events = {
END_RUNNER: 'endRunner'
END_RUNNER: 'endRunner',
BEGIN_STATE: 'beginState'
};

const mkGemini_ = () => stubTool(stubConfig(), events);
Expand Down Expand Up @@ -47,4 +49,27 @@ describe('lib/gui/tool-runner-factory/gemini/report-subscriber', () => {
.then(() => assert.calledOnceWith(client.emit, clientEvents.END));
});
});

describe('BEGIN_STATE', () => {
it('should emit "BEGIN_STATE" event for client with correct data', () => {
const gemini = mkGemini_();
const testData = {
state: {
name: 'state-name',
suite: {path: ['suite-name']}
},
browserId: 'bro'
};

reportSubscriber(gemini, reportBuilder, client);

gemini.emit(gemini.events.BEGIN_STATE, testData);

assert.calledOnceWith(client.emit, clientEvents.BEGIN_STATE, {
browserId: 'bro',
suitePath: ['suite-name', 'state-name'],
status: RUNNING
});
});
});
});
25 changes: 24 additions & 1 deletion test/lib/gui/tool-runner-factory/hermione/report-subsciber.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const {EventEmitter} = require('events');
const reportSubscriber = require('lib/gui/tool-runner-factory/hermione/report-subscriber');
const ReportBuilder = require('lib/report-builder-factory/report-builder');
const clientEvents = require('lib/gui/constants/client-events');
const {RUNNING} = require('lib/constants/test-statuses');
const {stubTool, stubConfig} = require('test/utils');

describe('lib/gui/tool-runner-factory/hermione/report-subscriber', () => {
Expand All @@ -12,7 +13,8 @@ describe('lib/gui/tool-runner-factory/hermione/report-subscriber', () => {
let client;

const events = {
RUNNER_END: 'runnerEnd'
RUNNER_END: 'runnerEnd',
TEST_BEGIN: 'testBegin'
};

const mkHermione_ = () => stubTool(stubConfig(), events);
Expand Down Expand Up @@ -47,4 +49,25 @@ describe('lib/gui/tool-runner-factory/hermione/report-subscriber', () => {
.then(() => assert.calledOnceWith(client.emit, clientEvents.END));
});
});

describe('TEST_BEGIN', () => {
it('should emit "BEGIN_STATE" event for client with correct data', () => {
const hermione = mkHermione_();
const testData = {
title: 'suite-title',
parent: {title: 'root-title', parent: {root: true}},
browserId: 'bro'
};

reportSubscriber(hermione, reportBuilder, client);

hermione.emit(hermione.events.TEST_BEGIN, testData);

assert.calledOnceWith(client.emit, clientEvents.BEGIN_STATE, {
browserId: 'bro',
suitePath: ['root-title', 'suite-title'],
status: RUNNING
});
});
});
});

0 comments on commit 97951e0

Please sign in to comment.