matterbridge-roborock-vacuum-plugin
Version:
Matterbridge Roborock Vacuum Plugin
23 lines • 1.33 kB
JavaScript
import { describe, expect, it } from 'vitest';
import { ProtocolVersion } from '../../../roborockCommunication/enums/index.js';
import { MessageContext, RequestMessage } from '../../../roborockCommunication/models/index.js';
import { MessageBodyBuilderFactory } from '../../../roborockCommunication/protocol/builders/messageBodyBuilderFactory.js';
import { mkUser } from '../../helpers/testUtils.js';
describe('MessageBodyBuilderFactory', () => {
it('returns known builders and throws for unknown version', () => {
const f = new MessageBodyBuilderFactory();
const b1 = f.getMessageBodyBuilder(ProtocolVersion.A01);
expect(typeof b1.buildPayload).toBe('function');
const b2 = f.getMessageBodyBuilder(ProtocolVersion.V1);
expect(typeof b2.buildPayload).toBe('function');
expect(() => f.getMessageBodyBuilder('ZZZ')).toThrow(/No message body builder/);
});
it('can return unknown builder when requested', () => {
const f = new MessageBodyBuilderFactory();
const ub = f.getMessageBodyBuilder('anything', true);
const ctx = new MessageContext(mkUser());
const req = new RequestMessage({ messageId: 1, timestamp: 10 });
expect(() => ub.buildPayload(req, ctx)).toThrow();
});
});
//# sourceMappingURL=messageBodyBuilderFactory.test.js.map