diff --git a/lib/extension/externalExtension.js b/lib/extension/externalExtension.js index 22ba8f31b..cb10a1e09 100644 --- a/lib/extension/externalExtension.js +++ b/lib/extension/externalExtension.js @@ -6,7 +6,7 @@ const data = require('./../util/data'); const path = require('path'); const logger = require('./../util/logger'); const stringify = require('json-stable-stringify-without-jsonify'); -const requestRegex = new RegExp(`${settings.get().mqtt.base_topic}/bridge/extension/request/(.*)`); +const requestRegex = new RegExp(`${settings.get().mqtt.base_topic}/bridge/request/extension/(.*)`); class ExternalExtension extends Extension { constructor(zigbee, mqtt, state, publishEntityState, eventBus, addExtension, enableDisableExtension) { @@ -57,11 +57,11 @@ class ExternalExtension extends Extension { message = utils.parseJSON(message, message); try { const response = await this.requestLookup[match[1].toLowerCase()](message); - await this.mqtt.publish(`bridge/extension/response/${match[1]}`, stringify(response)); + await this.mqtt.publish(`bridge/response/extension/${match[1]}`, stringify(response)); } catch (error) { logger.error(`Request '${topic}' failed with error: '${error.message}'`); const response = utils.getResponse(message, {}, error.message); - await this.mqtt.publish(`bridge/extension/response/${match[1]}`, stringify(response)); + await this.mqtt.publish(`bridge/response/extension/${match[1]}`, stringify(response)); } } } diff --git a/test/externalExtension.test.js b/test/externalExtension.test.js index 5a3ab1eec..7884e321f 100644 --- a/test/externalExtension.test.js +++ b/test/externalExtension.test.js @@ -54,7 +54,7 @@ describe('User extensions', () => { await controller.start(); await flushPromises(); MQTT.publish.mockClear(); - MQTT.events.message('zigbee2mqtt/bridge/extension/request/save', stringify({"name": "foo.js", "code": extensionCode})); + MQTT.events.message('zigbee2mqtt/bridge/request/extension/save', stringify({"name": "foo.js", "code": extensionCode})); await flushPromises(); expect(MQTT.publish).toHaveBeenCalledWith('zigbee2mqtt/bridge/extensions', stringify([{"name": "foo.js", "code": extensionCode}]), { retain: true, qos: 0 }, expect.any(Function)); expect(MQTT.publish).toHaveBeenCalledWith('zigbee2mqtt/example/extension', 'call from constructor', { retain: false, qos: 0 }, expect.any(Function)); @@ -68,9 +68,9 @@ describe('User extensions', () => { await controller.start(); await flushPromises(); MQTT.publish.mockClear(); - MQTT.events.message('zigbee2mqtt/bridge/extension/request/save', stringify({"name": "foo.js", "code": extensionCode})); + MQTT.events.message('zigbee2mqtt/bridge/request/extension/save', stringify({"name": "foo.js", "code": extensionCode})); await flushPromises(); - expect(MQTT.publish).toHaveBeenCalledWith('zigbee2mqtt/bridge/extension/response/save', stringify({"data":{},"error":"Unexpected identifier","status":"error"}), { retain: false, qos: 0 }, expect.any(Function)); + expect(MQTT.publish).toHaveBeenCalledWith('zigbee2mqtt/bridge/response/extension/save', stringify({"data":{},"error":"Unexpected identifier","status":"error"}), { retain: false, qos: 0 }, expect.any(Function)); }); });