Tracing: Span filters reset show matches only (#75150)

* Reset show matches only when clear button pressed

* Add test

* Update test
This commit is contained in:
Joey
2023-09-22 09:02:38 +01:00
committed by GitHub
parent fb494c8880
commit e0659c05da
3 changed files with 14 additions and 5 deletions
@@ -64,9 +64,10 @@ export default memo(function TracePageSearchBar(props: TracePageSearchBarProps)
search.tags.length > 1 ||
search.tags.some((tag) => {
return tag.key;
})
}) ||
showSpanFilterMatchesOnly
);
}, [search.serviceName, search.spanName, search.from, search.to, search.tags]);
}, [search.serviceName, search.spanName, search.from, search.to, search.tags, showSpanFilterMatchesOnly]);
return (
<div className={styles.container}>
@@ -45,12 +45,13 @@ describe('SpanFilters', () => {
let user: ReturnType<typeof userEvent.setup>;
const SpanFiltersWithProps = ({ showFilters = true }) => {
const [search, setSearch] = useState(defaultFilters);
const [showSpanFilterMatchesOnly, setShowSpanFilterMatchesOnly] = useState(false);
const props = {
trace: trace,
showSpanFilters: showFilters,
setShowSpanFilters: jest.fn(),
showSpanFilterMatchesOnly: false,
setShowSpanFilterMatchesOnly: jest.fn(),
showSpanFilterMatchesOnly,
setShowSpanFilterMatchesOnly,
search,
setSearch,
spanFilterMatches: undefined,
@@ -210,12 +211,18 @@ describe('SpanFilters', () => {
await selectAndCheckValue(user, tagKey, 'TagKey0');
await selectAndCheckValue(user, tagValue, 'TagValue0');
const matchesSwitch = screen.getByRole('checkbox', { name: 'Show matches only switch' });
expect(matchesSwitch).not.toBeChecked();
await user.click(matchesSwitch);
expect(matchesSwitch).toBeChecked();
expect((clearFiltersButton as HTMLButtonElement)['disabled']).toBe(false);
await user.click(clearFiltersButton);
expect(screen.queryByText('Service0')).not.toBeInTheDocument();
expect(screen.queryByText('Span0')).not.toBeInTheDocument();
expect(screen.queryByText('TagKey0')).not.toBeInTheDocument();
expect(screen.queryByText('TagValue0')).not.toBeInTheDocument();
expect(matchesSwitch).not.toBeChecked();
});
it('renders buttons when span filters is collapsed', async () => {
@@ -69,7 +69,8 @@ export const SpanFilters = memo((props: SpanFilterProps) => {
setTagKeys(undefined);
setTagValues({});
setSearch(defaultFilters);
}, [setSearch]);
setShowSpanFilterMatchesOnly(false);
}, [setSearch, setShowSpanFilterMatchesOnly]);
useEffect(() => {
clear();