package worker

import (
	"context"
	"testing"
	"time"

	"github.com/stretchr/testify/require"
	service_config "github.com/tidbcloud/dataflow-service-ng/internal/config"
	"github.com/tidbcloud/pkgv2/bizerr"
)

type dataPipelineObservationModelStub struct{}

func (dataPipelineObservationModelStub) SyncObservations(context.Context) bizerr.BizError {
	return nil
}

func TestNewDataPipelineWorkerSchedulerHonorsWorkerGate(t *testing.T) {
	t.Parallel()

	disabled, err := newDataPipelineWorkerScheduler(
		context.Background(),
		time.UTC,
		service_config.DataPipelineConfig{ObservationIntervalSeconds: 30},
		dataPipelineObservationModelStub{},
	)
	require.NoError(t, err)
	require.Nil(t, disabled)

	enabled, err := newDataPipelineWorkerScheduler(
		context.Background(),
		time.UTC,
		service_config.DataPipelineConfig{
			ObservationIntervalSeconds: 30,
			LakeBaseURL:                "https://lake.example.test",
		},
		dataPipelineObservationModelStub{},
	)
	require.NoError(t, err)
	require.NotNil(t, enabled)
	require.Len(t, enabled.Jobs(), 1)
}
