teqo-backup/tests/unit/campaignPasswordSchemas.unit.spec.ts
Francisco Ignácio Fontoura Solla 3b463173da Add campaign password reset, profile photo, and RS+ follow-up plan.
Deliver self-service forgot/reset via Resend, logged-in password change, and optional avatar on /campanha/perfil; register post-simplify engineering debts as RS+.
2026-07-19 05:26:56 -03:00

34 lines
1 KiB
TypeScript

// @vitest-environment node
import { describe, expect, it } from 'vitest'
import {
campaignChangePasswordSchema,
campaignPasswordResetRequestSchema,
campaignPasswordResetSchema,
} from '@/lib/schemas/campaignPassword'
describe('campaign password schemas', () => {
it('accepts a valid forgot-password email', () => {
const parsed = campaignPasswordResetRequestSchema.parse({ email: 'staff@example.com' })
expect(parsed.email).toBe('staff@example.com')
})
it('rejects reset when confirmation does not match', () => {
const result = campaignPasswordResetSchema.safeParse({
token: 'a'.repeat(32),
password: 'new-password',
passwordConfirmation: 'other-password',
})
expect(result.success).toBe(false)
})
it('rejects change when new password equals current password', () => {
const result = campaignChangePasswordSchema.safeParse({
currentPassword: 'same-password',
password: 'same-password',
passwordConfirmation: 'same-password',
})
expect(result.success).toBe(false)
})
})