UNPKG

javascript-typescript-langserver

Version:

Implementation of the Language Server Protocol for JavaScript and TypeScript

120 lines 6.02 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const chai = require("chai"); const chaiAsPromised = require("chai-as-promised"); const opentracing_1 = require("opentracing"); const rxjs_1 = require("rxjs"); const sinon = require("sinon"); const tracing_1 = require("../tracing"); chai.use(chaiAsPromised); const assert = chai.assert; describe('tracing.ts', () => { let sandbox; beforeEach(() => { sandbox = sinon.sandbox.create(); }); afterEach(() => { sandbox.restore(); }); describe('traceSync()', () => { it('should trace the error if the function throws', () => { let setTagStub; let logStub; let finishStub; assert.throws(() => { tracing_1.traceSync('Foo', new opentracing_1.Span(), span => { setTagStub = sandbox.stub(span, 'setTag'); logStub = sandbox.stub(span, 'log'); finishStub = sandbox.stub(span, 'finish'); throw new Error('Bar'); }); }, 'Bar'); sinon.assert.calledOnce(setTagStub); sinon.assert.calledOnce(logStub); sinon.assert.calledWith(setTagStub, 'error', true); sinon.assert.calledWith(logStub, sinon.match({ event: 'error', message: 'Bar' })); sinon.assert.calledOnce(finishStub); }); }); describe('tracePromise()', () => { it('should trace the error if the Promise is rejected', () => __awaiter(this, void 0, void 0, function* () { let setTagStub; let logStub; let finishStub; yield Promise.resolve(assert.isRejected(tracing_1.tracePromise('Foo', new opentracing_1.Span(), (span) => __awaiter(this, void 0, void 0, function* () { setTagStub = sandbox.stub(span, 'setTag'); logStub = sandbox.stub(span, 'log'); finishStub = sandbox.stub(span, 'finish'); throw new Error('Bar'); })), 'Bar')); yield new Promise(resolve => setTimeout(resolve, 0)); sinon.assert.calledOnce(setTagStub); sinon.assert.calledOnce(logStub); sinon.assert.calledWith(setTagStub, 'error', true); sinon.assert.calledWith(logStub, sinon.match({ event: 'error', message: 'Bar' })); sinon.assert.calledOnce(finishStub); })); it('should trace the error if the function throws an Error', () => __awaiter(this, void 0, void 0, function* () { let setTagStub; let logStub; let finishStub; yield Promise.resolve(assert.isRejected(tracing_1.tracePromise('Foo', new opentracing_1.Span(), span => { setTagStub = sandbox.stub(span, 'setTag'); logStub = sandbox.stub(span, 'log'); finishStub = sandbox.stub(span, 'finish'); throw new Error('Bar'); }), 'Bar')); yield new Promise(resolve => setTimeout(resolve, 0)); sinon.assert.calledOnce(setTagStub); sinon.assert.calledOnce(logStub); sinon.assert.calledWith(setTagStub, 'error', true); sinon.assert.calledWith(logStub, sinon.match({ event: 'error', message: 'Bar' })); sinon.assert.calledOnce(finishStub); })); }); describe('traceObservable()', () => { it('should trace the error if the Observable errors', () => __awaiter(this, void 0, void 0, function* () { let setTagStub; let logStub; let finishStub; yield Promise.resolve(assert.isRejected(tracing_1.traceObservable('Foo', new opentracing_1.Span(), span => { setTagStub = sandbox.stub(span, 'setTag'); logStub = sandbox.stub(span, 'log'); finishStub = sandbox.stub(span, 'finish'); return rxjs_1.Observable.throw(new Error('Bar')); }).toPromise(), 'Bar')); yield new Promise(resolve => setTimeout(resolve, 0)); sinon.assert.calledOnce(setTagStub); sinon.assert.calledOnce(logStub); sinon.assert.calledWith(setTagStub, 'error', true); sinon.assert.calledWith(logStub, sinon.match({ event: 'error', message: 'Bar' })); sinon.assert.calledOnce(finishStub); })); it('should trace the error if the function throws an Error', () => __awaiter(this, void 0, void 0, function* () { let setTagStub; let logStub; let finishStub; yield Promise.resolve(assert.isRejected(tracing_1.traceObservable('Foo', new opentracing_1.Span(), span => { setTagStub = sandbox.stub(span, 'setTag'); logStub = sandbox.stub(span, 'log'); finishStub = sandbox.stub(span, 'finish'); throw new Error('Bar'); }).toPromise(), 'Bar')); yield new Promise(resolve => setTimeout(resolve, 0)); sinon.assert.calledOnce(setTagStub); sinon.assert.calledOnce(logStub); sinon.assert.calledWith(setTagStub, 'error', true); sinon.assert.calledWith(logStub, sinon.match({ event: 'error', message: 'Bar' })); sinon.assert.calledOnce(finishStub); })); }); }); //# sourceMappingURL=tracing.test.js.map