From a706ac33bc89e9c074b73c1e45f28f1902ae85e3 Mon Sep 17 00:00:00 2001 From: ThomasTDS Date: Sun, 11 Oct 2026 22:17:23 -0300 Subject: [PATCH] chore: adiciona o script npm run test:smoke MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A tag @smoke existia (TC-007, TC-009 e TC-012), mas rodá-la exigia montar o comando do Cucumber na mão. O script dá uma checagem rápida antes de abrir um PR. O CI continua rodando a suíte completa em todo PR, para nenhuma regressão fora da smoke escapar antes do merge. --- README.md | 3 ++- docs/test-cases.md | 2 +- package.json | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f04146a..225a6b2 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Site alvo: [Automation Exercise](https://automationexercise.com) Quando a conta é só pré-condição (checkout, e-mail já existente), ela é criada pela API (`POST /api/createAccount`) em vez do formulário, o que deixa o cenário mais rápido e menos frágil. Toda conta de teste criada é excluída ao final do cenário por um hook `After` que chama a API do site (`DELETE /api/deleteAccount`). Como o hook roda mesmo quando o cenário falha, nenhuma conta fica acumulada no site. O cenário de cadastro (`@TC-009`) continua excluindo a conta pela interface, porque a exclusão faz parte do que ele testa. -Cada cenário é identificado e rastreável via tag `@TC-XXX`, listados em [`docs/test-cases.md`](docs/test-cases.md) junto com módulo, tipo, prioridade e status de automação. Os fluxos ponta-a-ponta mais críticos têm a tag `@smoke` (`npx cucumber-js --tags @smoke`). +Cada cenário é identificado e rastreável via tag `@TC-XXX`, listados em [`docs/test-cases.md`](docs/test-cases.md) junto com módulo, tipo, prioridade e status de automação. Os fluxos ponta-a-ponta mais críticos têm a tag `@smoke` e rodam sozinhos com `npm run test:smoke`, para uma checagem rápida antes de abrir um PR. O CI continua rodando a suíte completa em todo PR. ## Estrutura do projeto @@ -53,6 +53,7 @@ cp .env.example .env ```bash npm test # com browser visível npm run test:headless # em modo headless +npm run test:smoke # só os cenários @smoke (checagem rápida) npm run test:api # só os testes de API, sem browser ``` diff --git a/docs/test-cases.md b/docs/test-cases.md index 9ad6e54..797b514 100644 --- a/docs/test-cases.md +++ b/docs/test-cases.md @@ -44,4 +44,4 @@ Cada test case referencia o `.feature` correspondente via tag (`@TC-XXX`) para r - **Tipo**: `Funcional` (caminho feliz) ou `Negativo` (validação de bloqueio/erro esperado). - **Prioridade**: importância do caso para o negócio — `Crítica` > `Alta` > `Média` > `Baixa`. Não confundir com a prioridade (P0–P3) usada nos [bug reports](../.github/ISSUE_TEMPLATE/bug_report.md), que mede urgência de correção de um defeito, não importância de um caso de teste. - **Automação**: `Automatizado`, `Manual` ou `Planejado` (caso ainda não implementado, mas já identificado como necessário). -- **`@smoke`**: cenários ponta-a-ponta críticos, candidatos a uma suíte rápida (`cucumber-js --tags @smoke`) separada da suíte de regressão completa. +- **`@smoke`**: cenários ponta-a-ponta críticos, que formam uma suíte rápida (`npm run test:smoke`) separada da suíte de regressão completa. diff --git a/package.json b/package.json index 4def7d5..ce5b6ad 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "scripts": { "test": "cucumber-js", "test:headless": "cross-env HEADLESS=true cucumber-js", + "test:smoke": "cucumber-js --tags @smoke", "test:api": "cucumber-js --tags @api", "report:flaky": "ts-node src/tools/flaky-report.ts", "lint": "eslint src",