package miner

import (
	"context"
)

func NewTestMiner(nextCh <-chan struct{}) func(api api) *Miner {
	return func(api api) *Miner {
		return &Miner{
			api:      api,
			waitFunc: chanWaiter(nextCh),
		}
	}
}

func chanWaiter(next <-chan struct{}) func(ctx context.Context) error {
	return func(ctx context.Context) error {
		select {
		case <-ctx.Done():
			return ctx.Err()
		case <-next:
		}

		return nil
	}
}