feat(cicontext): rules:changes: path-glob evaluation; 100% test coverage
- Add --changes PATH and --changes-from REF flags to glint check and glint graph
for rules:changes: evaluation. --changes marks files explicitly; --changes-from
runs git diff --name-only <REF> automatically. Both flags can be combined.
- Implement doublestar glob matching (*, ** across path segments) in EvalJob and
EvalWorkflow; extended {paths, compare_to} map form supported.
- Without --changes/--changes-from the condition stays permissive (existing behaviour).
- Context summary line now shows changed-file count when file data is provided.
- Achieve 100% statement coverage: comprehensive tests added across all packages;
removed provably dead code; added testability seams (exit, userHomeDirFn,
execCommandOutput variables) to cover previously unreachable paths.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -52,6 +52,18 @@ func TestCacheWrite_EmptyDir(t *testing.T) {
|
||||
cacheWrite("", "key", []byte("data"))
|
||||
}
|
||||
|
||||
// TestCacheWrite_DirIsFile covers the os.MkdirAll error path (cache.go:29-31)
|
||||
// when the cache dir path is occupied by a regular file.
|
||||
func TestCacheWrite_DirIsFile(t *testing.T) {
|
||||
f := filepath.Join(t.TempDir(), "file")
|
||||
if err := os.WriteFile(f, []byte("occupied"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// MkdirAll(f) fails because f is a file, not a directory.
|
||||
cacheWrite(f, "key", []byte("data"))
|
||||
// No panic, no error returned — the function silently returns.
|
||||
}
|
||||
|
||||
func TestCacheWrite_MkdirAll(t *testing.T) {
|
||||
dir := filepath.Join(t.TempDir(), "sub", "dir")
|
||||
cacheWrite(dir, "k", []byte("v"))
|
||||
|
||||
Reference in New Issue
Block a user