using Microsoft.EntityFrameworkCore;
using ROLAC.API.Data;
using ROLAC.API.Services.Ai;
using Xunit;

namespace ROLAC.API.Tests.Services;

public class ChurchAiConfigProviderTests
{
    private static AppDbContext NewDb() =>
        new AppDbContext(new DbContextOptionsBuilder<AppDbContext>()
            .UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);

    [Fact]
    public async Task GetAsync_returns_defaults_when_no_profile_row()
    {
        using var db = NewDb();   // empty DB, no ChurchProfile

        var cfg = await new ChurchAiConfigProvider(db).GetAsync();

        Assert.Equal("Claude", cfg.Provider);
        Assert.Equal("claude-haiku-4-5-20251001", cfg.ClaudeModel);
        Assert.Equal("gemini-2.5-flash-lite", cfg.GeminiModel);
        Assert.Null(cfg.ClaudeApiKey);
        Assert.Null(cfg.GeminiApiKey);
    }
}
