import keepLoginAlive from './keep-login-alive'; import { describe, expect, it, vi } from 'vitest'; vi.useFakeTimers(); const pingInterval = 100; describe('Keep Login Alive', () => { keepLoginAlive.pingInterval = pingInterval; it('should ping every x seconds after start', () => { keepLoginAlive.ping = vi.fn(); keepLoginAlive.start(); expect(keepLoginAlive.ping).not.toHaveBeenCalled(); vi.advanceTimersByTime(pingInterval); expect(keepLoginAlive.ping).toHaveBeenCalled(); vi.advanceTimersByTime(pingInterval); expect(keepLoginAlive.ping).toHaveBeenCalledTimes(2); }); it('should stop pinging after stopping', () => { keepLoginAlive.ping = vi.fn(); keepLoginAlive.start(); vi.advanceTimersByTime(pingInterval); expect(keepLoginAlive.ping).toHaveBeenCalledTimes(1); keepLoginAlive.stop(); vi.advanceTimersByTime(pingInterval); expect(keepLoginAlive.ping).toHaveBeenCalledTimes(1); }); });