Files
shields/services/base-json.spec.js
Paul Melnikow 6e09a93cf0 Provide a descriptive message when json can’t be parsed (#1796)
* Test handling of invalid JSON on BaseJsonService
* Remove invalidJSON tests from new-style services
2018-07-23 19:35:42 -05:00

42 lines
960 B
JavaScript

'use strict';
const { expect } = require('chai');
const { BaseJsonService } = require('./base');
const { invalidJSON } = require('./response-fixtures');
class DummyJsonService extends BaseJsonService {
static get category() {
return 'cat';
}
static get url() {
return {
base: 'foo',
};
}
async handle() {
const { value } = await this._requestJson();
return { message: value };
}
}
describe('BaseJsonService', () => {
it('handles unparseable json responses', async function() {
const sendAndCacheRequest = async () => ({
buffer: invalidJSON,
res: { statusCode: 200 },
});
const serviceInstance = new DummyJsonService(
{ sendAndCacheRequest },
{ handleInternalErrors: false }
);
const serviceData = await serviceInstance.invokeHandler({}, {});
expect(serviceData).to.deep.equal({
color: 'lightgray',
message: 'unparseable json response',
});
});
});