Skip to content

Commit

Permalink
cherry-pick(#33797): fix(trace): in indexTree check isVisible bef…
Browse files Browse the repository at this point in the history
…ore adding to result (#33797)
  • Loading branch information
Skn0tt committed Nov 28, 2024
1 parent 1dc8b3c commit 008722b
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
8 changes: 5 additions & 3 deletions packages/web/src/components/treeView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,9 @@ function indexTree<T extends TreeItem>(
selectedItem: T | undefined,
expandedItems: Map<string, boolean | undefined>,
autoExpandDepth: number,
isVisible?: (item: T) => boolean): Map<T, TreeItemData> {
isVisible: (item: T) => boolean = () => true): Map<T, TreeItemData> {
if (!isVisible(rootItem))
return new Map();

const result = new Map<T, TreeItemData>();
const temporaryExpanded = new Set<string>();
Expand All @@ -328,9 +330,9 @@ function indexTree<T extends TreeItem>(
let lastItem: T | null = null;

const appendChildren = (parent: T, depth: number) => {
if (isVisible && !isVisible(parent))
return;
for (const item of parent.children as T[]) {
if (!isVisible(item))
continue;
const expandState = temporaryExpanded.has(item.id) || expandedItems.get(item.id);
const autoExpandMatches = autoExpandDepth > depth && result.size < 25 && expandState !== false;
const expanded = item.children.length ? expandState ?? autoExpandMatches : undefined;
Expand Down
24 changes: 24 additions & 0 deletions tests/playwright-test/ui-mode-trace.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -307,3 +307,27 @@ test('should show request source context id', async ({ runUITest, server }) => {
await expect(page.getByText('page#2')).toBeVisible();
await expect(page.getByText('api#1')).toBeVisible();
});

test('should filter actions tab on double-click', async ({ runUITest, server }) => {
const { page } = await runUITest({
'a.spec.ts': `
import { test, expect } from '@playwright/test';
test('pass', async ({ page }) => {
await page.goto('${server.EMPTY_PAGE}');
});
`,
});

await page.getByText('pass').dblclick();

const actionsTree = page.getByTestId('actions-tree');
await expect(actionsTree.getByRole('treeitem')).toHaveText([
/Before Hooks/,
/page.goto/,
/After Hooks/,
]);
await actionsTree.getByRole('treeitem', { name: 'page.goto' }).dblclick();
await expect(actionsTree.getByRole('treeitem')).toHaveText([
/page.goto/,
]);
});

0 comments on commit 008722b

Please sign in to comment.