From f17410a85b3ee7d23afc194844686d94a901c7f0 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Fri, 11 Sep 2015 11:38:22 -0700 Subject: [PATCH] [Capabilities] Avoid erroneous logging Fix logic error which caused an inaccurate warning to be logged when capabilities are overridden by priority. Addresses #49. --- .../src/capabilities/CoreCapabilityProvider.js | 5 +++-- .../capabilities/CoreCapabilityProviderSpec.js | 14 +++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/platform/core/src/capabilities/CoreCapabilityProvider.js b/platform/core/src/capabilities/CoreCapabilityProvider.js index 7b1ba070d7..8240f9fa89 100644 --- a/platform/core/src/capabilities/CoreCapabilityProvider.js +++ b/platform/core/src/capabilities/CoreCapabilityProvider.js @@ -67,8 +67,9 @@ define( function packageCapabilities(capabilities) { var result = {}; capabilities.forEach(function (capability) { - if (capability.key && !result[capability.key]) { - result[capability.key] = capability; + if (capability.key) { + result[capability.key] = + result[capability.key] || capability; } else { $log.warn("No key defined for capability; skipping."); } diff --git a/platform/core/test/capabilities/CoreCapabilityProviderSpec.js b/platform/core/test/capabilities/CoreCapabilityProviderSpec.js index ae42d02ccb..26df72c4d7 100644 --- a/platform/core/test/capabilities/CoreCapabilityProviderSpec.js +++ b/platform/core/test/capabilities/CoreCapabilityProviderSpec.js @@ -86,7 +86,19 @@ define( expect(mockLog.warn).not.toHaveBeenCalled(); }); + it("prefers higher-priority capability", function () { + KeylessCapability.key = BasicCapability.key; + expect(provider.getCapabilities({}).basic) + .toEqual(BasicCapability); + }); + + // https://github.com/nasa/openmctweb/issues/49 + it("does not log a warning for multiple capabilities with the same key", function () { + KeylessCapability.key = BasicCapability.key; + provider.getCapabilities({}); + expect(mockLog.warn).not.toHaveBeenCalled(); + }); }); } -); \ No newline at end of file +);