package publisher

import (
	"fmt"
	"testing"
	"time"

	"github.com/stretchr/testify/require"
	"github.com/tidbcloud/dataflow-service/pkg/event"
	"github.com/tidbcloud/tiinf/transport/tieventbus"
)

// testConsumeImportEvent is for offline import event test
// 1. enable this test case
// 2. build binary: `CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go test -c eventbus_test.go -o event-test`
//
//nolint:deadcode
func testConsumeImportEvent(t *testing.T) {
	eventbus, err := tieventbus.NewEventbus(tieventbus.EventbusConfig{
		AppName: "import-consumer",
	})
	require.NoError(t, err)
	eventbus.RegisterHandler(
		tieventbus.HandlerConfig{
			EventType: string(event.ImportTopic),
			Group:     "consumer",
			HandleFunc: func(event *tieventbus.Event) error {
				fmt.Printf("Received event(ID=%s, Type=%s, Data=[%v])\n", event.ID, event.Type, event.Data)
				return nil
			},
			DataStruct: event.ImportEvent{},
		})
	err = eventbus.Run()
	require.NoError(t, err)
	time.Sleep(30 * time.Second)
	eventbus.Close()
}
