Skip to content

Commit

Permalink
Merge pull request #83 from pelias/fix-json-output
Browse files Browse the repository at this point in the history
fix: fix json output failures
  • Loading branch information
orangejulius authored Dec 9, 2016
2 parents dfbf44e + e55ab24 commit 87cfbba
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
1 change: 1 addition & 0 deletions lib/eval_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ function eval_test_suite(testSuite, responses) {
};
}

result.response = response;
result.url = url;
result.testCase = testCase;
testCase.results[url] = result;
Expand Down
31 changes: 20 additions & 11 deletions output_generators/json.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,43 @@ var fs = require('fs-extra');
var terminal = require('./terminal');
var sanitize_filename = require('sanitize-filename');

// replacer for stringifying testCase to avoid circular structure
function replace(key, value) {
if (key === 'results' || key === 'result') {
return undefined;
}
return value;
}

/**
* Format and print a test result to json file.
*/
function saveFailTestResult( result ) {
if( result.result === 'fail' && result.testCase.status === 'pass' ) {
function saveFailTestResult( testCase ) {
if( testCase.result.result === 'fail' && testCase.status === 'pass' ) {
fs.ensureDirSync('./failures');
var recordFailFile = './failures/' + sanitize_filename(
util.format('%s_%s.json', result.testCase.id, result.testCase.in.input));
util.format('%s_%s.json', testCase.id, testCase.in.text));
var recordFail = {
test_case: result.testCase,
response: result.response.body.features
test_case: testCase,
response: testCase.result.response.body.features
};
fs.writeFileSync(recordFailFile, JSON.stringify(recordFail, null, 2));
fs.writeFileSync(recordFailFile, JSON.stringify(recordFail, replace, 2));
}
}

/**
* Format and print all of the results from any number of test-suites.
*/
function prettyPrintSuiteResults( suiteResults ) {
function prettyPrintSuiteResults( suiteResults, config, testSuites ) {

suiteResults.results.forEach( function ( suiteResult ) {
suiteResult.results.forEach( function (testResult) {
saveFailTestResult( testResult );
testSuites.forEach(function(suite) {
suite.tests.forEach(function(testCase) {
testCase.result = testCase.results[testCase.full_url];
saveFailTestResult( testCase );
});
});

return terminal( suiteResults );
return terminal( suiteResults, config, testSuites );
}

module.exports = prettyPrintSuiteResults;

0 comments on commit 87cfbba

Please sign in to comment.