using System.Collections.Concurrent;
using ClaudeDo.Worker.Skills;

namespace ClaudeDo.Worker.Tests.Infrastructure;

public sealed class FakeSessionSkillSeeder : ISessionSkillSeeder
{
    public int CallCount;
    public readonly record struct Call(string WorkingDir, IReadOnlyList<string> SkillNames, bool IsWorktree);
    public readonly ConcurrentQueue<Call> Calls = new();

    public Task SeedAsync(string workingDir, IReadOnlyList<string> skillNames, bool isWorktree, CancellationToken ct)
    {
        Interlocked.Increment(ref CallCount);
        Calls.Enqueue(new Call(workingDir, skillNames, isWorktree));
        return Task.CompletedTask;
    }
}
