Files
Nitro-V3/src/hooks/navigator/useNavigatorStore.test.tsx
T
simoleo89 e610cfeef4 feat(navigator): reactive favourites via fine-grained store (P3)
Move favourite room ids out of the useBetween navigator store into a
dedicated Zustand store. useNavigatorFavourite(roomId) subscribes only
to s.ids.has(roomId) (a boolean), so a FavouriteChangedEvent for one
room no longer re-renders every favourite-aware view. apply() returns
the same state reference when membership is unchanged.
2026-05-31 01:03:31 +02:00

28 lines
1.0 KiB
TypeScript

import { renderHook } from '@testing-library/react';
import { describe, expect, it } from 'vitest';
import { useNavigatorData, useNavigatorUiState } from './index';
describe('navigator filter shapes (smoke)', () =>
{
it('useNavigatorData returns the documented keys', () =>
{
const { result } = renderHook(() => useNavigatorData());
expect(Object.keys(result.current).sort()).toEqual([
'categories', 'eventCategories',
'navigatorData', 'navigatorSearches',
'topLevelContext', 'topLevelContexts'
].sort());
});
it('useNavigatorUiState returns the 11 documented flags', () =>
{
const { result } = renderHook(() => useNavigatorUiState());
expect(Object.keys(result.current).sort()).toEqual([
'currentFilter', 'currentTabCode',
'isCreatorOpen', 'isLoading', 'isOpenSavesSearches',
'isReady', 'isRoomInfoOpen', 'isRoomLinkOpen', 'isVisible',
'needsInit', 'needsSearch'
].sort());
});
});