From ac72fed84071e024dd75e02e61113e9d20e0ae66 Mon Sep 17 00:00:00 2001 From: Icebob Date: Tue, 12 Sep 2017 10:19:51 +0200 Subject: [PATCH] remove Promise results in findNextActionEndpoint --- src/service-broker.js | 12 ++++++------ test/unit/service-broker.spec.js | 33 +++++++++++++++----------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/service-broker.js b/src/service-broker.js index bc0365c9d..2a1d27c5c 100644 --- a/src/service-broker.js +++ b/src/service-broker.js @@ -714,7 +714,7 @@ class ServiceBroker { * * @param {String} actionName * @param {Object} opts - * @returns {Endpoint|Promise} + * @returns {Endpoint|Error} * * @performance-critical * @memberof ServiceBroker @@ -728,7 +728,7 @@ class ServiceBroker { const endpoint = this.registry.getActionEndpointByNodeId(actionName, opts.nodeID); if (!endpoint) { this.logger.warn(`Service '${actionName}' is not found on '${opts.nodeID}' node.`); - return Promise.reject(new E.ServiceNotFoundError(actionName, opts.nodeID)); + return new E.ServiceNotFoundError(actionName, opts.nodeID); } return endpoint; @@ -737,7 +737,7 @@ class ServiceBroker { const epList = this.registry.getActionEndpoints(actionName); if (!epList) { this.logger.warn(`Service '${actionName}' is not registered.`); - return Promise.reject(new E.ServiceNotFoundError(actionName)); + return new E.ServiceNotFoundError(actionName); } // Get the next available endpoint @@ -745,7 +745,7 @@ class ServiceBroker { if (!endpoint) { const errMsg = `Service '${actionName}' is not available.`; this.logger.warn(errMsg); - return Promise.reject(new E.ServiceNotAvailable(actionName)); + return new E.ServiceNotAvailable(actionName); } return endpoint; } @@ -765,8 +765,8 @@ class ServiceBroker { */ call(actionName, params, opts = {}) { const endpoint = this.findNextActionEndpoint(actionName, opts); - if (utils.isPromise(endpoint)) - return endpoint; + if (endpoint instanceof Error) + return Promise.reject(endpoint); // Load opts with default values if (opts.timeout == null) diff --git a/test/unit/service-broker.spec.js b/test/unit/service-broker.spec.js index 6c52b4a43..8b6a20295 100644 --- a/test/unit/service-broker.spec.js +++ b/test/unit/service-broker.spec.js @@ -1152,31 +1152,28 @@ describe("Test broker.findNextActionEndpoint", () => { }); it("should reject if no action", () => { - return broker.findNextActionEndpoint("posts.noaction").then(protectReject).catch(err => { - expect(err).toBeDefined(); - expect(err).toBeInstanceOf(ServiceNotFoundError); - expect(err.message).toBe("Service 'posts.noaction' is not found."); - expect(err.data).toEqual({ action: "posts.noaction", nodeID: undefined }); - }); + const err = broker.findNextActionEndpoint("posts.noaction"); + expect(err).toBeDefined(); + expect(err).toBeInstanceOf(ServiceNotFoundError); + expect(err.message).toBe("Service 'posts.noaction' is not found."); + expect(err.data).toEqual({ action: "posts.noaction", nodeID: undefined }); }); it("should reject if no handler", () => { broker.registry.unregisterAction({ id: broker.nodeID }, "posts.noHandler"); - return broker.findNextActionEndpoint("posts.noHandler", {}).then(protectReject).catch(err => { - expect(err).toBeDefined(); - expect(err).toBeInstanceOf(ServiceNotAvailable); - expect(err.message).toBe("Service 'posts.noHandler' is not available."); - expect(err.data).toEqual({ action: "posts.noHandler", nodeID: undefined }); - }); + const err = broker.findNextActionEndpoint("posts.noHandler", {}); + expect(err).toBeDefined(); + expect(err).toBeInstanceOf(ServiceNotAvailable); + expect(err.message).toBe("Service 'posts.noHandler' is not available."); + expect(err.data).toEqual({ action: "posts.noHandler", nodeID: undefined }); }); it("should reject if no action on node", () => { - return broker.findNextActionEndpoint("posts.noHandler", { nodeID: "node-123"}).then(protectReject).catch(err => { - expect(err).toBeDefined(); - expect(err).toBeInstanceOf(ServiceNotFoundError); - expect(err.message).toBe("Service 'posts.noHandler' is not found on 'node-123' node."); - expect(err.data).toEqual({ action: "posts.noHandler", nodeID: "node-123" }); - }); + const err = broker.findNextActionEndpoint("posts.noHandler", { nodeID: "node-123"}); + expect(err).toBeDefined(); + expect(err).toBeInstanceOf(ServiceNotFoundError); + expect(err.message).toBe("Service 'posts.noHandler' is not found on 'node-123' node."); + expect(err.data).toEqual({ action: "posts.noHandler", nodeID: "node-123" }); }); it("should find the endpoint with nodeID", () => {