# 🧪 Scripts de Teste Automatizados

Este diretório contém scripts para criar automaticamente um projeto de teste para a biblioteca.

## Scripts Disponíveis

### Windows

#### `test-library.ps1` - Completo com logs
Script detalhado que mostra cada passo da criação do projeto de teste.

```powershell
.\test-library.ps1
```

**Características:**
- ✅ Logs detalhados de cada etapa
- ✅ Feedback visual colorido
- ✅ Ideal para debug e acompanhamento

#### `test-simple.ps1` - Rápido e silencioso
Script otimizado que cria o projeto rapidamente com saída mínima.

```powershell
.\test-simple.ps1
```

**Características:**
- ⚡ Mais rápido (saída silenciosa)
- ✅ Apenas mensagens importantes
- ✅ Ideal para uso frequente

### Linux/Mac

#### `test-library.sh`
Script bash completo para ambientes Unix.

```bash
chmod +x test-library.sh
./test-library.sh
```

## O Que os Scripts Fazem

1. **Limpam** projeto de teste anterior (se existir)
2. **Criam** novo projeto Expo SDK 54
3. **Instalam** dependências necessárias:
   - expo-build-properties
   - biblioteca local
4. **Copiam** configurações de exemplo:
   - `app.json.example` → `app.json`
   - `examples/ExpoExample.tsx` → `App.tsx`
5. **Ajustam** nomes no app.json
6. **Executam** `npx expo prebuild --clean`

## Estrutura Criada

```
../test-printer-app/  (ou test-printer-simple)
├── app.json          ← Configurado para SDK 54
├── App.tsx           ← Exemplo completo com UI
├── package.json      ← Com biblioteca instalada
├── node_modules/
└── android/          ← Criado pelo prebuild
```

## Após Executar o Script

```bash
# Entrar no projeto criado
cd ../test-printer-app  # ou ../test-printer-simple

# Executar no Android
npx expo run:android

# Ver logs
npx react-native log-android
```

## Problemas Comuns

### Erro: "Execution of scripts is disabled"
No PowerShell como Administrador:
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```

### Erro: "npm not found"
Certifique-se que Node.js está instalado e no PATH

### Erro: "expo not found"
```bash
npm install -g expo-cli
```

### Script trava no prebuild
O prebuild pode demorar na primeira execução. Aguarde alguns minutos.

## Limpar Depois

Para remover o projeto de teste:

**Windows:**
```powershell
cd ..
Remove-Item -Recurse -Force test-printer-app
# ou
Remove-Item -Recurse -Force test-printer-simple
```

**Linux/Mac:**
```bash
cd ..
rm -rf test-printer-app
```

## Diferenças Entre Scripts

| Feature | test-library.ps1 | test-simple.ps1 | test-library.sh |
|---------|------------------|-----------------|-----------------|
| Logs detalhados | ✅ Sim | ❌ Não | ✅ Sim |
| Cores/Emojis | ✅ Sim | ✅ Sim | ✅ Sim |
| Velocidade | Normal | ⚡ Rápido | Normal |
| Output | Verbose | Mínimo | Verbose |
| Plataforma | Windows | Windows | Linux/Mac |

## Modificar os Scripts

Para testar com configurações diferentes, edite as variáveis no início:

```powershell
# No script .ps1
$TEST_DIR = "..\meu-teste-custom"
$TEST_APP_NAME = "meu-teste-custom"
```

```bash
# No script .sh
TEST_DIR="../meu-teste-custom"
TEST_APP_NAME="meu-teste-custom"
```

## Integração CI/CD

Os scripts podem ser usados em pipelines CI/CD:

```yaml
# Exemplo GitHub Actions
- name: Test Library
  run: |
    cd path/to/library
    ./test-library.sh
    cd ../test-printer-app
    npx expo prebuild
    # Adicionar testes aqui
```

## Troubleshooting

### Script não encontra arquivos
Certifique-se de executar da raiz da biblioteca:
```bash
cd c:\projetos\masfelix\react-native-bluetooth-datecs-printer
```

### Erro ao copiar arquivos
Verifique que existem:
- `app.json.example`
- `examples/ExpoExample.tsx`

### Prebuild falha
Verifique:
- Java 11+ instalado
- Android SDK instalado
- Variáveis de ambiente configuradas

## Documentação Relacionada

- [TESTING_GUIDE.md](./TESTING_GUIDE.md) - Guia completo de testes
- [HOW_TO_TEST.md](./HOW_TO_TEST.md) - Métodos de teste
- [EXPO_SETUP.md](./EXPO_SETUP.md) - Configuração Expo
