# Test

> Gera e orienta execução de testes para widgets TOTVS Fluig. Unit tests com Jasmine + Karma e E2E com Playwright. Sempre questiona a URL do servidor antes de gerar configurações E2E. O E2E requer build + deploy antes de executar.

- **Type:** Skill
- **Install:** `agentstack add skill-tbc-servicos-dataagile-agent-kit-test`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [tbc-servicos](https://agentstack.voostack.com/s/tbc-servicos)
- **Installs:** 0
- **Category:** [Web & Browser](https://agentstack.voostack.com/c/web-and-browser)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [tbc-servicos](https://github.com/tbc-servicos)
- **Source:** https://github.com/tbc-servicos/dataagile-agent-kit/tree/main/fluig/skills/test
- **Website:** https://dataagile-agent-kit.dataagile.com.br

## Install

```sh
agentstack add skill-tbc-servicos-dataagile-agent-kit-test
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

Você vai ajudar a criar e executar testes para widgets Fluig.

Existem dois tipos de teste:
- **Unit (Jasmine + Karma):** testa componentes, services e pipes isoladamente, sem servidor
- **E2E (Playwright):** testa o widget publicado no servidor Fluig real

---

## HARD GATE — Antes de qualquer E2E

Antes de gerar qualquer configuração E2E ou executar testes E2E, você DEVE:

1. Perguntar ao usuário a URL do servidor Fluig (ex: `https://fluig.empresa.com.br`)
2. Confirmar que o widget já foi publicado **ou** executar o fluxo de build + deploy agora
3. Nunca usar `localhost` como base URL — widgets Fluig só rodam no servidor Fluig

Use `AskUserQuestion` para coletar:
- URL do servidor Fluig
- Usuário e senha (ou confirmar que `FLUIG_USER`/`FLUIG_PASSWORD` estão definidos)
- Página Fluig onde o widget está publicado (ex: `/portal/p/home`)

---

## Busca de Testes Existentes (Context Enrichment)

Após confirmar o widget/módulo, consulte testes similares antes de gerar:

```
listTests({ platform: "fluig", module: "", limit: 5 })
```

- Se retornar resultados: mostre os cenários existentes e pergunte se quer algo diferente ou complementar
- Se retornar vazio: prossiga normalmente
- Use os exemplos para manter consistência de page objects e seletores

---

## Unit Tests — Jasmine + Karma

Estrutura esperada, configuração karma.conf.js com cobertura Istanbul, templates spec para componentes, serviços e execução.

Consulte a referência completa via MCP:
```
search_knowledge({ skill: "fluig-test", keyword: "unit tests" })
```

---

## E2E Tests — Playwright

HARD GATE: build + deploy obrigatório antes dos testes.

**Restrições Fluig obrigatórias:**
- `BASE_URL` = URL do servidor Fluig real (ex: `https://fluig.empresa.com.br`) — nunca `localhost`
- Confirmar que o widget está **publicado** antes de rodar qualquer teste E2E
- Credenciais via `FLUIG_USER` / `FLUIG_PASSWORD` no `.env.test` — nunca hardcoded
- A página de teste deve ser a página Fluig onde o widget está publicado (ex: `/portal/p/home`)

Para setup completo, `playwright.config.ts`, CLI commands, autenticação via `storageState` e templates, use o plugin playwright:

```
/playwright:playwright-cli
```

---

## Regras Obrigatórias

- `coverage/` nunca commitado
- Usuário e senha via variáveis de ambiente, nunca hardcoded
- Todos os specs devem cobrir casos de erro
- E2E requer deploy prévio

---

## Consulta de Conhecimento

Se precisar de informação não disponível no MCP, consulte o RAG:
```
searchKnowledge({ keyword: "" })
```

---

## Gravar Teste no MCP (após validação)

Após confirmação que o teste E2E passou no servidor Fluig real:

> "Teste validado. Quer salvar na base de conhecimento para outros devs reutilizarem?"

Apresente o rascunho para revisão antes de persistir:

```
platform:  fluig
module:    
title:     
scenario:  
script:    
tags:      
```

Somente após confirmação explícita do dev, chame:

```
saveTest({
  platform:     "fluig",
  module:       "",
  title:        "",
  scenario:     "",
  script:       "",
  tags:         "",
  submitted_by: ""
})
```

Resposta de sucesso: "✅ Teste #\ salvo na base de conhecimento."
Em caso de erro: preserve o rascunho para o dev salvar manualmente.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [tbc-servicos](https://github.com/tbc-servicos)
- **Source:** [tbc-servicos/dataagile-agent-kit](https://github.com/tbc-servicos/dataagile-agent-kit)
- **License:** MIT
- **Homepage:** https://dataagile-agent-kit.dataagile.com.br

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-tbc-servicos-dataagile-agent-kit-test
- Seller: https://agentstack.voostack.com/s/tbc-servicos
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
