UNPKG

json-rpc-protocol

Version:

JSON-RPC 2 protocol messages parsing and formatting

98 lines 3.16 kB
"use strict"; /* 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