Files
carto.js/test/spec/windshaft/error-parser.spec.js
2020-06-13 18:34:34 +08:00

83 lines
2.2 KiB
JavaScript

var parseWindshaftErrors = require('../../../src/windshaft/error-parser');
describe('error-parser', function () {
function testErrorsWithContext (response) {
var parsedErrors = parseWindshaftErrors(response);
expect(parsedErrors.length).toBe(1);
expect(parsedErrors[0].message).toEqual('Your princess is in another castle');
expect(parsedErrors[0].layerId).toEqual('6675c6a3-8c57-4033-9fba-072215565521');
}
function testErrors (response) {
var parsedErrors = parseWindshaftErrors(response);
expect(parsedErrors.length).toBe(1);
expect(parsedErrors[0].message).toEqual('You must defeat Sheng Long to stand a chance.');
}
var errorsWithContext = [{
type: 'layer',
message: 'Your princess is in another castle',
layer: {
id: '6675c6a3-8c57-4033-9fba-072215565521'
}
}];
var errors = [
'You must defeat Sheng Long to stand a chance.',
'You did quite well, but you need more training to defeat me!'
];
it('should return errors with context if available inside a responseJSON object', function () {
var response = {
responseJSON: {
errors_with_context: errorsWithContext,
errors: errors
}
};
testErrorsWithContext(response);
});
it('should return one simple error if no one with context is available inside a responseJSON object', function () {
var response = {
responseJSON: {
errors: errors
}
};
testErrors(response);
});
it('should return errors with context if available', function () {
var response = {
errors_with_context: errorsWithContext,
errors: errors
};
testErrorsWithContext(response);
});
it('should return one simple error if no one with context is available', function () {
var response = {
errors: errors
};
testErrors(response);
});
it('should pass the error object if it is not a string', function () {
var response = {
errors: [{
message: 'You must defeat Sheng Long to stand a chance.'
}]
};
var parsedErrors = parseWindshaftErrors(response);
expect(parsedErrors.length).toBe(1);
expect(parsedErrors[0].message).toEqual('You must defeat Sheng Long to stand a chance.');
});
});