Add node location access RPCs and operator visibility
This commit is contained in:
@@ -3,6 +3,8 @@ import {
|
||||
isValidRequest,
|
||||
parseMessage,
|
||||
parseNodeRegisterParams,
|
||||
parseNodeLocationSetParams,
|
||||
parseNodeLocationGetParams,
|
||||
makeResponse,
|
||||
makeError,
|
||||
makeEvent,
|
||||
@@ -104,6 +106,71 @@ describe('protocol', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseNodeLocationSetParams', () => {
|
||||
it('parses valid node location set params', () => {
|
||||
const parsed = parseNodeLocationSetParams({
|
||||
connectionId: 'conn-1',
|
||||
latitude: 40.7128,
|
||||
longitude: -74.0060,
|
||||
accuracyMeters: 12.5,
|
||||
source: 'gps',
|
||||
});
|
||||
expect(parsed).toEqual({
|
||||
connectionId: 'conn-1',
|
||||
latitude: 40.7128,
|
||||
longitude: -74.006,
|
||||
accuracyMeters: 12.5,
|
||||
altitudeMeters: undefined,
|
||||
headingDegrees: undefined,
|
||||
speedMps: undefined,
|
||||
source: 'gps',
|
||||
capturedAt: undefined,
|
||||
});
|
||||
});
|
||||
|
||||
it('rejects invalid node location set params', () => {
|
||||
expect(parseNodeLocationSetParams({
|
||||
connectionId: 'conn-1',
|
||||
latitude: 200,
|
||||
longitude: -74,
|
||||
})).toBeNull();
|
||||
expect(parseNodeLocationSetParams({
|
||||
connectionId: 'conn-1',
|
||||
latitude: 10,
|
||||
longitude: -190,
|
||||
})).toBeNull();
|
||||
expect(parseNodeLocationSetParams({
|
||||
connectionId: 'conn-1',
|
||||
latitude: 10,
|
||||
longitude: 20,
|
||||
source: 'beacon',
|
||||
})).toBeNull();
|
||||
expect(parseNodeLocationSetParams({
|
||||
connectionId: 'conn-1',
|
||||
latitude: 10,
|
||||
longitude: 20,
|
||||
headingDegrees: 361,
|
||||
})).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseNodeLocationGetParams', () => {
|
||||
it('parses valid node location get params', () => {
|
||||
const parsed = parseNodeLocationGetParams({
|
||||
connectionId: 'conn-1',
|
||||
});
|
||||
expect(parsed).toEqual({
|
||||
connectionId: 'conn-1',
|
||||
});
|
||||
});
|
||||
|
||||
it('rejects invalid node location get params', () => {
|
||||
expect(parseNodeLocationGetParams({})).toBeNull();
|
||||
expect(parseNodeLocationGetParams({ connectionId: '' })).toBeNull();
|
||||
expect(parseNodeLocationGetParams(null)).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('makeResponse', () => {
|
||||
it('creates a response message', () => {
|
||||
expect(makeResponse(1, { status: 'ok' })).toEqual({
|
||||
|
||||
Reference in New Issue
Block a user