5180 fichiers 38.5 Mo 0 téléchargements 553 vues mis à jour il y a 8 heures ui
nitro-v36-with-renderer-v36 / src / components / catalog / views / page / common / catalogAirGrid.helpers.test.ts
catalogAirGrid.helpers.test.ts 1.2 Ko Télécharger le fichier
/* @vitest-environment jsdom */
import { describe, expect, it } from 'vitest';
import { getVisibleAirGridEntries } from './catalogAirGrid.helpers';

describe('getVisibleAirGridEntries', () => {
    const entry = (index: number, y: number, height: number) => ({ offer: { offerId: index } as any, index, x: 0, y, width: 36, height });
    const entries = [entry(0, 0, 36), entry(1, 36, 36), entry(2, 500, 74), entry(3, 1000, 36)];

    it('returns the entries intersecting the viewport plus the overscan', () => {
        expect(getVisibleAirGridEntries(entries, 0, 100, 0).map((e) => e.index)).toEqual([0, 1]);
        expect(getVisibleAirGridEntries(entries, 0, 100, 450).map((e) => e.index)).toEqual([0, 1, 2]);
        expect(getVisibleAirGridEntries(entries, 480, 100, 0).map((e) => e.index)).toEqual([2]);
    });
    it('keeps an entry that starts above the window but ends inside it', () => {
        expect(getVisibleAirGridEntries(entries, 20, 10, 0).map((e) => e.index)).toEqual([0]);
    });
    it('returns every entry while the viewport is unmeasured', () => {
        expect(getVisibleAirGridEntries(entries, 0, 0)).toBe(entries);
    });
    it('handles an empty layout', () => {
        expect(getVisibleAirGridEntries([], 0, 100)).toEqual([]);
    });
});
15Sujets
1Dépôts
20Membres
4En 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