const { classifyMdmAvDevice, AV_CATEGORIES, AV_FRIENDLY_NAME_PATTERN } = require('../constants'); describe('AV_FRIENDLY_NAME_PATTERN', () => { it('matches the four AV markers (case-insensitive for AppleTV)', () => { expect(AV_FRIENDLY_NAME_PATTERN.test('US000782AppleTV01')).toBe(true); expect(AV_FRIENDLY_NAME_PATTERN.test('US000782appletv01')).toBe(true); expect(AV_FRIENDLY_NAME_PATTERN.test('US000782VW1')).toBe(true); expect(AV_FRIENDLY_NAME_PATTERN.test('US000782MSC1')).toBe(true); expect(AV_FRIENDLY_NAME_PATTERN.test('US000782LED1')).toBe(true); }); it('does not match non-AV markers', () => { expect(AV_FRIENDLY_NAME_PATTERN.test('US000782IPH04')).toBe(false); expect(AV_FRIENDLY_NAME_PATTERN.test('US000782SRV01')).toBe(false); expect(AV_FRIENDLY_NAME_PATTERN.test('US000782MR03')).toBe(false); expect(AV_FRIENDLY_NAME_PATTERN.test('US000782CD01')).toBe(false); }); }); describe('classifyMdmAvDevice', () => { it('classifies AppleTV first (most specific)', () => { expect(classifyMdmAvDevice('US000782AppleTV01')).toBe(AV_CATEGORIES.APPLE_TV); }); it('classifies video walls / music / LED based on the marker', () => { expect(classifyMdmAvDevice('US000782VW1')).toBe(AV_CATEGORIES.VIDEO_WALL); expect(classifyMdmAvDevice('US000782MSC1')).toBe(AV_CATEGORIES.MUSIC); expect(classifyMdmAvDevice('US000782LED1')).toBe(AV_CATEGORIES.LED); }); it('returns null for non-AV MDM names', () => { expect(classifyMdmAvDevice('US000782IPH04')).toBeNull(); expect(classifyMdmAvDevice('US000782SRV01')).toBeNull(); expect(classifyMdmAvDevice('US000782CD01')).toBeNull(); expect(classifyMdmAvDevice('')).toBeNull(); expect(classifyMdmAvDevice(null)).toBeNull(); }); it('accepts either a raw friendly-name string or an MDM device object', () => { expect(classifyMdmAvDevice({ DeviceFriendlyName: 'US000782VW2' })).toBe( AV_CATEGORIES.VIDEO_WALL ); expect(classifyMdmAvDevice({ UserName: 'US000782AppleTV03' })).toBe(AV_CATEGORIES.APPLE_TV); }); });