mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 06:43:06 +00:00
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.
26 lines
957 B
TypeScript
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')
|
|
})
|
|
})
|