namespace ZB.MOM.WW.MxGateway.Server.Workers;

public sealed class WorkerProcessStartedProbe : IWorkerStartupProbe
{
    /// <inheritdoc />
    public Task WaitUntilReadyAsync(
        IWorkerProcess process,
        WorkerProcessLaunchRequest request,
        CancellationToken cancellationToken)
    {
        if (process.HasExited)
        {
            throw new WorkerProcessLaunchException(
                WorkerProcessLaunchErrorCode.StartupFailed,
                $"Worker process exited before startup completed with exit code {process.ExitCode}.");
        }

        return Task.CompletedTask;
    }
}
