bddgenx 2.4.18 → 2.4.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/bddgenx/generators/runner.rb +1 -1
- data/lib/bddgenx/ia/gemini_cliente.rb +37 -13
- data/lib/bddgenx.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00bf11a6208764e6d1e5c1231844a8f589815c83edd1324d507d81b32296b840
|
4
|
+
data.tar.gz: 1467c294859385f85d7953dbb45371df0acdc3fe61ece2d75874ff5b7940c2cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 500ffd7540a43b9b175239719bf85c678f63d3a7553a2070147826179c456f7e3219bf8506569b808023f52ecafc922153a247eeaf3f1816c9e7e4251c6003ad
|
7
|
+
data.tar.gz: f7b7955ad554a338d2eaedbeb3cce1a7ca9512f792b7ae62c063d1fb1d8190d1c4496ad4b3c75ebd7132fa5e6cc70792b1454591dca5d254cdac0e27de19a896
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.4.
|
1
|
+
2.4.20
|
@@ -44,9 +44,11 @@ module Bddgenx
|
|
44
44
|
|
45
45
|
keywords = idioma == 'en' ? keywords_en : keywords_pt
|
46
46
|
|
47
|
-
# Prompt base
|
47
|
+
# Prompt base com validação interna (checklist)
|
48
48
|
prompt_base = <<~PROMPT
|
49
|
-
Gere
|
49
|
+
Gere uma **Feature BDD** no formato **Gherkin** utilizando as palavras-chave estruturais no idioma "#{idioma}", garantindo clareza, consistência e cobertura de casos.
|
50
|
+
|
51
|
+
Palavras-chave no idioma indicado:
|
50
52
|
Feature: #{keywords[:feature]}
|
51
53
|
Scenario: #{keywords[:scenario]}
|
52
54
|
Scenario Outline: #{keywords[:scenario_outline]}
|
@@ -56,17 +58,38 @@ module Bddgenx
|
|
56
58
|
Then: #{keywords[:then]}
|
57
59
|
And: #{keywords[:and]}
|
58
60
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
61
|
+
📋 **Regras obrigatórias de formatação e qualidade:**
|
62
|
+
1. A primeira linha **deve ser** `# language: #{idioma}`.
|
63
|
+
2. Todos os textos dos passos devem estar em **português claro, objetivo e mensurável** (evite termos subjetivos como "rápido", "bonito", "fácil").
|
64
|
+
3. Use **apenas** as palavras-chave no idioma especificado.
|
65
|
+
4. Todo cenário deve conter no mínimo:
|
66
|
+
- **1 passo Given** descrevendo um estado inicial claro e realista
|
67
|
+
- **1 passo When** descrevendo a ação principal de forma objetiva
|
68
|
+
- **1 passo Then** descrevendo o resultado esperado de forma verificável
|
69
|
+
5. Crie **múltiplos cenários** cobrindo:
|
70
|
+
- Fluxos **positivos** (sucesso esperado)
|
71
|
+
- Fluxos **negativos** (falhas, exceções, validações)
|
72
|
+
- Fluxos **alternativos** (variações plausíveis de uso)
|
73
|
+
6. Use `Scenario Outline` e `Examples` sempre que houver variáveis, mantendo **exatamente** `<email>`, `<senha>` ou outros parâmetros originais entre colchetes angulares.
|
74
|
+
7. Preserve **integralmente** os parâmetros fornecidos sem renomear ou remover.
|
75
|
+
8. Se a história fornecer contexto (ex: `[CONTEXT]` ou "Dado que..."), use-o como base; caso contrário, crie um contexto **coerente e detalhado** alinhado com a funcionalidade.
|
76
|
+
9. Não use passos genéricos como "usuário preenche o formulário"; detalhe **quais campos** e **valores** são preenchidos.
|
77
|
+
10. Evite redundância entre cenários — cada um deve agregar valor para a cobertura de testes.
|
78
|
+
11. A **Feature** deve incluir:
|
79
|
+
- Um título objetivo
|
80
|
+
- Uma breve descrição do objetivo da funcionalidade
|
81
|
+
- Lista de cenários claros e bem estruturados
|
82
|
+
12. Gere **apenas** o conteúdo da feature, sem explicações, sem comentários adicionais e sem quebras de padrão Gherkin.
|
83
|
+
|
84
|
+
🔍 **Checklist interno antes de gerar a resposta** (validar todos os itens abaixo):
|
85
|
+
- [ ] Todos os cenários têm ao menos 1 `Given`, 1 `When` e 1 `Then`.
|
86
|
+
- [ ] Todos os passos estão no idioma "#{idioma}" e seguem a palavra-chave correta.
|
87
|
+
- [ ] Não há passos vagos; todas as ações são claras e verificáveis.
|
88
|
+
- [ ] Todos os parâmetros `<...>` foram preservados e mantidos exatamente como fornecidos.
|
89
|
+
- [ ] Há cenários positivos, negativos e alternativos.
|
90
|
+
- [ ] Não há duplicação desnecessária de passos ou cenários.
|
91
|
+
- [ ] A primeira linha é `# language: #{idioma}`.
|
92
|
+
- [ ] A formatação segue estritamente o padrão Gherkin.
|
70
93
|
|
71
94
|
História fornecida:
|
72
95
|
#{historia}
|
@@ -74,6 +97,7 @@ module Bddgenx
|
|
74
97
|
|
75
98
|
|
76
99
|
|
100
|
+
|
77
101
|
unless api_key
|
78
102
|
warn "❌ API Key do Gemini não encontrada no .env (GEMINI_API_KEY)"
|
79
103
|
return nil
|
data/lib/bddgenx.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bddgenx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Nascimento
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-08-
|
11
|
+
date: 2025-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prawn
|