Skip to content

Commit

Permalink
fix(ignore): Better fix for #17891 (#17951)
Browse files Browse the repository at this point in the history
* fix(ignore): Better fix for #17891

* remove onlythis
  • Loading branch information
Koenkk authored Jun 8, 2023
1 parent 7df6b2b commit a7e02a7
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
7 changes: 3 additions & 4 deletions lib/mqtt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,9 @@ export default class MQTT {
}, utils.seconds(10));

logger.info('Connected to MQTT server');
await this.publishStateOnline();

if (this.initialConnect) {
await this.publishStateOnline();
} else {
if (!this.initialConnect) {
this.republishRetainedTimer = setTimeout(() => {
// Republish retained messages in case MQTT broker does not persist them.
// https://github.com/Koenkk/zigbee2mqtt/issues/9629
Expand Down Expand Up @@ -141,7 +140,7 @@ export default class MQTT {
this.eventBus.emitMQTTMessage({topic, message: message + ''});
}

if (this.republishRetainedTimer && topic == `${settings.get().mqtt.base_topic}/bridge/state`) {
if (this.republishRetainedTimer && topic === `${settings.get().mqtt.base_topic}/bridge/info`) {
clearTimeout(this.republishRetainedTimer);
this.republishRetainedTimer = null;
}
Expand Down
7 changes: 4 additions & 3 deletions test/controller.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -651,7 +651,7 @@ describe('Controller', () => {
MQTT.events['connect']();
await flushPromises();
jest.runOnlyPendingTimers();
expect(MQTT.publish).toHaveBeenCalledTimes(12);
expect(MQTT.publish).toHaveBeenCalledTimes(13);
expect(MQTT.publish).toHaveBeenCalledWith('zigbee2mqtt/bridge/info', expect.any(String), { retain: true, qos: 0 }, expect.any(Function));
});

Expand All @@ -660,9 +660,10 @@ describe('Controller', () => {
MQTT.publish.mockClear();
MQTT.events['connect']();
await flushPromises();
await MQTT.events.message('zigbee2mqtt/bridge/state', 'online');
await MQTT.events.message('zigbee2mqtt/bridge/info', 'dummy');
jest.runOnlyPendingTimers();
expect(MQTT.publish).toHaveBeenCalledTimes(0);
expect(MQTT.publish).toHaveBeenCalledTimes(1);
expect(MQTT.publish).toHaveBeenCalledWith('zigbee2mqtt/bridge/state', expect.any(String), { retain: true, qos: 0 }, expect.any(Function));
});

it('Should prevent any message being published with retain flag when force_disable_retain is set', async () => {
Expand Down

0 comments on commit a7e02a7

Please sign in to comment.