test(cleanup): remove legacy admin users references
This commit is contained in:
@@ -1,91 +0,0 @@
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest"
|
||||
|
||||
import { en } from "@/i18n/dictionaries/en"
|
||||
import { es } from "@/i18n/dictionaries/es"
|
||||
|
||||
const mocks = vi.hoisted(() => ({
|
||||
getI18n: vi.fn(),
|
||||
getUsers: vi.fn(),
|
||||
getUserProfileById: vi.fn(),
|
||||
findFirst: vi.fn(),
|
||||
redirect: vi.fn((url: string) => {
|
||||
throw new Error(`REDIRECT:${url}`)
|
||||
}),
|
||||
}))
|
||||
|
||||
vi.mock("@/i18n/server", () => ({
|
||||
getI18n: mocks.getI18n,
|
||||
}))
|
||||
|
||||
vi.mock("@/services/user.service", () => ({
|
||||
getUsers: mocks.getUsers,
|
||||
getUserProfileById: mocks.getUserProfileById,
|
||||
}))
|
||||
|
||||
vi.mock("@/lib/prisma", () => ({
|
||||
prisma: {
|
||||
person: {
|
||||
findFirst: mocks.findFirst,
|
||||
},
|
||||
},
|
||||
default: {
|
||||
person: {
|
||||
findFirst: mocks.findFirst,
|
||||
},
|
||||
},
|
||||
}))
|
||||
|
||||
vi.mock("next/navigation", () => ({
|
||||
redirect: mocks.redirect,
|
||||
}))
|
||||
|
||||
describe("/admin/users routes redirect to /people", () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
mocks.getI18n.mockResolvedValue({ dictionary: en, locale: "en" })
|
||||
})
|
||||
|
||||
it("redirects /admin/users to /people", async () => {
|
||||
const { default: UsersPage } = await import(
|
||||
"@/app/(dashboard)/admin/users/page"
|
||||
)
|
||||
|
||||
expect(() => UsersPage()).toThrow("REDIRECT:/people")
|
||||
expect(mocks.getUsers).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it("redirects /admin/users/[userId]/edit to /people/[personId]/edit when person is found", async () => {
|
||||
mocks.findFirst.mockResolvedValue({ id: "person-99" })
|
||||
|
||||
const { default: EditUserPage } = await import(
|
||||
"@/app/(dashboard)/admin/users/[userId]/edit/page"
|
||||
)
|
||||
|
||||
await expect(
|
||||
EditUserPage({ params: Promise.resolve({ userId: "user-1" }) }),
|
||||
).rejects.toThrow("REDIRECT:/people/person-99/edit")
|
||||
expect(mocks.getUserProfileById).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it("redirects /admin/users/[userId]/edit to /people when person is not found", async () => {
|
||||
mocks.findFirst.mockResolvedValue(null)
|
||||
|
||||
const { default: EditUserPage } = await import(
|
||||
"@/app/(dashboard)/admin/users/[userId]/edit/page"
|
||||
)
|
||||
|
||||
await expect(
|
||||
EditUserPage({ params: Promise.resolve({ userId: "orphan-user" }) }),
|
||||
).rejects.toThrow("REDIRECT:/people")
|
||||
})
|
||||
|
||||
it("still honors Spanish locale when redirecting (does not require dictionary lookups)", async () => {
|
||||
mocks.getI18n.mockResolvedValue({ dictionary: es, locale: "es" })
|
||||
|
||||
const { default: UsersPage } = await import(
|
||||
"@/app/(dashboard)/admin/users/page"
|
||||
)
|
||||
|
||||
expect(() => UsersPage()).toThrow("REDIRECT:/people")
|
||||
})
|
||||
})
|
||||
@@ -3,7 +3,7 @@ import { describe, expect, it } from "vitest"
|
||||
import {
|
||||
formatPersonDepartment,
|
||||
formatUserRole,
|
||||
} from "@/app/(dashboard)/admin/users/_components/user.copy"
|
||||
} from "@/app/(dashboard)/people/_components/user.copy"
|
||||
|
||||
describe("user copy helpers", () => {
|
||||
const roleCopy = {
|
||||
|
||||
Reference in New Issue
Block a user