package inspur

import (
	"testing"
	"time"
)

func TestParseSELListWithLocation_UsesProvidedTimezone(t *testing.T) {
	content := []byte("sel elist:\n1,02/28/2026,04:18:18,Sensor X,Event,Asserted\n")
	shanghai, err := time.LoadLocation("Asia/Shanghai")
	if err != nil {
		t.Fatalf("load location: %v", err)
	}

	events := ParseSELListWithLocation(content, shanghai)
	if len(events) != 1 {
		t.Fatalf("expected 1 event, got %d", len(events))
	}

	// 04:18:18 +08:00 == 20:18:18Z (previous day)
	want := time.Date(2026, 2, 27, 20, 18, 18, 0, time.UTC)
	if !events[0].Timestamp.UTC().Equal(want) {
		t.Fatalf("unexpected timestamp: got %s want %s", events[0].Timestamp.UTC(), want)
	}
}

func TestParseTimezoneConfigLocation(t *testing.T) {
	content := []byte("[TimeZoneConfig]\ntimezone=Asia/Shanghai\n")
	got := parseTimezoneConfigLocation(content)
	if got != "Asia/Shanghai" {
		t.Fatalf("unexpected timezone: %q", got)
	}
}
