diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index fe9c9ec..00e3693 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -20,7 +20,9 @@ jobs: node-version: 24 - name: Install dependencies run: yarn --immutable - - name: Run checks + - name: Run lint run: yarn lint + - name: Run typecheck + run: yarn typecheck - name: Run tests run: yarn test diff --git a/package.json b/package.json index 54ad9b9..7235ee3 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "coverage:badge": "node ./scripts/generate-coverage-badge.mjs", "lint": "eslint --ignore-path .gitignore --ext .ts,.tsx,.yml,.yaml .", "fix": "yarn lint --fix", + "typecheck": "tsc --noEmit", "test": "vitest run", "test:coverage": "vitest run --coverage", "test:watch": "vitest watch", diff --git a/src/resources/reports.tsx b/src/resources/reports.tsx index f3cc077..bff19e8 100644 --- a/src/resources/reports.tsx +++ b/src/resources/reports.tsx @@ -88,11 +88,13 @@ const ReportShowActions = () => { ); }; +const ReceivedTsField = (props: any) => ; + export const ReportList = (props: ListProps) => ( } sort={{ field: "received_ts", order: "DESC" }}> - + diff --git a/src/synapse/dataProvider.test.ts b/src/synapse/dataProvider.test.ts index c61f768..45a9b5f 100644 --- a/src/synapse/dataProvider.test.ts +++ b/src/synapse/dataProvider.test.ts @@ -376,37 +376,37 @@ describe("dataProvider", () => { it("deletes various resources using their custom configurations", async () => { fetchMock.mockResponse(JSON.stringify({})); - await dataProvider.delete("rooms", { id: "room1", previousData: {} }); + await dataProvider.delete("rooms", { id: "room1", previousData: { id: "room1" } }); expect(fetchMock).toHaveBeenCalledWith( "http://localhost/_synapse/admin/v2/rooms/room1", expect.objectContaining({ method: "DELETE", body: '{"block":false}' }) ); - await dataProvider.delete("users_media", { id: "media1", previousData: {} }); + await dataProvider.delete("users_media", { id: "media1", previousData: { id: "media1" } }); expect(fetchMock).toHaveBeenCalledWith( "http://localhost/_synapse/admin/v1/media/matrix.example.com/media1", expect.objectContaining({ method: "DELETE" }) ); - await dataProvider.delete("protect_media", { id: "media1", previousData: {} }); + await dataProvider.delete("protect_media", { id: "media1", previousData: { id: "media1" } }); expect(fetchMock).toHaveBeenCalledWith( "http://localhost/_synapse/admin/v1/media/unprotect/media1", expect.objectContaining({ method: "POST" }) ); - await dataProvider.delete("quarantine_media", { id: "media1", previousData: {} }); + await dataProvider.delete("quarantine_media", { id: "media1", previousData: { id: "media1" } }); expect(fetchMock).toHaveBeenCalledWith( "http://localhost/_synapse/admin/v1/media/unquarantine/matrix.example.com/media1", expect.objectContaining({ method: "POST" }) ); - await dataProvider.delete("forward_extremities", { id: "room1", previousData: {} }); + await dataProvider.delete("forward_extremities", { id: "room1", previousData: { id: "room1" } }); expect(fetchMock).toHaveBeenCalledWith( "http://localhost/_synapse/admin/v1/rooms/room1/forward_extremities", expect.objectContaining({ method: "DELETE" }) ); - await dataProvider.delete("destinations", { id: "dest1", previousData: {} }); + await dataProvider.delete("destinations", { id: "dest1", previousData: { id: "dest1" } }); expect(fetchMock).toHaveBeenCalledWith( "http://localhost/_synapse/admin/v1/federation/destinations/dest1/reset_connection", expect.objectContaining({ method: "POST" }) @@ -415,11 +415,11 @@ describe("dataProvider", () => { it("deletes single resources using custom methods and fallback body logic", async () => { fetchMock.mockResponseOnce(JSON.stringify({})); - await deleteResource("devices", { id: "D1", previousData: { user_id: "@u:example.com" } }); + await deleteResource("devices", { id: "D1", previousData: { id: "D1", user_id: "@u:example.com" } }); expect(fetchMock.mock.calls[0]?.[1]?.body).toBeNull(); fetchMock.mockResponseOnce(JSON.stringify({ id: "deleted" })); - await deleteResource("users", { id: "@user:matrix.example.com", previousData: {} }); + await deleteResource("users", { id: "@user:matrix.example.com", previousData: { id: "@user:matrix.example.com" } }); expect(fetchMock.mock.calls[1]?.[1]?.method).toBe("POST"); expect(fetchMock.mock.calls[1]?.[1]?.body).toBe('{"erase":true}'); }); diff --git a/tsconfig.json b/tsconfig.json index 2b59fee..f8676cf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -57,7 +57,7 @@ /* Experimental Options */ // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - "skipLibCheck": false + "skipLibCheck": true }, "include": ["src"], "references": [{ "path": "./tsconfig.vite.json" }]