Skip to content

Commit

Permalink
feat: reformats ApiaryReporter structure
Browse files Browse the repository at this point in the history
BREAKING CHANGE:

* Apiary Reporter now contains test run result under "results.validationResult":

```diff
- apiaryReporterPayload.resultData.results
+ apiaryReporterPayload.results.validationResult
```

* Apiary Reporter now includes a test run errors (not HTTP message validation errors):

```diff
+ apiaryReporterPayload.results.errors
```
  • Loading branch information
artem-zakharchenko committed Aug 19, 2019
1 parent 1df1e4a commit a159b48
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 26 deletions.
13 changes: 7 additions & 6 deletions lib/reporters/ApiaryReporter.js
Expand Up @@ -150,15 +150,15 @@ ApiaryReporter.prototype.configureEmitter = function configureEmitter(emitter) {
if (this.serverError === true) { return callback(); }
const data = this._transformTestToReporter(test);

if (!data.resultData.result) { data.resultData.result = {}; }
if (!data.resultData.result.general) { data.resultData.result.general = []; }
if (!data.results.errors) { data.results.errors = []; }
if (!data.results.validationResult) { data.results.validationResult = {}; }

if (Array.from(CONNECTION_ERRORS).includes(error.code)) {
data.resultData.result.general.push({
data.results.errors.push({
severity: 'error', message: 'Error connecting to server under test!',
});
} else {
data.resultData.result.general.push({
data.results.errors.push({
severity: 'error', message: 'Unhandled error occured when executing the transaction.',
});
}
Expand Down Expand Up @@ -277,11 +277,12 @@ ApiaryReporter.prototype._transformTestToReporter = function _transformTestToRep
duration: test.duration,
result: test.status,
startedAt: test.startedAt,
resultData: {
results: {
request: test.request,
realResponse: test.actual,
expectedResponse: test.expected,
result: test.results,
validationResult: test.results,
errors: test.errors,
},
};
};
Expand Down
32 changes: 16 additions & 16 deletions test/integration/apiary-reporter-test.js
Expand Up @@ -143,12 +143,12 @@ describe('Apiary reporter', () => {

it('should send results from Gavel', () => {
assert.isObject(receivedRequest);
assert.nestedProperty(receivedRequest, 'resultData.request');
assert.nestedProperty(receivedRequest, 'resultData.realResponse');
assert.nestedProperty(receivedRequest, 'resultData.expectedResponse');
assert.nestedProperty(receivedRequest, 'resultData.result.body.kind');
assert.nestedProperty(receivedRequest, 'resultData.result.headers.kind');
assert.nestedProperty(receivedRequest, 'resultData.result.statusCode.kind');
assert.nestedProperty(receivedRequest, 'results.request');
assert.nestedProperty(receivedRequest, 'results.realResponse');
assert.nestedProperty(receivedRequest, 'results.expectedResponse');
assert.nestedProperty(receivedRequest, 'results.validationResult.fields.body.kind');
assert.nestedProperty(receivedRequest, 'results.validationResult.fields.headers.kind');
assert.nestedProperty(receivedRequest, 'results.validationResult.fields.statusCode.kind');

it('prints out an error message', () => assert.notEqual(exitStatus, 0));
});
Expand Down Expand Up @@ -200,13 +200,13 @@ describe('Apiary reporter', () => {

it('should send results from gavel', () => {
assert.isObject(receivedRequest);
assert.nestedProperty(receivedRequest, 'resultData.request');
assert.nestedProperty(receivedRequest, 'resultData.expectedResponse');
assert.nestedProperty(receivedRequest, 'resultData.result.general');
assert.nestedProperty(receivedRequest, 'results.request');
assert.nestedProperty(receivedRequest, 'results.expectedResponse');
assert.nestedProperty(receivedRequest, 'results.errors');
});

it('report should have message about server being down', () => {
const message = receivedRequest.resultData.result.general[0].message;
const message = receivedRequest.results.errors[0].message;
assert.include(message, 'connect');
});
});
Expand Down Expand Up @@ -266,12 +266,12 @@ describe('Apiary reporter', () => {

it('should send results from Gavel', () => {
assert.isObject(receivedRequest);
assert.nestedProperty(receivedRequest, 'resultData.request');
assert.nestedProperty(receivedRequest, 'resultData.realResponse');
assert.nestedProperty(receivedRequest, 'resultData.expectedResponse');
assert.nestedProperty(receivedRequest, 'resultData.result.body.kind');
assert.nestedProperty(receivedRequest, 'resultData.result.headers.kind');
assert.nestedProperty(receivedRequest, 'resultData.result.statusCode.kind');
assert.nestedProperty(receivedRequest, 'results.request');
assert.nestedProperty(receivedRequest, 'results.realResponse');
assert.nestedProperty(receivedRequest, 'results.expectedResponse');
assert.nestedProperty(receivedRequest, 'results.validationResult.fields.body.kind');
assert.nestedProperty(receivedRequest, 'results.validationResult.fields.headers.kind');
assert.nestedProperty(receivedRequest, 'results.validationResult.fields.statusCode.kind');
});
});
});
Expand Down
8 changes: 4 additions & 4 deletions test/unit/reporters/ApiaryReporter-test.js
Expand Up @@ -591,8 +591,8 @@ describe('ApiaryReporter', () => {
const error = new Error('some error');
error.code = errType;
emitter.emit('test error', error, test, () => {
assert.isArray(JSON.parse(requestBody).resultData.result.general);
assert.include(JSON.parse(requestBody).resultData.result.general.map(value => JSON.stringify(value)).join(),
assert.isArray(JSON.parse(requestBody).results.errors);
assert.include(JSON.parse(requestBody).results.errors.map(value => JSON.stringify(value)).join(),
'Error connecting to server under test!');
done();
});
Expand Down Expand Up @@ -629,8 +629,8 @@ describe('ApiaryReporter', () => {
apiaryReporter.remoteId = runId;
const error = new Error('some error');
emitter.emit('test error', error, test, () => {
assert.isArray(JSON.parse(requestBody).resultData.result.general);
assert.include(JSON.parse(requestBody).resultData.result.general.map(value => JSON.stringify(value)).join(),
assert.isArray(JSON.parse(requestBody).results.errors);
assert.include(JSON.parse(requestBody).results.errors.map(value => JSON.stringify(value)).join(),
'Unhandled error occured when executing the transaction.');
done();
});
Expand Down

0 comments on commit a159b48

Please sign in to comment.