46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest"
|
|
|
|
import { localizeUserFieldErrors } from "@/actions/user.messages"
|
|
import { es } from "@/i18n/dictionaries/es"
|
|
|
|
const actionCopy = es.admin.users.actions
|
|
|
|
describe("user action message localization", () => {
|
|
it("localizes all 6 known use-case error strings to dictionary keys", () => {
|
|
expect(
|
|
localizeUserFieldErrors(
|
|
{
|
|
username: ["Username already exists"],
|
|
email: ["Email already exists"],
|
|
id: [
|
|
"User not found",
|
|
"Cannot remove access from the last active administrator",
|
|
"You cannot remove your own administrator access",
|
|
"You cannot deactivate your own user",
|
|
],
|
|
},
|
|
actionCopy,
|
|
),
|
|
).toEqual({
|
|
username: [actionCopy.duplicateUsername],
|
|
email: [actionCopy.duplicateEmail],
|
|
id: [
|
|
actionCopy.notFound,
|
|
actionCopy.lastActiveAdmin,
|
|
actionCopy.selfAdminAccess,
|
|
actionCopy.selfDeactivate,
|
|
],
|
|
})
|
|
})
|
|
|
|
it("keeps unknown messages unchanged", () => {
|
|
expect(
|
|
localizeUserFieldErrors({ id: ["Unexpected user issue"] }, actionCopy),
|
|
).toEqual({ id: ["Unexpected user issue"] })
|
|
})
|
|
|
|
it("returns undefined for undefined input", () => {
|
|
expect(localizeUserFieldErrors(undefined, actionCopy)).toBeUndefined()
|
|
})
|
|
})
|