import { expect, tap } from '@git.zone/tstest/tapbundle';
import { RokuMapper } from '../../ts/integrations/roku/index.js';

const snapshot = {
  deviceInfo: {
    deviceId: 'roku-ecp-123456',
    vendorName: 'Roku',
    modelName: 'Roku Streaming Stick',
    friendlyDeviceName: 'Living Room Roku',
    powerMode: 'PowerOn',
  },
  apps: [
    { id: '12', name: 'Netflix' },
    { id: '13', name: 'Prime Video' },
  ],
  activeApp: { id: '12', name: 'Netflix' },
};

tap.test('maps Roku ECP snapshots to media devices and entities', async () => {
  const devices = RokuMapper.toDevices(snapshot);
  const entities = RokuMapper.toEntities(snapshot);
  expect(devices[0].id).toEqual('roku.device.roku_ecp_123456');
  expect(devices[0].state.some((stateArg) => stateArg.featureId === 'active_app' && stateArg.value === 'Netflix')).toBeTrue();
  expect(entities[0].platform).toEqual('media_player');
  expect(entities[0].state).toEqual('on');
});

export default tap.start();
