import { expect, tap } from '@git.zone/tstest/tapbundle'; import { ShellyMapper } from '../../ts/integrations/shelly/index.js'; const snapshot = { deviceInfo: { id: 'shellyplus1pm-a8032abe54dc', mac: 'A8032ABE54DC', model: 'SNSW-001P16EU', gen: 2, ver: '1.0.0', }, status: { sys: { mac: 'A8032ABE54DC', uptime: 120, }, 'switch:0': { id: 0, source: 'init', output: true, apower: 8.9, voltage: 237.5, aenergy: { total: 6.532, }, temperature: { tC: 23.5, }, }, }, deviceConfig: { sys: { device: { name: 'Kitchen Plug', }, }, 'switch:0': { name: 'Counter Outlet', }, }, }; tap.test('maps Shelly switch status to canonical device features and entities', async () => { const devices = ShellyMapper.toDevices(snapshot); const entities = ShellyMapper.toEntities(snapshot); expect(devices[0].id).toEqual('shelly.device.shellyplus1pm_a8032abe54dc'); expect(devices[0].features.some((featureArg) => featureArg.id === 'switch_0_power')).toBeTrue(); expect(entities[0].id).toEqual('switch.kitchen_plug_0'); expect(entities.some((entityArg) => entityArg.id === 'sensor.kitchen_plug_0_energy')).toBeTrue(); }); export default tap.start();