import { describe, it, expect } from 'vitest' import { isCotFirstByte, COT_FIRST_BYTE_TAK, COT_FIRST_BYTE_XML } from '../../server/utils/cotRouter.js' describe('cotRouter', () => { describe('isCotFirstByte', () => { it('returns true for TAK Protocol (0xBF)', () => { expect(isCotFirstByte(0xBF)).toBe(true) expect(isCotFirstByte(COT_FIRST_BYTE_TAK)).toBe(true) }) it('returns true for traditional XML (<)', () => { expect(isCotFirstByte(0x3C)).toBe(true) expect(isCotFirstByte(COT_FIRST_BYTE_XML)).toBe(true) }) it('returns false for HTTP-like first bytes', () => { expect(isCotFirstByte(0x47)).toBe(false) // 'G' GET expect(isCotFirstByte(0x50)).toBe(false) // 'P' POST expect(isCotFirstByte(0x48)).toBe(false) // 'H' HEAD }) it('returns false for other bytes', () => { expect(isCotFirstByte(0x00)).toBe(false) expect(isCotFirstByte(0x16)).toBe(false) // TLS client hello }) }) })