mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
e610cfeef4
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.
28 lines
1.0 KiB
TypeScript
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());
|
|
});
|
|
});
|