@ingeniomaps/cauce 0.14.1 → 0.14.2

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/CHANGELOG.md CHANGED
@@ -8,6 +8,15 @@ esa operación sea confiable en vez de sólo cómoda: acá se lee qué cambió a
8
8
  un cambio en el protocolo, en las reglas del sistema o en un guard es visible para el usuario y sube
9
9
  minor aunque no toque una sola línea de código.
10
10
 
11
+ ## [0.14.2] - 2026-08-16
12
+
13
+ ### Corregido
14
+
15
+ - **Un comportamiento esperado partido en varias líneas contaba como varios.** El parser de casos leía
16
+ líneas en vez de viñetas, así que un caso con cuatro comportamientos declaraba siete — y ese número
17
+ es el denominador de toda la evaluación: ninguno podía pasar. No se veía en el catálogo del sistema,
18
+ donde todas las viñetas entran en una línea; apareció en el primer caso escrito por una empresa.
19
+
11
20
  ## [0.14.1] - 2026-08-16
12
21
 
13
22
  ### Corregido
@@ -30,9 +30,17 @@ function caseFiles(dir) {
30
30
  function parseCase(text) {
31
31
  const request = (text.match(/#\s*Solicitud\s*\n([\s\S]*?)(?=\n#\s|$)/) || [])[1] || ''
32
32
  const block = (text.match(/#\s*Comportamientos esperados\s*\n([\s\S]*?)(?=\n#\s|$)/) || [])[1] || ''
33
- const expected = block.split('\n')
34
- .map((line) => line.replace(/^\s*-\s*/, '').trim())
35
- .filter(Boolean)
33
+ // Una viñeta puede ocupar varias líneas. Contar líneas en vez de viñetas hacía que un caso con
34
+ // cuatro comportamientos declarara siete, y ese número es el denominador de toda la evaluación.
35
+ // No se veía en el catálogo del sistema porque ahí las viñetas entran en una línea.
36
+ const expected = []
37
+ for (const line of block.split('\n')) {
38
+ const bullet = line.match(/^\s*-\s+(.*)$/)
39
+ if (bullet) expected.push(bullet[1].trim())
40
+ else if (expected.length && line.trim()) {
41
+ expected[expected.length - 1] = `${expected[expected.length - 1]} ${line.trim()}`
42
+ }
43
+ }
36
44
  return { request: request.trim(), expected }
37
45
  }
38
46
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingeniomaps/cauce",
3
- "version": "0.14.1",
3
+ "version": "0.14.2",
4
4
  "description": "Sistema portable de planificación y ejecución verificable para cualquier proyecto",
5
5
  "type": "commonjs",
6
6
  "bin": {