package service

import (
	"context"
	"testing"

	"github.com/stretchr/testify/require"

	coremodel "security-center-backend/internal/model"
	vulnmodel "security-center-backend/internal/modules/vuln/model"
)

func TestGetByPublicIDUsesPublicIdentifierLookup(t *testing.T) {
	ctx := context.Background()
	repo := &accessLifecycleVulnRepo{
		vuln: &vulnmodel.Vulnerability{
			Base:            coremodel.Base{ID: 42},
			PublicID:        "vul-26-0001",
			SubmitterUserID: 10,
		},
	}
	svc := New(repo, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)

	loaded, err := svc.GetByPublicID(ctx, " vul-26-0001 ")
	require.NoError(t, err)
	require.NotNil(t, loaded)
	require.Equal(t, uint64(42), loaded.ID)
	require.Equal(t, "vul-26-0001", loaded.PublicID)

	_, err = svc.GetByPublicID(ctx, "42")
	require.Error(t, err)
	require.Contains(t, err.Error(), "not found")
}
