# 🧪 TESTAR SISTEMA DE FÉRIAS - PASSO A PASSO

**Data:** 30 de outubro de 2025  
**Objetivo:** Criar funcionário de teste e validar todo o fluxo de férias

---

## 🚀 PASSO 1: Criar Funcionário de Teste para TI Master

### Opção A: Via Convex Dashboard (Recomendado)

1. **Acesse o Convex Dashboard:**
   ```
   https://dashboard.convex.dev
   ```

2. **Vá para a seção "Functions"**

3. **Encontre a função:** `criarFuncionarioTeste:criarFuncionarioParaTIMaster`

4. **Execute com estes argumentos:**
   ```json
   {
     "usuarioEmail": "ti.master@sgse.pe.gov.br"
   }
   ```

5. **Você verá o resultado:**
   ```json
   {
     "sucesso": true,
     "funcionarioId": "abc123..."
   }
   ```

### Opção B: Via Console do Browser

1. **Abra o console do navegador (F12)**

2. **Cole e execute este código:**
   ```javascript
   // No console do navegador, dentro do sistema SGSE
   const convex = window.convex; // ou acesse o client Convex do app
   
   await convex.mutation(api.criarFuncionarioTeste.criarFuncionarioParaTIMaster, {
     usuarioEmail: "ti.master@sgse.pe.gov.br"
   });
   ```

---

## ✅ PASSO 2: Verificar Criação do Funcionário

1. **Recarregue a página do perfil**
   - Pressione `F5` ou `Ctrl+R`

2. **Verifique se o erro sumiu**
   - Acesse: Perfil > Minhas Férias
   - Agora deve aparecer o **Dashboard de Férias** ✨

---

## 🧪 PASSO 3: Testar Fluxo Completo de Solicitação

### 3.1. Visualizar Dashboard
```
✅ Deve mostrar:
   - 4 Cards estatísticos (Disponível, Usado, Pendente, Total)
   - 2 Gráficos de pizza
   - Tabela de histórico de saldos
   - Botão "Solicitar Novas Férias"
```

### 3.2. Iniciar Wizard de Solicitação

1. **Click em "Solicitar Novas Férias"**

2. **PASSO 1 - Ano & Saldo:**
   ```
   ✅ Escolha o ano: 2024 ou 2025
   ✅ Verifique o saldo disponível: 30 dias
   ✅ Veja o regime: "CLT - Consolidação das Leis do Trabalho"
   ✅ Click em "Próximo"
   ```

3. **PASSO 2 - Selecionar Períodos:**
   ```
   ✅ Arraste no calendário para selecionar o primeiro período
   ✅ Adicione mais períodos (até 3 para CLT)
   ✅ Observe as validações em tempo real:
      - Verde: tudo certo ✅
      - Vermelho: erro (ex: período muito curto) ❌
      - Amarelo: aviso (ex: saldo baixo) ⚠️
   ✅ Click em "Próximo"
   ```

4. **PASSO 3 - Confirmação:**
   ```
   ✅ Revise todos os períodos
   ✅ Adicione observação (opcional)
   ✅ Click em "Enviar Solicitação"
   ```

5. **Sucesso!**
   ```
   ✅ Toast verde: "Solicitação enviada com sucesso! 🎉"
   ✅ Retorna ao dashboard
   ✅ Atualiza estatísticas
   ```

---

## 🧪 PASSO 4: Testar Validações CLT

### Teste 1: Período muito curto ❌
```
Tente criar: 3 dias
Resultado esperado: "Período de 3 dias é inválido. Mínimo: 5 dias corridos (CLT)"
```

### Teste 2: Muitos períodos ❌
```
Tente criar: 4 períodos
Resultado esperado: "Máximo de 3 períodos permitidos para CLT"
```

### Teste 3: Sem período principal ❌
```
Crie 3 períodos:
- 10 dias
- 10 dias
- 10 dias
Resultado esperado: "Ao dividir férias em CLT, um período deve ter no mínimo 14 dias corridos"
```

### Teste 4: Solicitação válida ✅
```
Crie 3 períodos:
- 15 dias (Principal)
- 10 dias
- 5 dias
Resultado esperado: "✅ Períodos válidos! Total: 30 dias"
```

---

## 🧪 PASSO 5: Testar Regime Servidor Público PE

