5180 fichiers 38.5 Mo 0 téléchargements 142 vues mis à jour il y a 4 heures ui
nitro-v36-with-renderer-v36 / src / common / FloatingPopover.test.tsx
FloatingPopover.test.tsx 1.5 Ko Télécharger le fichier
/* @vitest-environment jsdom */

import { cleanup, fireEvent, render, screen } from '@testing-library/react';
import { afterEach, describe, expect, it } from 'vitest';
import { Popover, PopoverContent, PopoverTrigger } from './FloatingPopover';

describe('FloatingPopover', () => {
    afterEach(() => cleanup());

    it('keeps the content closed until the trigger is clicked', () => {
        render(
            <Popover>
                <PopoverTrigger>open</PopoverTrigger>
                <PopoverContent className="surface" positionerClassName="layer">
                    <span>inside</span>
                </PopoverContent>
            </Popover>
        );

        expect(screen.queryByText('inside')).toBeNull();

        fireEvent.click(screen.getByText('open'));

        const inside = screen.getByText('inside');

        expect(inside.closest('.surface')).not.toBeNull();
        expect(inside.closest('.layer')).not.toBeNull();
    });

    it('reports open changes for controlled use', () => {
        const changes: boolean[] = [];

        render(
            <Popover open={false} onOpenChange={(open) => changes.push(open)}>
                <PopoverTrigger>open</PopoverTrigger>
                <PopoverContent>
                    <span>inside</span>
                </PopoverContent>
            </Popover>
        );

        fireEvent.click(screen.getByText('open'));

        expect(changes).toEqual([true]);
        expect(screen.queryByText('inside')).toBeNull();
    });
});
15Sujets
1Dépôts
20Membres
7En 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