pkg/gitops/insights/timing_test.go
Rama main · réplica de lectura del repositorio original.
package insights
import (
"testing"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
func TestBuildFluxDatesDescribeRecordedEvents(t *testing.T) {
kustomization := &unstructured.Unstructured{Object: map[string]any{
"apiVersion": "kustomize.toolkit.fluxcd.io/v1", "kind": "Kustomization",
"status": map[string]any{
"lastAppliedRevision": "main@sha1:current", "lastAttemptedRevision": "main@sha1:failed",
"lastHandledReconcileAt": "2026-10-01T00:00:00Z",
"history": []any{map[string]any{"lastReconciled": "2026-10-30T12:00:00Z", "lastReconciledStatus": "ReconciliationFailed"}},
},
}}
summary := Build(kustomization, nil, nil).Summary
if summary.LastRevision != "main@sha1:current" || summary.LastApplyAttempt != "2026-10-30T12:00:00Z" || summary.LastApplied != "" || summary.LastReconcile != "" {
t.Fatalf("Kustomization summary = %+v", summary)
}
_ = unstructured.SetNestedSlice(kustomization.Object, []any{map[string]any{"lastReconciled": "2026-10-30T12:05:00Z", "lastReconciledStatus": "ReconciliationSucceeded"}}, "status", "history")
if summary := Build(kustomization, nil, nil).Summary; summary.LastApplied != "2026-10-30T12:05:00Z" || summary.LastApplyAttempt != "" {
t.Fatalf("successful apply summary = %+v", summary)
}
unstructured.RemoveNestedField(kustomization.Object, "status", "history")
if summary := Build(kustomization, nil, nil).Summary; summary.LastApplyAttempt != "" || summary.LastApplied != "" || summary.LastReconcile != "" {
t.Fatalf("missing history invented time: %+v", summary)
}
helm := &unstructured.Unstructured{Object: map[string]any{
"apiVersion": "helm.toolkit.fluxcd.io/v2", "kind": "HelmRelease",
"status": map[string]any{"lastAttemptedRevision": "1.3.0", "lastHandledReconcileAt": "manual-marker", "history": []any{
map[string]any{"version": int64(5), "chartVersion": "1.3.0", "status": "failed", "lastDeployed": "2026-10-30T12:00:00Z"},
map[string]any{"version": int64(4), "chartVersion": "1.2.0", "status": "deployed", "lastDeployed": "2026-10-27T12:00:00Z"},
}},
}}
summary = Build(helm, nil, nil).Summary
if summary.LastRevision != "1.2.0" || summary.TargetRevision != "1.3.0" || summary.LastDeployed != "2026-10-27T12:00:00Z" || summary.LastReconcile != "" {
t.Fatalf("Helm summary = %+v", summary)
}
history := []any{map[string]any{"version": int64(6), "status": "deployed", "lastDeployed": "2026-10-30T12:00:00Z"}}
if err := unstructured.SetNestedField(helm.Object, "1.1.0", "status", "lastAppliedRevision"); err != nil {
t.Fatal(err)
}
if err := unstructured.SetNestedSlice(helm.Object, history, "status", "history"); err != nil {
t.Fatal(err)
}
if summary := Build(helm, nil, nil).Summary; summary.LastDeployed != "" || summary.LastRevision != "1.1.0" {
t.Fatalf("unknown deployed chart was paired with attempted revision: %+v", summary)
}
}