29 lines
973 B
TypeScript
29 lines
973 B
TypeScript
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();
|