Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion web-common/src/components/virtualized-table/core/Cell.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,11 @@
</div>
<TooltipContent maxWidth="360px" slot="tooltip-content">
<TooltipTitle>
<FormattedDataType slot="name" value={tooltipValue} />
<FormattedDataType
slot="name"
value={tooltipValue}
color="text-fg-inverse"
/>
</TooltipTitle>
<TooltipShortcutContainer>
<div>
Expand Down
26 changes: 19 additions & 7 deletions web-local/tests/explores/annotations.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,14 +138,29 @@ function expectedDates(
return new Set(dates);
}

async function waitForTotalRecordsButton(page: Page, timeoutMs = 20_000) {
await expect(
page.getByRole("button", { name: /Total records/ }).first(),
).toBeVisible({ timeout: timeoutMs });
}

async function waitForTotalRecordsButtonWithSingleReload(page: Page) {
// This setup is occasionally flaky in CI due transient runtime connection
// issues. Reload once before failing to avoid a false-negative.
try {
await waitForTotalRecordsButton(page);
} catch {
await page.reload();
await waitForTotalRecordsButton(page);
}
}

async function setupDashboard(page: Page, dashboardTZ: string) {
await page.getByLabel("/dashboards").click();
await gotoNavEntry(page, "/dashboards/AdBids_metrics_explore.yaml");

// Wait for the base project to finish reconciling
await expect(
page.getByRole("button", { name: /Total records/ }).first(),
).toBeVisible({ timeout: 30_000 });
await waitForTotalRecordsButtonWithSingleReload(page);

// Write annotation files while still in the editor view. This triggers
// re-reconciliation in the background.
Expand All @@ -159,10 +174,7 @@ async function setupDashboard(page: Page, dashboardTZ: string) {
const base = new URL(page.url()).origin;
const exploreUrl = `${base}/explore/AdBids_metrics_explore?tz=${encodeURIComponent(dashboardTZ)}`;
await page.goto(exploreUrl);

await expect(
page.getByRole("button", { name: /Total records/ }).first(),
).toBeVisible({ timeout: 30_000 });
await waitForTotalRecordsButtonWithSingleReload(page);

// Wait for annotation query responses to arrive and the chart to
// finish re-rendering. Without this, menu interactions race against
Expand Down
Loading