bddgenx 2.4.19 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2717f56effcec478e72679f6ac738155be92dbc79f3ae23bd8e59f3f0d8624e7
4
- data.tar.gz: 411b317f795c7918349c778e1af6c980ff11ddc97d6dd03ab8b519fa6b7a3570
3
+ metadata.gz: 00bf11a6208764e6d1e5c1231844a8f589815c83edd1324d507d81b32296b840
4
+ data.tar.gz: 1467c294859385f85d7953dbb45371df0acdc3fe61ece2d75874ff5b7940c2cb
5
5
  SHA512:
6
- metadata.gz: 477a5c7bbcfc5be60a8880e25b4d93fb280124a2ae31c279842c855de21bc2295a3d0474e63759362aea27b872d7e45587142c0952d9706ac003286a081057d5
7
- data.tar.gz: 8792f00819950c34e19eba640a4417abd6f5aae102c6e15098d8fe52d6de2199f60e33395f9de56bc754ab78fc1e839271915ccdf327ad906b789126e5b7446f
6
+ metadata.gz: 500ffd7540a43b9b175239719bf85c678f63d3a7553a2070147826179c456f7e3219bf8506569b808023f52ecafc922153a247eeaf3f1816c9e7e4251c6003ad
7
+ data.tar.gz: f7b7955ad554a338d2eaedbeb3cce1a7ca9512f792b7ae62c063d1fb1d8190d1c4496ad4b3c75ebd7132fa5e6cc70792b1454591dca5d254cdac0e27de19a896
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.4.19
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 que instrui a IA a gerar cenários Gherkin no idioma indicado
47
+ # Prompt base com validação interna (checklist)
48
48
  prompt_base = <<~PROMPT
49
- Gere cenários BDD no formato Gherkin, utilizando as palavras-chave estruturais no idioma "#{idioma}":
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
- Instruções:
60
- - Todos os textos dos passos devem ser escritos em **português**.
61
- - Use as palavras-chave Gherkin no idioma especificado ("#{idioma}").
62
- - Gere **vários cenários**, incluindo positivos e negativos.
63
- - Use `Scenario Outline` e `Examples` sempre que houver valores variáveis.
64
- - Mantenha os parâmetros como `<email>`, `<senha>` e outros entre colchetes angulares, exatamente como aparecem.
65
- - Se a história fornecer contexto (ex: `[CONTEXT]` ou "Dado que..."), utilize-o como base para os cenários.
66
- - Se não houver contexto explícito, **crie um coerente** baseado na história.
67
- - A primeira linha do resultado deve conter obrigatoriamente `# language: #{idioma}`.
68
- - Evite passos vagos ou genéricos. Use ações claras e específicas.
69
- - Gere apenas o conteúdo da feature, sem explicações adicionais.
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
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.19
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-12 00:00:00.000000000 Z
11
+ date: 2025-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prawn