json-rpc-protocol
Version:
JSON-RPC 2 protocol messages parsing and formatting
98 lines • 3.16 kB
JavaScript
/* eslint-env jest */
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var errors_1 = require("./errors");
var parse_1 = __importDefault(require("./parse"));
// ===================================================================
describe('parse()', function () {
it('throws on invalid JSON', function () {
expect(function () {
parse_1.default('');
}).toThrow(errors_1.InvalidJson);
});
describe('in JSON-RPC 1 mode', function () {
it('handles notification', function () {
var notif = parse_1.default({
id: null,
method: 'foo',
params: []
});
expect(notif.type).toBe('notification');
});
it('handles request', function () {
var request = parse_1.default({
id: 0,
method: 'bar',
params: []
});
expect(request.type).toBe('request');
});
it('handles successful response', function () {
var response = parse_1.default({
error: null,
id: 0,
result: 'baz'
});
expect(response.type).toBe('response');
});
it('handles error', function () {
var error = parse_1.default({
error: 'an error',
id: 0,
result: null
});
expect(error.type).toBe('error');
});
});
describe('in JSON-RPC 2 mode', function () {
it('handles notification', function () {
var notif = parse_1.default({
jsonrpc: '2.0',
method: 'foo'
});
expect(notif.type).toBe('notification');
});
it('handles request', function () {
var request = parse_1.default({
id: 0,
jsonrpc: '2.0',
method: 'bar'
});
expect(request.type).toBe('request');
});
it('handles successful response', function () {
var response = parse_1.default({
id: 0,
jsonrpc: '2.0',
result: 'baz'
});
expect(response.type).toBe('response');
});
it('handles error', function () {
var error = parse_1.default({
error: {
code: 0,
message: ''
},
id: 0,
jsonrpc: '2.0'
});
expect(error.type).toBe('error');
});
it('handles error with a null id', function () {
var error = parse_1.default({
error: {
code: 0,
message: ''
},
id: null,
jsonrpc: '2.0'
});
expect(error.type).toBe('error');
});
});
});
//# sourceMappingURL=parse.spec.js.map
;