Skip to content

Commit

Permalink
Merge pull request #519 from CartoDB/fix-error-with-context
Browse files Browse the repository at this point in the history
Now errors with context have the same schema.
  • Loading branch information
dgaubert committed Jun 21, 2016
2 parents 9e2f037 + d80f2b9 commit 256032c
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
Expand Up @@ -61,15 +61,15 @@ AnalysisMapConfigAdapter.prototype.getMapConfig = function(user, requestMapConfi
function createAnalysis(analysisDefinition, index, done) {
self.analysisBackend.create(analysisConfiguration, analysisDefinition, function (err, analysis) {
if (err) {
err.context = {
type: 'analysis',
analysis: {
index: index,
id: analysisDefinition.id,
type: analysisDefinition.type
}
var error = new Error(err.message);
error.type = 'analysis';
error.context = {};
error.context.layer = {
index: index,
id: analysisDefinition.id,
type: analysisDefinition.type
};
return done(err);
return done(error);
}

done(null, analysis);
Expand Down Expand Up @@ -295,4 +295,4 @@ function AnalysisError(message) {
this.message = message;
}

require('util').inherits(AnalysisError, Error);
require('util').inherits(AnalysisError, Error);
21 changes: 13 additions & 8 deletions test/acceptance/analysis/error-cases.js
Expand Up @@ -199,10 +199,14 @@ describe('analysis-layers error cases', function() {
'Analysis requires authentication with API key: permission denied.'
);

assert.equal(layergroupResult.errors_with_context[0].context.type, 'analysis');
assert.equal(layergroupResult.errors_with_context[0].context.analysis.index, 0);
assert.equal(layergroupResult.errors_with_context[0].context.analysis.id, 'HEAD');
assert.equal(layergroupResult.errors_with_context[0].context.analysis.type, 'buffer');
assert.equal(layergroupResult.errors_with_context[0].type, 'analysis');
assert.equal(
layergroupResult.errors_with_context[0].message,
'Analysis requires authentication with API key: permission denied.'
);
assert.equal(layergroupResult.errors_with_context[0].context.layer.index, 0);
assert.equal(layergroupResult.errors_with_context[0].context.layer.id, 'HEAD');
assert.equal(layergroupResult.errors_with_context[0].context.layer.type, 'buffer');

testClient.drain(done);
});
Expand Down Expand Up @@ -252,10 +256,11 @@ describe('analysis-layers error cases', function() {
'Missing required param "radius"'
);

assert.equal(layergroupResult.errors_with_context[0].context.type, 'analysis');
assert.equal(layergroupResult.errors_with_context[0].context.analysis.index, 0);
assert.equal(layergroupResult.errors_with_context[0].context.analysis.id, 'HEAD');
assert.equal(layergroupResult.errors_with_context[0].context.analysis.type, 'buffer');
assert.equal(layergroupResult.errors_with_context[0].type, 'analysis');
assert.equal(layergroupResult.errors_with_context[0].message, 'Missing required param "radius"');
assert.equal(layergroupResult.errors_with_context[0].context.layer.index, 0);
assert.equal(layergroupResult.errors_with_context[0].context.layer.id, 'HEAD');
assert.equal(layergroupResult.errors_with_context[0].context.layer.type, 'buffer');

testClient.drain(done);
});
Expand Down

0 comments on commit 256032c

Please sign in to comment.