5180 fichiers 38.5 Mo 0 téléchargements 252 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / common / layout / LayoutNotificationAlertView.autoclose.test.tsx
LayoutNotificationAlertView.autoclose.test.tsx 1.6 Ko Télécharger le fichier
import { render } from '@testing-library/react';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { LayoutNotificationAlertView } from './LayoutNotificationAlertView';

describe('LayoutNotificationAlertView auto close', () => {
    beforeEach(() => vi.useFakeTimers());
    afterEach(() => vi.useRealTimers());

    it('closes itself once the delay has passed', () => {
        const onClose = vi.fn();

        render(
            <LayoutNotificationAlertView title="Event" onClose={onClose} autoCloseSeconds={120}>
                <div />
            </LayoutNotificationAlertView>
        );

        vi.advanceTimersByTime(119_000);
        expect(onClose).not.toHaveBeenCalled();

        vi.advanceTimersByTime(1_000);
        expect(onClose).toHaveBeenCalledTimes(1);
    });

    it('stays open when no delay was given', () => {
        const onClose = vi.fn();

        render(
            <LayoutNotificationAlertView title="Broadcast" onClose={onClose}>
                <div />
            </LayoutNotificationAlertView>
        );

        vi.advanceTimersByTime(600_000);
        expect(onClose).not.toHaveBeenCalled();
    });

    it('does not close an alert the user already dismissed', () => {
        const onClose = vi.fn();

        const view = render(
            <LayoutNotificationAlertView title="Event" onClose={onClose} autoCloseSeconds={120}>
                <div />
            </LayoutNotificationAlertView>
        );

        view.unmount();
        vi.advanceTimersByTime(120_000);

        expect(onClose).not.toHaveBeenCalled();
    });
});
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