5180 fichiers 38.5 Mo 0 téléchargements 259 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / hooks / inventory / badgeWearSender.test.ts
badgeWearSender.test.ts 1.2 Ko Télécharger le fichier
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { createTrailingSender } from './badgeWearSender';

describe('createTrailingSender', () => {
    beforeEach(() => vi.useFakeTimers());
    afterEach(() => vi.useRealTimers());

    it('sends only the last value of a quick run', () => {
        const send = vi.fn();
        const sender = createTrailingSender<string[]>(send, 300);

        sender.push(['a']);
        vi.advanceTimersByTime(100);
        sender.push(['a', 'b']);
        vi.advanceTimersByTime(100);
        sender.push(['b']);
        expect(sender.isPending()).toBe(true);

        vi.advanceTimersByTime(300);
        expect(send).toHaveBeenCalledTimes(1);
        expect(send).toHaveBeenCalledWith(['b']);
        expect(sender.isPending()).toBe(false);
    });

    it('flush sends the waiting value at once and only once', () => {
        const send = vi.fn();
        const sender = createTrailingSender<number>(send, 300);

        sender.push(1);
        sender.flush();
        vi.advanceTimersByTime(300);
        sender.flush();

        expect(send).toHaveBeenCalledTimes(1);
        expect(send).toHaveBeenCalledWith(1);
    });
});
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser