Preserve named patterns when --update rewrites a failing block
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- cli, testing-qa
Línea de trabajo
Comienza con la implementación actual de buildUpdatedBlock() y revisa el plan activo de expansión de comodines para la integración en update-mode. Reproduce el fallo con el ejemplo de markdown proporcionado y, después, sigue la correspondencia entre la salida esperada y los patrones con nombre. Se considera terminado cuando las actualizaciones de texto estables funcionan mientras se conservan los patrones con nombre coincidentes, los casos ambiguos muestran una advertencia y una ejecución normal posterior pasa correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
tryscript run --update replaces the entire expected-output section of each failing block with literal output. If that block contains named patterns for values such as a sandbox path, timestamp, PID, or allocated byte count, the update silently turns them into one run's concrete values. The next ordinary run then fails even when the intended stable-output update was correct.
This makes the documented update-and-compare workflow unsafe for realistic golden files that intentionally retain named patterns.
Observed with tryscript 0.1.7. The current buildUpdatedBlock() implementation writes result.actualOutput directly, so this appears to be current behavior rather than a platform-specific failure.
Minimal Reproduction
---
patterns:
PID: '\d+'
---
# Mixed Stable and Unstable Output
```console
$ node -e "console.log('status: new'); console.log('pid: ' + process.pid)"
status: old
pid: [PID]
? 0
Run:
```console
tryscript run --update example.tryscript.md
tryscript run example.tryscript.md
The first command rewrites the block to a literal PID. The second command fails when Node has a different PID.
A concrete downstream case changed fixture names and stable byte totals in CLI transcripts containing [SCAN_PATH], [MTIME_NS], and [ALLOCATED]. --update replaced all three pattern classes with literals across every changed block, and the mandatory comparison failed on the next sandbox.
Desired Behavior
When updating a structurally corresponding block:
- update stable text that no longer matches
- preserve named patterns where the old expected output used them and the corresponding new value still matches that pattern
- make an immediate ordinary rerun pass
- warn clearly instead of silently literalizing a named pattern when correspondence is ambiguous
- retain an explicit opt-in such as
--expand-allfor users who do want named patterns replaced by concrete values
The active wildcard-expansion plan already notes possible integration where update mode prefers preservation when possible. A public issue would make that remaining workflow gap visible and testable.
- Lenguaje dominante
- TypeScript
- Estrellas
- 13
- Forks
- 1
- Merge medio
- 3 h 38 min
- PR fusionados (30 d)
- 3
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de jlevy/tryscript
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Todos los issues de jlevy/tryscript
Issues similares
-
Browser Waiting for: Product Owner
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
getsentry/sentry-javascript#24577 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
agilepathway/label-checker#640 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
copse-dev/agent-pane#2953 ·
-
[aw] Upgrade available Abiertoagentic-workflows
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
githubnext/rig#534 ·
-
automation missing-model model-sync provider:pioneer
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
anomalyco/models.dev#7701 ·