### 5.1. Alterar Regime do Funcionário

**Via Convex Dashboard:**
```json
// Função: criarFuncionarioTeste:alterarRegimeTrabalho
{
  "funcionarioId": "SEU_FUNCIONARIO_ID",
  "novoRegime": "estatutario_pe"
}
```

### 5.2. Testar Validações Servidor PE

**Teste 1: 3 períodos ❌**
```
Tente criar: 3 períodos
Resultado esperado: "Máximo de 2 períodos permitidos para Servidor Público Estadual de Pernambuco"
```

**Teste 2: Período curto ❌**
```
Tente criar: 8 dias
Resultado esperado: "Período de 8 dias é inválido. Mínimo: 10 dias corridos (Servidor Público...)"
```

**Teste 3: Solicitação válida ✅**
```
Crie 2 períodos:
- 20 dias
- 10 dias
Resultado esperado: "✅ Períodos válidos! Total: 30 dias"
```

---

## 🎯 PASSO 6: Testar Aprovação de Férias (Gestor)

### 6.1. Configurar Time e Gestor

**Via TI > Times e Membros:**
```
1. Criar um time de teste
2. Adicionar funcionário como membro
3. Configurar você (TI Master) como gestor
```

### 6.2. Aprovar Solicitação

**Via Perfil > Aprovar Férias:**
```
1. Ver lista de solicitações pendentes
2. Click em "Ver Detalhes"
3. Aprovar / Reprovar / Ajustar
4. Verificar notificação no sino
```

---

## 📊 PASSO 7: Verificar Analytics

### Dashboard deve mostrar:
```
✅ Gráfico de Saldo atualizado
✅ Estatísticas corretas
✅ Histórico de solicitações
✅ Status visual (badges coloridos)
```

---

## 🐛 TROUBLESHOOTING

### Problema: "Perfil de funcionário não encontrado"
**Solução:** Execute o PASSO 1 novamente

### Problema: "Você ainda não tem direito a férias"
**Solução:** Altere a data de admissão:
```json
// Via criarFuncionarioTeste:alterarDataAdmissao
{
  "funcionarioId": "SEU_ID",
  "novaData": "2023-01-01"
}
```

### Problema: Toast não aparece
**Solução:** Verifique se Sonner está configurado em `+layout.svelte`

### Problema: Calendário não carrega
**Solução:** 
1. Verifique se FullCalendar foi instalado
2. Execute: `cd apps/web && bun add @fullcalendar/core @fullcalendar/daygrid`

### Problema: Validação não funciona
**Solução:** 
1. Verifique o regime de trabalho do funcionário
2. Confirme que o backend `saldoFerias.ts` está deployado

---

## ✅ CHECKLIST DE TESTES

- [ ] Funcionário criado e associado
- [ ] Dashboard carrega corretamente
- [ ] Wizard abre ao clicar em "Solicitar Férias"
- [ ] Seleção de ano funciona
- [ ] Saldo é exibido corretamente
- [ ] Calendário permite drag & drop
- [ ] Validações CLT funcionam
- [ ] Validações Servidor PE funcionam
- [ ] Toast notifications aparecem
- [ ] Solicitação é criada com sucesso
- [ ] Dashboard atualiza após solicitação
- [ ] Gráficos são renderizados
- [ ] Aprovação de férias funciona (se gestor)

---

## 🎉 RESULTADO ESPERADO

Após completar todos os passos, você terá testado:

✅ **Backend:**
- Criação de períodos aquisitivos
- Validações CLT e Servidor PE
- Reserva e liberação de dias
- Cálculo de saldo

✅ **Frontend:**
- Wizard de 3 passos
- Calendário interativo
- Dashboard com analytics
- Toast notifications
- Validações em tempo real

---

## 📞 PRECISA DE AJUDA?

Se encontrar algum erro:

1. **Verifique o console do navegador (F12)**
   - Logs de erro aparecem aqui

2. **Verifique o Convex Dashboard**
   - Logs do backend aparecem aqui

3. **Documentação completa:**
   - Veja `SISTEMA_FERIAS_MODERNO_COMPLETO.md`
   - Veja `REGRAS_FERIAS_CLT_E_SERVIDOR_PE.md`

---

**Boa sorte com os testes! 🚀**


