package federal_state

import (
	"testing"

	"gorm.io/gorm"
)

func TestFederalStateTableName(t *testing.T) {
	var m FederalState
	if got := m.TableName(); got != "federal_states" {
		t.Fatalf("expected table name federal_states, got %q", got)
	}
}

func TestFederalStateBeforeCreate(t *testing.T) {
	t.Run("generates id when empty", func(t *testing.T) {
		m := &FederalState{}
		if err := m.BeforeCreate(&gorm.DB{}); err != nil {
			t.Fatalf("unexpected error: %v", err)
		}
		if len(m.ID) == 0 {
			t.Fatalf("expected id to be generated")
		}
	})

	t.Run("keeps existing id", func(t *testing.T) {
		existing := []byte("already-set-id")
		m := &FederalState{ID: append([]byte(nil), existing...)}
		if err := m.BeforeCreate(&gorm.DB{}); err != nil {
			t.Fatalf("unexpected error: %v", err)
		}
		if string(m.ID) != string(existing) {
			t.Fatalf("expected existing id to stay unchanged")
		}
	})
}
