Files
advanced-camera-card/tests/camera-manager/utils/go2rtc-endpoint.test.ts
T
Dermot Duffy 1e821f09c6 fix: Improve 2-way audio detection (#2293)
- For Frigate cameras, you must be running at least [integration
v5.12.0](https://github.com/blakeblackshear/frigate-hass-integration/releases/tag/v5.12.0).
 - Closes: #2191 

Includes a significant refactor of cameras, and the introduction of a
`2-way-audio` capability that is dynamically fetched from `go2rtc`. One
gotcha is if you previously had a substream with 2-way audio, you may
need to modify

```yaml
 - camera_entity: camera.foo
    capabilities:
      disable_except:
        - substream
```

... to ...

```yaml
 - camera_entity: camera.foo
    capabilities:
      disable_except:
        - substream
        - 2-way-audio
```
2025-12-20 13:06:09 -08:00

84 lines
2.0 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
getGo2RTCMetadataEndpoint,
getGo2RTCStreamEndpoint,
} from '../../../src/camera-manager/utils/go2rtc/endpoint.js';
import { createCameraConfig } from '../../test-utils.js';
describe('getGo2RTCStreamEndpoint', () => {
it('with local configuration', () => {
expect(
getGo2RTCStreamEndpoint(
createCameraConfig({
go2rtc: {
stream: 'stream',
url: '/local/path',
},
}),
),
).toEqual({
endpoint: '/local/path/api/ws?src=stream',
sign: true,
});
});
it('with remote configuration', () => {
expect(
getGo2RTCStreamEndpoint(
createCameraConfig({
go2rtc: {
stream: 'stream',
url: 'https://my-custom-go2rtc',
},
}),
),
).toEqual({
endpoint: 'https://my-custom-go2rtc/api/ws?src=stream',
sign: false,
});
});
it('without configuration', () => {
expect(getGo2RTCStreamEndpoint(createCameraConfig())).toBeNull();
});
});
describe('getGo2RTCMetadataEndpoint', () => {
it('with local configuration', () => {
expect(
getGo2RTCMetadataEndpoint(
createCameraConfig({
go2rtc: {
stream: 'stream',
url: '/local/path',
},
}),
),
).toEqual({
endpoint: '/local/path/api/streams?src=stream&video=all&audio=all&microphone',
sign: true,
});
});
it('with remote configuration', () => {
expect(
getGo2RTCMetadataEndpoint(
createCameraConfig({
go2rtc: {
stream: 'stream',
url: 'https://my-custom-go2rtc',
},
}),
),
).toEqual({
endpoint:
'https://my-custom-go2rtc/api/streams?src=stream&video=all&audio=all&microphone',
sign: false,
});
});
it('without configuration', () => {
expect(getGo2RTCMetadataEndpoint(createCameraConfig())).toBeNull();
});
});