import { expect, tap } from '@git.zone/tstest/tapbundle'; import { DlnaDmrMapper } from '../../ts/integrations/dlna_dmr/index.js'; import type { IDlnaDmrSnapshot } from '../../ts/integrations/dlna_dmr/index.js'; tap.test('maps DLNA renderer snapshots to canonical devices and entities', async () => { const snapshot: IDlnaDmrSnapshot = { device: { location: 'http://192.168.1.50:8000/description.xml', udn: 'uuid:renderer-1', deviceType: 'urn:schemas-upnp-org:device:MediaRenderer:1', friendlyName: 'Living Room Renderer', manufacturer: 'Example', modelName: 'DMR 1', services: {}, }, state: { online: true, transport: { currentTransportState: 'PLAYING', currentTransportActions: ['Play', 'Pause', 'Stop'], }, rendering: { volume: 42, muted: false, presets: ['FactoryDefaults', 'Movie'], selectedPreset: 'Movie', }, media: { currentTrackUri: 'http://media.local/song.mp3', metadata: { title: 'Test Song', artist: 'Test Artist', album: 'Test Album', upnpClass: 'object.item.audioItem.musicTrack', }, position: { trackDurationSeconds: 240, relativeTimeSeconds: 12, }, }, sinkProtocolInfo: ['http-get:*:audio/mpeg:*'], updatedAt: '2026-01-01T00:00:00.000Z', }, }; const devices = DlnaDmrMapper.toDevices(snapshot); const entities = DlnaDmrMapper.toEntities(snapshot); expect(devices[0].id).toEqual('dlna_dmr.renderer.uuid_renderer_1'); expect(devices[0].state.find((stateArg) => stateArg.featureId === 'playback')?.value).toEqual('playing'); expect(entities[0].id).toEqual('media_player.living_room_renderer'); expect(entities[0].state).toEqual('playing'); expect(entities[0].attributes?.volumeLevel).toEqual(0.42); expect(entities[0].attributes?.mediaContentType).toEqual('music'); }); export default tap.start();