diff --git a/src/resources/reports.test.tsx b/src/resources/reports.test.tsx
new file mode 100644
index 0000000..4f4cce0
--- /dev/null
+++ b/src/resources/reports.test.tsx
@@ -0,0 +1,41 @@
+import { render, screen } from "@testing-library/react";
+
+const { mockedDataTableCol, mockedDataTableNumberCol } = vi.hoisted(() => ({
+ mockedDataTableCol: vi.fn(({ source }: { source: string }) => {source}),
+ mockedDataTableNumberCol: vi.fn(({ source }: { source: string }) => (
+ {source}
+ )),
+}));
+
+vi.mock("react-admin", async importOriginal => {
+ const actual = await importOriginal();
+
+ const mockedDataTable = Object.assign(
+ ({ children }: { children: React.ReactNode }) => {children}
,
+ {
+ Col: mockedDataTableCol,
+ NumberCol: mockedDataTableNumberCol,
+ }
+ );
+
+ return {
+ ...actual,
+ List: ({ children }: { children: React.ReactNode }) => {children}
,
+ DataTable: mockedDataTable,
+ };
+});
+
+import { ReportList } from "./reports";
+
+describe("ReportList", () => {
+ it("uses DataTable columns for the report overview", () => {
+ render();
+
+ expect(screen.getByTestId("data-table")).toBeTruthy();
+ expect(mockedDataTableCol).toHaveBeenCalledWith(expect.objectContaining({ source: "id" }), undefined);
+ expect(mockedDataTableCol).toHaveBeenCalledWith(expect.objectContaining({ source: "received_ts" }), undefined);
+ expect(mockedDataTableCol).toHaveBeenCalledWith(expect.objectContaining({ source: "user_id" }), undefined);
+ expect(mockedDataTableCol).toHaveBeenCalledWith(expect.objectContaining({ source: "name" }), undefined);
+ expect(mockedDataTableNumberCol).toHaveBeenCalledWith(expect.objectContaining({ source: "score" }), undefined);
+ });
+});
diff --git a/src/resources/reports.tsx b/src/resources/reports.tsx
index b092971..f3cc077 100644
--- a/src/resources/reports.tsx
+++ b/src/resources/reports.tsx
@@ -92,12 +92,10 @@ export const ReportList = (props: ListProps) => (
} sort={{ field: "received_ts", order: "DESC" }}>
-
-
-
+
+
-
);