Improvements: remove dead config, fix ESM, add URL validation, unify types, add missing logging
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m52s

- Remove .prettierrc (dead config, Biome replaces Prettier)
- Rename lighthouserc.json to lighthouserc.cjs with module.exports for ESM compat
- Add logger.warn to empty catch blocks in auth, register, site-settings, prisma-cache, redis, security, rate-limit
- Unify ActionResult type: action-helper.ts uses 'ok' consistent with safe-action-shared.ts
- Add noUnusedLocals + noUnusedParameters to tsconfig + fix 25 pre-existing unused vars
- Replace barrel export src/types/index.ts with direct @/types/common imports
- Make trustHost conditional (development only) in auth.ts
- Add pre-flight URL validation to update-Nitrov3.sh to catch image.library.url misconfigurations
- Improve NITRO_IMAGE_LIBRARY_URL content validation in pre-flight & post-compute checks
This commit is contained in:
openhands committed 2026-07-26 20:28:11 +02:00
1 parent b922f6d49f
commit 17847545dd
292 files changed
+69195 -67915

No files matched your search

+41 -6
View File
@@ -1,4 +1,4 @@
import { describe, expect, it, vi, beforeEach } from "vitest";
import { beforeEach, describe, expect, it, vi } from "vitest";
const create = vi.hoisted(() => vi.fn());
const findMany = vi.hoisted(() => vi.fn());
@@ -14,7 +14,7 @@ vi.mock("@/lib/prisma", () => ({
vi.mock("@/env", () => ({ env: {} }));
import { logAudit, getAuditLogs } from "./audit";
import { getAuditLogs, logAudit } from "./audit";
beforeEach(() => {
vi.clearAllMocks();
@@ -87,8 +87,28 @@ describe("logAudit", () => {
describe("getAuditLogs", () => {
it("returns paginated logs with usernames", async () => {
findMany.mockResolvedValue([
{ id: 1, userId: 1, action: "test", target: "user", targetId: null, before: null, after: null, diff: null, createdAt: "2024-01-01" },
{ id: 2, userId: 2, action: "test2", target: "room", targetId: null, before: null, after: null, diff: null, createdAt: "2024-01-02" },
{
id: 1,
userId: 1,
action: "test",
target: "user",
targetId: null,
before: null,
after: null,
diff: null,
createdAt: "2024-01-01",
},
{
id: 2,
userId: 2,
action: "test2",
target: "room",
targetId: null,
before: null,
after: null,
diff: null,
createdAt: "2024-01-02",
},
]);
count.mockResolvedValue(2);
userFindMany.mockResolvedValue([
@@ -110,14 +130,29 @@ describe("getAuditLogs", () => {
await getAuditLogs({ search: "test" });
expect(findMany).toHaveBeenCalledWith(
expect.objectContaining({
where: { OR: [{ action: { contains: "test" } }, { target: { contains: "test" } }] },
where: {
OR: [
{ action: { contains: "test" } },
{ target: { contains: "test" } },
],
},
}),
);
});
it("falls back to User #id for unknown users", async () => {
findMany.mockResolvedValue([
{ id: 1, userId: 99, action: "x", target: "y", targetId: null, before: null, after: null, diff: null, createdAt: "2024-01-01" },
{
id: 1,
userId: 99,
action: "x",
target: "y",
targetId: null,
before: null,
after: null,
diff: null,
createdAt: "2024-01-01",
},
]);
count.mockResolvedValue(1);
userFindMany.mockResolvedValue([]);