fix(agent): reset per-service warnings after a successful build check (#7)
This commit is contained in:
@@ -309,3 +309,30 @@ func TestSnapshot_ServiceAbsentFromConfigFailsClosed(t *testing.T) {
|
||||
}
|
||||
assert.Equal(t, 1, strings.Count(logs.String(), "compose_service_not_in_config"), "logged once per project")
|
||||
}
|
||||
|
||||
func TestSnapshot_MissingServiceIsLoggedAgainAfterItCameBack(t *testing.T) {
|
||||
file := filepath.Join(t.TempDir(), "compose.yaml")
|
||||
write := func(body string) {
|
||||
require.NoError(t, os.WriteFile(file, []byte(body), 0o644))
|
||||
}
|
||||
write("v1")
|
||||
check := &fakeBuildCheck{built: map[string]bool{"db": false}} // "web" missing
|
||||
c, _ := buildCollector(t, check, file)
|
||||
var logs bytes.Buffer
|
||||
c.log = slog.New(slog.NewTextHandler(&logs, nil))
|
||||
snap := func() {
|
||||
_, err := c.Snapshot(context.Background())
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
snap()
|
||||
write("v2 changed")
|
||||
check.built = map[string]bool{"db": false, "web": false} // back
|
||||
snap()
|
||||
assert.Empty(t, c.warned, "warnings are forgotten once the project checks out")
|
||||
write("v3 changed again")
|
||||
check.built = map[string]bool{"db": false} // missing again
|
||||
snap()
|
||||
|
||||
assert.Equal(t, 2, strings.Count(logs.String(), "compose_service_not_in_config"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user