package app

import (
	"testing"
	"time"

	"evening_detective_server/internal/repos"
)

func TestMapUser(t *testing.T) {
	t.Run("nil — обезличенный автор, возвращает nil", func(t *testing.T) {
		if got := mapUser(nil); got != nil {
			t.Errorf("mapUser(nil) = %v, want nil", got)
		}
	})

	t.Run("обычный пользователь маппится полностью", func(t *testing.T) {
		u := &repos.User{
			ID:        42,
			Username:  "detective",
			Email:     "d@example.com",
			Roles:     []string{"user"},
			IsActive:  true,
			CreatedAt: time.Date(2026, 8, 18, 12, 0, 0, 0, time.UTC),
		}
		got := mapUser(u)
		if got == nil {
			t.Fatal("mapUser вернул nil для не-nil пользователя")
		}
		if got.Id != 42 || got.Username != "detective" || got.Email != "d@example.com" {
			t.Errorf("неожиданный маппинг: %+v", got)
		}
		if len(got.Roles) != 1 || got.Roles[0] != "user" {
			t.Errorf("roles = %v, want [user]", got.Roles)
		}
	})
}
