[testify-expert] Improve Test Quality: pkg/stringutil/identifiers_test.go
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
Línea de trabajo
Empieza con pkg/stringutil/identifiers_test.go y compara sus casos con las funciones de pkg/stringutil/identifiers.go. Añade los casos límite de rutas y separadores indicados, convierte los casos de ida y vuelta en una tabla y sustituye las comparaciones manuales por aserciones de testify. Ejecuta las pruebas del paquete y el formateo; el trabajo está terminado cuando se cumple la lista de aceptación y make test-unit pasa.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Current State
- Test file:
pkg/stringutil/identifiers_test.go(417 LOC, 6 test functions) - Source:
pkg/stringutil/identifiers.go(5 exported funcs:NormalizeWorkflowName,NormalizeSafeOutputIdentifier,NormalizeIdentifierToHyphens,MarkdownToLockFile,LockFileToMarkdown) - Testify usage: none (0
assert/require; 7 manualt.Errorf/t.Fatalf)
Strengths
- Table-driven with named cases and
t.Parallel()throughout. - Every exported function has a test.
Prioritized Improvements
1. Missing / high-value tests
MarkdownToLockFile/LockFileToMarkdown: addfilepath.Cleanedge cases (./a.md,dir//a.md,dir/../a.md, empty string) and check that the "unchanged" shortcut paths are documented by tests.NormalizeIdentifierToHyphens: add combined_and.input, consecutive separators (a__b..c), and leading/trailing separators.TestRoundTripConversions: add nested paths (.github/workflows/x.md) and dotted names (my.workflow.md).
2. Testify assertion upgrades
Before / after
// before
if result != tt.expected {
t.Errorf("NormalizeWorkflowName(%q) = %q, expected %q", tt.input, result, tt.expected)
}
// after
assert.Equal(t, tt.expected, NormalizeWorkflowName(tt.input), "NormalizeWorkflowName(%q)", tt.input)
Round-trip tests:
lockFile := MarkdownToLockFile(original)
assert.Equal(t, original, LockFileToMarkdown(lockFile), "round trip via %q", lockFile)
Add github.com/stretchr/testify/assert import and replace all t.Errorf comparisons in the 6 tests.
3. Table-driven refactors
- Merge the two round-trip subtests into one table (
name,input,convert,inverse).
4. Organization / readability
- Drop redundant comments; consider a shared helper type
{name, input, expected string}for the single-string tables to reduce struct boilerplate.
Acceptance Checklist
- All
t.Errorfcomparisons replaced withassert.Equal - New edge cases added for path cleaning and separator handling
- Round-trip tests table-driven
-
make test-unitpasses -
make fmtrun
Generated by 🧪 Daily Testify Uber Super Expert · copilot · auto · ~13 AIC · ⌖ ~1 AIC · ⊞ 8.6K · ◷
- expires on Oct 25, 2026, 10:03 AM UTC-08:00
- Lenguaje dominante
- Go
- Estrellas
- 5.4k
- Forks
- 596
- Merge medio
- 3 h 40 min
- PR fusionados (30 d)
- 830
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 github/gh-aw
-
automation models
Dificultad 1/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
automated conformance safe-outputs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
automated conformance safe-outputs
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
wgdonenotdeferred: parenthesized Done() statement escapes non-deferred detection (paren_unwrap_gap)Abiertocookie sergo
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
cookie eslint
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
Todos los issues de github/gh-aw
Issues similares
-
[BUG] deploy.restart_policy without condition drops the restart policyPosiblemente ocupada @akshat-lakhera la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
docker/compose#14383 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
AvengeMedia/dank-greeter#39 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
dokku/dokku-datastore#367 ·
Los mantenedores suelen responder en 1 día
-
[Bug]: ap gateway image build cannot find local policies on WindowsPosiblemente ocupada @Jayzilva la tomó hoy. AbiertoAspect/Configuration Severity/Major
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
wso2/api-platform#3912 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días