import { afterEach, expect, it, vi } from 'vitest'; import { EventBuffer } from '@pipu/core'; import { eventId } from '../src/player/eventId'; afterEach(() => vi.unstubAllGlobals()); it('queues restored-track events on Hermes without Web Crypto', () => { vi.stubGlobal('crypto', undefined); const nativeUuid = vi.fn() .mockReturnValueOnce('00000000-0000-4fff-bfff-ffffffffffff') .mockReturnValueOnce('00000000-0000-4fff-bfff-fffffffffffe'); vi.stubGlobal('expo', { uuidv4: nativeUuid }); const buffer = new EventBuffer({ send: vi.fn() }, () => 0x0190_0000_0000, undefined, eventId); buffer.push({ type: 'play_start', track_id: 'restored-track' }); buffer.push({ type: 'skip', track_id: 'restored-track' }); expect(buffer.pending[0]?.id).toBe('01900000-0000-7fff-bfff-ffffffffffff'); expect(buffer.pending[1]?.id).not.toBe(buffer.pending[0]?.id); expect(nativeUuid).toHaveBeenCalledTimes(2); });