Initial curated EventLens source from 0d80d3b38dfb817285481665b9e71e4b8a0656a0
This commit is contained in:
commit
663ea8c829
85 files changed
+12395
No files matched your search
@@ -0,0 +1,22 @@
|
||||
import { expect, test } from "@playwright/test";
|
||||
|
||||
function largeAnalysis(count: number) {
|
||||
return {
|
||||
source: "synthetic-large.evtx",
|
||||
events: Array.from({ length: count }, (_, index) => ({ id: String(index), timestamp: "2026-09-09T10:00:00Z", timestamp_source: "event", timestamp_valid: true, provider: "Synthetic Provider", event_id: index, level: "warning", channel: "Application", computer: "TEST-PC", category: "other", summary: `Synthetic event ${index}`, fields: { message: `Synthetic event ${index}` } })),
|
||||
incidents: [],
|
||||
};
|
||||
}
|
||||
|
||||
test("large timelines virtualize DOM rows and keep search usable", async ({ page }) => {
|
||||
const analysis = largeAnalysis(10_000);
|
||||
await page.route("**/api/demo", (route) => route.fulfill({ status: 200, contentType: "application/json", body: JSON.stringify(analysis) }));
|
||||
await page.goto("/#analysis");
|
||||
await page.getByRole("button", { name: "Load demo", exact: true }).first().click();
|
||||
await expect(page.getByText("10,000", { exact: false }).first()).toBeVisible();
|
||||
expect(await page.locator(".event-row").count()).toBeLessThan(80);
|
||||
await page.getByRole("button", { name: "Timeline", exact: false }).click();
|
||||
await page.getByRole("textbox", { name: "Search normalized evidence" }).fill("Synthetic event 9999");
|
||||
await expect(page.locator(".event-row")).toHaveCount(1);
|
||||
await expect(page.locator(".event-row").first()).toContainText("9999");
|
||||
});
|
||||
Reference in new issue
Block a user