package alert import ( "testing" "time" ) func TestUnacknowledgeReturnsFiringAndClearsActor(t *testing.T) { at := time.Date(2026, 8, 2, 12, 0, 0, 0, time.UTC) result, err := Unacknowledge(Snapshot{State: StateAcknowledged, RetainedState: StateAcknowledged, AcknowledgedBy: "operator", AcknowledgedAt: &at, LastValue: 90}, "operator", at) if err != nil { t.Fatal(err) } if result.To != StateFiring || result.Snapshot.AcknowledgedBy != "" || result.Snapshot.AcknowledgedAt != nil || result.EventType != "unacknowledge" { t.Fatalf("unexpected unacknowledge result: %#v", result) } } func TestUnacknowledgeRejectsResolvedAndInactive(t *testing.T) { at := time.Now().UTC() for _, state := range []State{StateInactive, StatePending, StateFiring, StateResolved, StateUnknown} { if _, err := Unacknowledge(Snapshot{State: state}, "operator", at); err != ErrStateConflict { t.Fatalf("state %s error = %v", state, err) } } }