mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
68 lines
2.2 KiB
TypeScript
68 lines
2.2 KiB
TypeScript
import { renderHook, act } from '@testing-library/react-hooks';
|
|
|
|
import { TraceSpan } from '@jaegertracing/jaeger-ui-components';
|
|
|
|
import { useChildrenState } from './useChildrenState';
|
|
|
|
describe('useChildrenState', () => {
|
|
describe('childrenToggle', () => {
|
|
it('toggles children state', async () => {
|
|
const { result } = renderHook(() => useChildrenState());
|
|
expect(result.current.childrenHiddenIDs.size).toBe(0);
|
|
act(() => result.current.childrenToggle('testId'));
|
|
|
|
expect(result.current.childrenHiddenIDs.size).toBe(1);
|
|
expect(result.current.childrenHiddenIDs.has('testId')).toBe(true);
|
|
|
|
act(() => result.current.childrenToggle('testId'));
|
|
|
|
expect(result.current.childrenHiddenIDs.size).toBe(0);
|
|
});
|
|
});
|
|
|
|
describe('expandAll', () => {
|
|
it('expands all', async () => {
|
|
const { result } = renderHook(() => useChildrenState());
|
|
act(() => result.current.childrenToggle('testId1'));
|
|
act(() => result.current.childrenToggle('testId2'));
|
|
|
|
expect(result.current.childrenHiddenIDs.size).toBe(2);
|
|
|
|
act(() => result.current.expandAll());
|
|
|
|
expect(result.current.childrenHiddenIDs.size).toBe(0);
|
|
});
|
|
});
|
|
|
|
describe('collapseAll', () => {
|
|
it('hides spans that have children', async () => {
|
|
const { result } = renderHook(() => useChildrenState());
|
|
act(() =>
|
|
result.current.collapseAll([
|
|
{ spanID: 'span1', hasChildren: true } as TraceSpan,
|
|
{ spanID: 'span2', hasChildren: false } as TraceSpan,
|
|
])
|
|
);
|
|
|
|
expect(result.current.childrenHiddenIDs.size).toBe(1);
|
|
expect(result.current.childrenHiddenIDs.has('span1')).toBe(true);
|
|
});
|
|
|
|
it('does nothing if already collapsed', async () => {
|
|
const { result } = renderHook(() => useChildrenState());
|
|
act(() => result.current.childrenToggle('span1'));
|
|
act(() =>
|
|
result.current.collapseAll([
|
|
{ spanID: 'span1', hasChildren: true } as TraceSpan,
|
|
{ spanID: 'span2', hasChildren: false } as TraceSpan,
|
|
])
|
|
);
|
|
|
|
expect(result.current.childrenHiddenIDs.size).toBe(1);
|
|
expect(result.current.childrenHiddenIDs.has('span1')).toBe(true);
|
|
});
|
|
});
|
|
|
|
// Other function are not yet used.
|
|
});
|