import { describe, expect, it } from "vitest"; import { readFileSync } from "node:fs"; import { resolve } from "node:path"; const readAuditLogsView = () => readFileSync(resolve(__dirname, "./AuditLogs.vue"), "utf8"); describe("audit logs access", () => { it("allows only admins or authorized PMs to use audit export", () => { const source = readAuditLogsView(); expect(source).toContain("const canAccessAuditLogs = computed"); expect(source).toContain("isSystemAdmin"); expect(source).toContain("getProjectRole"); expect(source).toContain("study.currentStudyRole"); expect(source).toContain('projectRole.value === "PM"'); expect(source).toContain("roles?.[projectRole.value]?.audit_export?.read"); expect(source).not.toContain("roles?.PM?.audit_export?.read"); expect(source).not.toContain('const role = auth.user?.role'); expect(source).not.toContain('role !== "ADMIN"'); }); });