feat(people): adapt person user flows to status model

This commit is contained in:
2026-06-19 01:05:33 +02:00
parent 01d89cd21b
commit 8e6a00c2a9
8 changed files with 75 additions and 31 deletions
@@ -1,5 +1,6 @@
import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest"
import type { PrismaClient } from "@/generated/prisma/client"
import { type PrismaClient, UserStatus } from "@/generated/prisma/client"
import { normalizeEmail } from "@/lib/email"
import { getPasswordHash } from "@/lib/security"
import { createTestPerson, createTestUser } from "../helpers/factories"
import {
@@ -123,7 +124,7 @@ describe("updatePersonUserUseCase", () => {
expect(updatedPerson.user).toMatchObject({
id: user.id,
role: "ADMIN",
isActive: false,
status: "DISABLED",
})
})
@@ -157,8 +158,9 @@ describe("updatePersonUserUseCase", () => {
where: { id: user.id },
})
const { verifyPassword } = await import("@/lib/security")
if (!updated.passwordHash) throw new Error("Expected password hash")
await expect(
verifyPassword("new-password-1", updated.password),
verifyPassword("new-password-1", updated.passwordHash),
).resolves.toBe(true)
})
@@ -167,10 +169,13 @@ describe("updatePersonUserUseCase", () => {
const user = await prisma.user.create({
data: {
email: "no-pw@example.test",
emailNormalized: normalizeEmail("no-pw@example.test"),
name: "No PW",
password: originalHash,
passwordHash: originalHash,
role: "STAFF",
isActive: true,
status: UserStatus.ACTIVE,
activatedAt: new Date(),
passwordChangedAt: new Date(),
},
})
const person = await createTestPerson(prisma, {
@@ -198,8 +203,9 @@ describe("updatePersonUserUseCase", () => {
where: { id: user.id },
})
const { verifyPassword: verify } = await import("@/lib/security")
if (!updated.passwordHash) throw new Error("Expected password hash")
await expect(
verify("original-password-1", updated.password),
verify("original-password-1", updated.passwordHash),
).resolves.toBe(true)
})
})