teqo-backup/tests/unit/advisorSchema.unit.spec.ts
Francisco Ignácio Fontoura Solla 01e52834e2 B19: Gerenciar assessores (/campanha/assessores)
Lista+detalhe única de edição para coordinator/candidate: nome, e-mail e
celular com auto-save debounced (edit-where-you-see-it); carteira de
municípios por chips com agregação de território de identidade,
adição/remoção com UI otimista; criação inline no topo da tabela; ação de
WhatsApp por assessor; reset de senha via e-mail (bloqueado para
placeholders @planilha.invalid). Alinha access de update/phone/atribuição
de município a isCampaignUnrestricted (coordinator + candidate).

Sem migration. Testes int (campaignAdvisorManagement) + unit (schema e
portfólio de municípios) cobrindo access, conflito de e-mail único, cap de
assessores por município e agregação por território/ZE.
2026-07-25 02:40:47 -03:00

26 lines
957 B
TypeScript

import { describe, expect, it } from 'vitest'
import {
isPlanilhaPlaceholderEmail,
planilhaPlaceholderEmailForAdvisor,
} from '@/lib/schemas/advisor'
describe('isPlanilhaPlaceholderEmail', () => {
it('detects the E4R seed suffix case-insensitively', () => {
expect(isPlanilhaPlaceholderEmail('edizio@planilha.invalid')).toBe(true)
expect(isPlanilhaPlaceholderEmail('Edizio@Planilha.Invalid')).toBe(true)
})
it('rejects real emails and empty values', () => {
expect(isPlanilhaPlaceholderEmail('edizio@example.com')).toBe(false)
expect(isPlanilhaPlaceholderEmail('')).toBe(false)
expect(isPlanilhaPlaceholderEmail(null)).toBe(false)
expect(isPlanilhaPlaceholderEmail(undefined)).toBe(false)
})
})
describe('planilhaPlaceholderEmailForAdvisor', () => {
it('builds a stable assessor-{id}@planilha.invalid address', () => {
expect(planilhaPlaceholderEmailForAdvisor(42)).toBe('assessor-42@planilha.invalid')
})
})