From a27e49d12c27cfcac8dbd199c69179b0646998c7 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 07:02:59 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=A7=B9=20Avoid=20using=20any=20type?= =?UTF-8?q?=20and=20eslint-disable=20comments=20in=20LayoutEditor.test.tsx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: is0692vs <135803462+is0692vs@users.noreply.github.com> --- .../__tests__/LayoutEditor.test.tsx | 45 +++++++------------ 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/src/components/__tests__/LayoutEditor.test.tsx b/src/components/__tests__/LayoutEditor.test.tsx index fb53039..3cdcf9b 100644 --- a/src/components/__tests__/LayoutEditor.test.tsx +++ b/src/components/__tests__/LayoutEditor.test.tsx @@ -4,6 +4,12 @@ import LayoutEditor from "../LayoutEditor"; import { CardLayout } from "@/lib/types"; import "@testing-library/jest-dom"; +interface MockWindow extends Window { + triggerDragEnd?: (event: unknown) => void; + mockIsOverId?: string; +} + + // Mock dnd-kit components vi.mock("@dnd-kit/core", async (importOriginal) => { const actual = await importOriginal(); @@ -13,7 +19,7 @@ vi.mock("@dnd-kit/core", async (importOriginal) => {
{ // Expose a way to trigger onDragEnd via a synthetic event or global for testing // We'll attach it to window for easy triggering - (window as unknown as { triggerDragEnd: (event: unknown) => void }).triggerDragEnd = onDragEnd; + (window as unknown as MockWindow).triggerDragEnd = onDragEnd; }}> {children}
@@ -22,8 +28,7 @@ vi.mock("@dnd-kit/core", async (importOriginal) => { useSensor: vi.fn(() => ({})), useDroppable: ({ id }: { id: string }) => ({ setNodeRef: vi.fn(), - // eslint-disable-next-line @typescript-eslint/no-explicit-any - isOver: (window as any).mockIsOverId === id, + isOver: (window as unknown as MockWindow).mockIsOverId === id, }), PointerSensor: vi.fn(), KeyboardSensor: vi.fn(), @@ -64,10 +69,8 @@ describe("LayoutEditor", () => { beforeEach(() => { mockOnLayoutChange = vi.fn(); mockOnToggleVisibility = vi.fn(); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (window as any).triggerDragEnd = undefined; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (window as any).mockIsOverId = undefined; + (window as unknown as MockWindow).triggerDragEnd = undefined; + (window as unknown as MockWindow).mockIsOverId = undefined; }); it("renders blocks in their respective columns", () => { @@ -118,9 +121,7 @@ describe("LayoutEditor", () => { // Ensure DndContext registered the handler on window const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const triggerDragEnd = (window as any).triggerDragEnd; + const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; expect(triggerDragEnd).toBeDefined(); // Drag 'avatar' to 'right' column @@ -148,9 +149,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const triggerDragEnd = (window as any).triggerDragEnd; + const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; // Drag 'avatar' over 'topLanguages' triggerDragEnd({ @@ -177,9 +176,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const triggerDragEnd = (window as any).triggerDragEnd; + const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; triggerDragEnd({ active: { id: "avatar" }, over: null, @@ -199,9 +196,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const triggerDragEnd = (window as any).triggerDragEnd; + const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; triggerDragEnd({ active: { id: "avatar" }, over: { id: "avatar" }, @@ -221,9 +216,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const triggerDragEnd = (window as any).triggerDragEnd; + const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; triggerDragEnd({ active: { id: "avatar" }, over: { id: "non-existent-block" }, @@ -249,9 +242,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const triggerDragEnd = (window as any).triggerDragEnd; + const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; // Drag 'avatar' over 'stats' (downwards) triggerDragEnd({ @@ -277,9 +268,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const triggerDragEnd = (window as any).triggerDragEnd; + const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; // Drag 'avatar' to empty column 'right' triggerDragEnd({ From 52526dd1d197a26e2da2924eed6b70578a968848 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 07:15:51 +0000 Subject: [PATCH 2/2] Fix TypeScript compilation error by using non-null assertion for triggerDragEnd in LayoutEditor.test.tsx Co-authored-by: is0692vs <135803462+is0692vs@users.noreply.github.com> --- src/components/__tests__/LayoutEditor.test.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/__tests__/LayoutEditor.test.tsx b/src/components/__tests__/LayoutEditor.test.tsx index 3cdcf9b..d1d455a 100644 --- a/src/components/__tests__/LayoutEditor.test.tsx +++ b/src/components/__tests__/LayoutEditor.test.tsx @@ -125,7 +125,7 @@ describe("LayoutEditor", () => { expect(triggerDragEnd).toBeDefined(); // Drag 'avatar' to 'right' column - triggerDragEnd({ + triggerDragEnd!({ active: { id: "avatar" }, over: { id: "right" }, }); @@ -152,7 +152,7 @@ describe("LayoutEditor", () => { const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; // Drag 'avatar' over 'topLanguages' - triggerDragEnd({ + triggerDragEnd!({ active: { id: "avatar" }, over: { id: "topLanguages" }, }); @@ -177,7 +177,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; - triggerDragEnd({ + triggerDragEnd!({ active: { id: "avatar" }, over: null, }); @@ -197,7 +197,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; - triggerDragEnd({ + triggerDragEnd!({ active: { id: "avatar" }, over: { id: "avatar" }, }); @@ -217,7 +217,7 @@ describe("LayoutEditor", () => { const dndContext = screen.getByTestId("dnd-context"); fireEvent.click(dndContext); const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; - triggerDragEnd({ + triggerDragEnd!({ active: { id: "avatar" }, over: { id: "non-existent-block" }, }); @@ -245,7 +245,7 @@ describe("LayoutEditor", () => { const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; // Drag 'avatar' over 'stats' (downwards) - triggerDragEnd({ + triggerDragEnd!({ active: { id: "avatar" }, over: { id: "stats" }, }); @@ -271,7 +271,7 @@ describe("LayoutEditor", () => { const triggerDragEnd = (window as unknown as MockWindow).triggerDragEnd; // Drag 'avatar' to empty column 'right' - triggerDragEnd({ + triggerDragEnd!({ active: { id: "avatar" }, over: { id: "right" }, });