siesa-agents 2.1.72-qa.2 → 2.1.72-qa.21
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.
- package/bmad/bmm/config.yaml +33 -0
- package/claude/skills/sa-agent-sre-sentinel/SKILL.md +180 -0
- package/claude/skills/sa-aplicar/SKILL.md +268 -0
- package/claude/skills/sa-auditar-servicio/SKILL.md +255 -0
- package/claude/skills/sa-nueva-transversal/SKILL.md +317 -0
- package/claude/skills/sa-nuevo-ambiente/SKILL.md +147 -0
- package/claude/skills/sa-nuevo-servicio/SKILL.md +530 -0
- package/claude/skills/sa-onboard-db/SKILL.md +122 -0
- package/claude/skills/sa-qa-data-generator/SKILL.md +200 -51
- package/claude/skills/sa-quality-process/SKILL.md +6 -0
- package/claude/skills/sa-registrar-permisos/SKILL.md +233 -0
- package/package.json +1 -1
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_design_test.md +1037 -60
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_dor_gate.md +419 -379
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_e2e_executor.md +273 -0
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_playwright_impl.md +359 -355
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_test_plan.md +73 -111
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/workflow.md +1320 -997
- package/siesa-agents/resources/playwright-kit/.env.example +42 -0
- package/siesa-agents/resources/playwright-kit/README.md +228 -0
- package/siesa-agents/resources/playwright-kit/allure/categories.json +26 -0
- package/siesa-agents/resources/playwright-kit/global-setup.ts +34 -0
- package/siesa-agents/resources/playwright-kit/helpers/blazor-e2e-helpers.ts +417 -0
- package/siesa-agents/resources/playwright-kit/helpers/react-e2e-helpers.ts +297 -0
- package/siesa-agents/resources/playwright-kit/package-lock.json +850 -0
- package/siesa-agents/resources/playwright-kit/package.json +27 -0
- package/siesa-agents/resources/playwright-kit/playwright.config.ts +60 -0
- package/siesa-agents/resources/playwright-kit/proposed/.gitkeep +0 -0
- package/siesa-agents/resources/playwright-kit/reporters/agiletest-reporter.ts +252 -0
- package/siesa-agents/resources/playwright-kit/specs/.gitkeep +0 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-siesa-erp.md +85 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-siesa-react.md +109 -0
- package/siesa-agents/resources/playwright-kit/specs/architecture-brief-template.md +69 -0
- package/siesa-agents/resources/playwright-kit/tests/seed-example.spec.ts +95 -0
- package/siesa-agents/resources/playwright-kit/tools/locator-overlay.js +1306 -0
- package/siesa-agents/resources/playwright-kit/tools/locator-recorder.spec.ts +986 -0
- package/siesa-agents/scripts/__pycache__/bmad_to_agiletest.cpython-36.pyc +0 -0
- package/siesa-agents/scripts/bmad_to_agiletest.py +352 -337
- package/siesa-agents/scripts/converters/convert_csv_to_test_design.py +327 -0
- package/siesa-agents/scripts/converters/convert_excel_to_test_design.py +360 -0
- package/siesa-agents/scripts/converters/convert_md_to_test_design.py +359 -0
- package/siesa-agents/scripts/converters/convert_pdf_to_test_design.py +412 -0
- package/siesa-agents/scripts/converters/export_yaml_to_csv.py +149 -0
- package/siesa-agents/scripts/converters/export_yaml_to_excel.py +233 -0
- package/siesa-agents/scripts/converters/export_yaml_to_markdown.py +172 -0
- package/siesa-agents/scripts/converters/export_yaml_to_pdf.py +297 -0
- package/siesa-agents/scripts/merge_test_design.py +106 -106
- package/siesa-agents/scripts/playwright/yaml-to-playwright-spec.ts +203 -0
- package/siesa-agents/scripts/requirements.txt +7 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* seed-gp.spec.ts — Seed file para Playwright Test Agents (GP / HCM)
|
|
3
|
+
*
|
|
4
|
+
* Establece el contexto de navegacion: Login ERP + seleccion de BD
|
|
5
|
+
* Usado como referencia por los agentes Planner/Generator/Healer
|
|
6
|
+
*
|
|
7
|
+
* Ambiente por defecto: erp-qa-beta.siesaerp.com (baseURL del playwright.config.ts)
|
|
8
|
+
* Credenciales y BD se toman de .env (ver .env.example): TEST_USER / TEST_PASS / DB_ENGINE
|
|
9
|
+
*/
|
|
10
|
+
import { test, expect } from '@playwright/test';
|
|
11
|
+
|
|
12
|
+
// ─── Credenciales via env vars (alineadas con .env.example) ────────────────────
|
|
13
|
+
const CRED = {
|
|
14
|
+
user: process.env.TEST_USER ?? 'Carlos1',
|
|
15
|
+
pass: process.env.TEST_PASS ?? '1234',
|
|
16
|
+
bd: process.env.DB_ENGINE ?? 'sqlserver',
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
test.describe('GP HCM — Seed', () => {
|
|
20
|
+
test('login ERP + verificar dashboard', async ({ page }) => {
|
|
21
|
+
// 1. Navegar al login
|
|
22
|
+
await page.goto('/login');
|
|
23
|
+
await page.waitForLoadState('networkidle');
|
|
24
|
+
|
|
25
|
+
// 2. Seleccionar BD si el selector esta visible
|
|
26
|
+
const bdSelector = page.locator('[data-automation-id="SDKDropDownField_BLLogin.ConnectionName"]');
|
|
27
|
+
if (await bdSelector.isVisible({ timeout: 5_000 }).catch(() => false)) {
|
|
28
|
+
await bdSelector.click();
|
|
29
|
+
await page.getByText(new RegExp(CRED.bd, 'i')).first().click();
|
|
30
|
+
await page.waitForTimeout(1_000);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// 3. Llenar usuario (DevExpress input)
|
|
34
|
+
const userInput = page.locator(
|
|
35
|
+
'[data-automation-id="SDKCharField_BLLogin.Username"] input.dxbl-text-edit-input'
|
|
36
|
+
);
|
|
37
|
+
await userInput.waitFor({ state: 'visible', timeout: 30_000 });
|
|
38
|
+
await userInput.click();
|
|
39
|
+
await userInput.fill('');
|
|
40
|
+
await userInput.pressSequentially(CRED.user, { delay: 50 });
|
|
41
|
+
|
|
42
|
+
// 4. Llenar password
|
|
43
|
+
const passInput = page.locator('[data-automation-id="SDKPasswordField_"]');
|
|
44
|
+
await passInput.click();
|
|
45
|
+
await passInput.fill(CRED.pass);
|
|
46
|
+
|
|
47
|
+
// 5. Click Iniciar sesion
|
|
48
|
+
await page.locator('[data-automation-id="SDKButton_submit"]').click();
|
|
49
|
+
|
|
50
|
+
// 6. Esperar dashboard (Blazor Server no cambia URL tras login)
|
|
51
|
+
await expect(
|
|
52
|
+
page.getByText('Bienvenido', { exact: false })
|
|
53
|
+
).toBeVisible({ timeout: 30_000 }).catch(async () => {
|
|
54
|
+
// Fallback: esperar a que desaparezca el form de login
|
|
55
|
+
await page.locator('[data-automation-id="SDKButton_submit"]')
|
|
56
|
+
.waitFor({ state: 'hidden', timeout: 15_000 })
|
|
57
|
+
.catch(() => {});
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// 7. Verificar que estamos autenticados
|
|
61
|
+
await expect(page.locator('.sdk-loader')).toBeHidden({ timeout: 10_000 }).catch(() => {});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// Ruta del modulo a verificar. Configurable via START_URL en .env (sin default
|
|
65
|
+
// hardcodeado: la ruta exacta depende del modulo bajo prueba). Si no se define,
|
|
66
|
+
// el test se omite en vez de navegar a una ruta inexistente.
|
|
67
|
+
const startUrl = process.env.START_URL;
|
|
68
|
+
test('navegar al modulo configurado (START_URL)', async ({ page }) => {
|
|
69
|
+
test.skip(!startUrl, 'Define START_URL en .env para verificar la navegacion al modulo.');
|
|
70
|
+
|
|
71
|
+
await page.goto('/login');
|
|
72
|
+
await page.waitForLoadState('networkidle');
|
|
73
|
+
|
|
74
|
+
// Login rapido
|
|
75
|
+
const userInput = page.locator(
|
|
76
|
+
'[data-automation-id="SDKCharField_BLLogin.Username"] input.dxbl-text-edit-input'
|
|
77
|
+
);
|
|
78
|
+
await userInput.waitFor({ state: 'visible', timeout: 30_000 });
|
|
79
|
+
await userInput.click();
|
|
80
|
+
await userInput.fill('');
|
|
81
|
+
await userInput.pressSequentially(CRED.user, { delay: 50 });
|
|
82
|
+
await page.locator('[data-automation-id="SDKPasswordField_"]').fill(CRED.pass);
|
|
83
|
+
await page.locator('[data-automation-id="SDKButton_submit"]').click();
|
|
84
|
+
await page.waitForTimeout(5_000);
|
|
85
|
+
|
|
86
|
+
// Navegar al modulo configurado
|
|
87
|
+
await page.goto(startUrl!);
|
|
88
|
+
await page.waitForLoadState('networkidle');
|
|
89
|
+
|
|
90
|
+
// Verificar que el modulo cargo
|
|
91
|
+
await expect(
|
|
92
|
+
page.locator('.rz-datatable, .dxbl-grid, [data-automation-id]').first()
|
|
93
|
+
).toBeVisible({ timeout: 30_000 });
|
|
94
|
+
});
|
|
95
|
+
});
|