Skip to content

Commit

Permalink
Merge 30aef22 into f080b48
Browse files Browse the repository at this point in the history
  • Loading branch information
nmarus committed Jul 27, 2018
2 parents f080b48 + 30aef22 commit ec69e60
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
14 changes: 13 additions & 1 deletion src/transporters/mqtt.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class MqttTransporter extends Transporter {
});

client.on("message", (topic, msg) => {
const cmd = topic.split(".")[1];
const cmd = topic.split("/")[1];
this.incomingMessage(cmd, msg);
});

Expand All @@ -94,6 +94,18 @@ class MqttTransporter extends Transporter {
}
}

/**
* Get topic name from command & target nodeID
*
* @param {any} cmd
* @param {any} nodeID
*
* @memberof MqttTransporter
*/
getTopicName(cmd, nodeID) {
return this.prefix + "/" + cmd + (nodeID ? "/" + nodeID : "");
}

/**
* Subscribe to a command
*
Expand Down
6 changes: 3 additions & 3 deletions test/unit/transporters/mqtt.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,12 @@ describe("Test MqttTransporter subscribe & publish", () => {
transporter.subscribe("REQ", "node");

expect(transporter.client.subscribe).toHaveBeenCalledTimes(1);
expect(transporter.client.subscribe).toHaveBeenCalledWith("MOL-TEST.REQ.node");
expect(transporter.client.subscribe).toHaveBeenCalledWith("MOL-TEST/REQ/node");
});

it("check incoming message handler", () => {
// Test subscribe callback
transporter.client.onCallbacks.message("prefix.event.name", "incoming data");
transporter.client.onCallbacks.message("prefix/event/name", "incoming data");
expect(transporter.incomingMessage).toHaveBeenCalledTimes(1);
expect(transporter.incomingMessage).toHaveBeenCalledWith("event", "incoming data");
});
Expand All @@ -135,7 +135,7 @@ describe("Test MqttTransporter subscribe & publish", () => {
const packet = new P.Packet(P.PACKET_INFO, "node2", { services: {} });
transporter.publish(packet).catch(protectReject).then(() => {
expect(transporter.client.publish).toHaveBeenCalledTimes(1);
expect(transporter.client.publish).toHaveBeenCalledWith("MOL-TEST.INFO.node2", "json data", jasmine.any(Function));
expect(transporter.client.publish).toHaveBeenCalledWith("MOL-TEST/INFO/node2", "json data", jasmine.any(Function));

expect(transporter.serialize).toHaveBeenCalledTimes(1);
expect(transporter.serialize).toHaveBeenCalledWith(packet);
Expand Down

0 comments on commit ec69e60

Please sign in to comment.