feat(gateway): add node capability negotiation foundation
This commit is contained in:
@@ -2,6 +2,7 @@ import { describe, it, expect } from 'vitest';
|
||||
import {
|
||||
isValidRequest,
|
||||
parseMessage,
|
||||
parseNodeRegisterParams,
|
||||
makeResponse,
|
||||
makeError,
|
||||
makeEvent,
|
||||
@@ -60,6 +61,49 @@ describe('protocol', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseNodeRegisterParams', () => {
|
||||
it('parses valid node registration params', () => {
|
||||
const parsed = parseNodeRegisterParams({
|
||||
connectionId: 'conn-1',
|
||||
nodeId: 'node-a',
|
||||
role: 'companion',
|
||||
protocolVersion: 1,
|
||||
capabilities: ['ui.canvas', 'notifications'],
|
||||
});
|
||||
expect(parsed).toEqual({
|
||||
connectionId: 'conn-1',
|
||||
nodeId: 'node-a',
|
||||
role: 'companion',
|
||||
protocolVersion: 1,
|
||||
capabilities: ['ui.canvas', 'notifications'],
|
||||
});
|
||||
});
|
||||
|
||||
it('rejects invalid node registration params', () => {
|
||||
expect(parseNodeRegisterParams({
|
||||
connectionId: 'conn-1',
|
||||
nodeId: '',
|
||||
role: 'companion',
|
||||
protocolVersion: 1,
|
||||
capabilities: [],
|
||||
})).toBeNull();
|
||||
expect(parseNodeRegisterParams({
|
||||
connectionId: 'conn-1',
|
||||
nodeId: 'node',
|
||||
role: 'companion',
|
||||
protocolVersion: 0,
|
||||
capabilities: [],
|
||||
})).toBeNull();
|
||||
expect(parseNodeRegisterParams({
|
||||
connectionId: 'conn-1',
|
||||
nodeId: 'node',
|
||||
role: 'companion',
|
||||
protocolVersion: 1,
|
||||
capabilities: [1],
|
||||
})).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('makeResponse', () => {
|
||||
it('creates a response message', () => {
|
||||
expect(makeResponse(1, { status: 'ok' })).toEqual({
|
||||
|
||||
Reference in New Issue
Block a user