5180 fichiers 38.5 Mo 0 téléchargements 195 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / hooks / wired / wiredLabelStore.test.ts
wiredLabelStore.test.ts 1.8 Ko Télécharger le fichier
import { beforeEach, describe, expect, it } from 'vitest';
import { useWiredLabelStore } from './wiredLabelStore';

const label = (furnitureId: number, text = 'note') => ({ furnitureId, text, color: 4278912, visibility: 0, alwaysOpen: false });

describe('wiredLabelStore', () => {
    beforeEach(() => useWiredLabelStore.getState().clear());

    it('replaces the list and keeps only open labels that still exist', () => {
        const store = useWiredLabelStore.getState();

        store.replace([ label(1), label(2) ]);
        store.toggle(1);
        store.toggle(2);
        store.replace([ label(2) ]);

        expect(Object.keys(useWiredLabelStore.getState().labels)).toEqual([ '2' ]);
        expect(useWiredLabelStore.getState().openIds).toEqual([ 2 ]);
    });

    it('applies changes and removals', () => {
        const store = useWiredLabelStore.getState();

        store.replace([ label(1), label(2) ]);
        store.openSettings(2);
        store.update([ label(1, 'changed') ], [ 2 ]);

        expect(useWiredLabelStore.getState().labels[1].text).toBe('changed');
        expect(useWiredLabelStore.getState().labels[2]).toBeUndefined();
        expect(useWiredLabelStore.getState().settingsId).toBe(0);
    });

    it('only opens, hovers and configures furni that have a label', () => {
        const store = useWiredLabelStore.getState();

        store.replace([ label(1) ]);
        store.toggle(9);
        store.setHovered(9, true);
        store.openSettings(9);
        expect(useWiredLabelStore.getState()).toMatchObject({ openIds: [], hoveredId: 0, settingsId: 0 });

        store.toggle(1);
        store.toggle(1);
        store.setHovered(1, true);
        expect(useWiredLabelStore.getState()).toMatchObject({ openIds: [], hoveredId: 1 });
        store.setHovered(1, false);
        expect(useWiredLabelStore.getState().hoveredId).toBe(0);
    });
});
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