n8n/packages/nodes-base/nodes/MQTT/test/GenericFunctions.test.ts
कारतोफ्फेलस्क्रिप्ट™ 164ec72c0d
refactor(MQTT Node): Refactor, fix duplicate triggers, and add Unit tests (#9847)
Co-authored-by: Elias Meire <elias@meire.dev>
2024-06-24 18:51:59 +02:00

39 lines
984 B
TypeScript

import { MqttClient } from 'mqtt';
import { mock } from 'jest-mock-extended';
import { createClient, type MqttCredential } from '../GenericFunctions';
describe('createClient', () => {
const mockConnect = jest.spyOn(MqttClient.prototype, 'connect').mockImplementation(function (
this: MqttClient,
) {
setImmediate(() => this.emit('connect', mock()));
return this;
});
beforeEach(() => jest.clearAllMocks());
it('should create a client with minimal credentials', async () => {
const credentials = mock<MqttCredential>({
protocol: 'mqtt',
host: 'localhost',
port: 1883,
clean: true,
clientId: 'testClient',
ssl: false,
});
const client = await createClient(credentials);
expect(mockConnect).toBeCalledTimes(1);
expect(client).toBeDefined();
expect(client).toBeInstanceOf(MqttClient);
expect(client.options).toMatchObject({
protocol: 'mqtt',
host: 'localhost',
port: 1883,
clean: true,
clientId: 'testClient',
});
});
});