Ctrl K
ComunidadGuías…

internal/rest/filter_helpers_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package rest

import (
	"testing"
	"time"
)

func TestParseLabelFilter(t *testing.T) {
	labels, err := parseLabelFilter("env=prod, region=us-east-1")
	if err != nil {
		t.Fatalf("parseLabelFilter returned error: %v", err)
	}
	if got, want := labels["env"], "prod"; got != want {
		t.Fatalf("env = %q, want %q", got, want)
	}
	if got, want := labels["region"], "us-east-1"; got != want {
		t.Fatalf("region = %q, want %q", got, want)
	}

	if _, err := parseLabelFilter("env"); err == nil {
		t.Fatal("expected invalid label filter to fail")
	}
}

func TestParseDateFilter(t *testing.T) {
	start, err := parseDateFilter("2026-09-18", false)
	if err != nil {
		t.Fatalf("parseDateFilter start returned error: %v", err)
	}
	if got, want := start.Format(time.RFC3339Nano), "2026-09-18T00:00:00Z"; got != want {
		t.Fatalf("start = %q, want %q", got, want)
	}

	end, err := parseDateFilter("2026-09-18", true)
	if err != nil {
		t.Fatalf("parseDateFilter end returned error: %v", err)
	}
	if got, want := end.Format(time.RFC3339Nano), "2026-09-18T23:59:59.999999999Z"; got != want {
		t.Fatalf("end = %q, want %q", got, want)
	}

	if _, err := parseDateFilter("09/18/2026", false); err == nil {
		t.Fatal("expected invalid date filter to fail")
	}
}

func TestParseDateFilter_AcceptsRFC3339(t *testing.T) {
	ts, err := parseDateFilter("2026-09-18T10:30:00.5Z", true)
	if err != nil {
		t.Fatal(err)
	}
	if got, want := ts.Format(time.RFC3339Nano), "2026-09-18T10:30:00.5Z"; got != want {
		t.Fatalf("got %q, want %q (an exact timestamp is not moved to the end of day)", got, want)
	}
}