package exec

import (
	"context"
	"net/http"
	"testing"

	"github.com/tidbcloud/AgentTeam/desktop/internal/wire/apiclient"
)

func TestScheduledMessageSourceAdapterRuntimeGates(t *testing.T) {
	write := validScheduledMessageWriteRequest("N")
	for _, client := range []*apiclient.Client{
		nil,
		{RouteWorkspaceID: "ws", AgentID: "ag", AuthToken: "tok"},
		{RouteWorkspaceID: "ws", HTTPClient: http.DefaultClient},
		{AgentID: "ag", AuthToken: "tok", HTTPClient: http.DefaultClient},
	} {
		api := scheduledMessageRemote{client: client}
		if _, err := api.validate(context.Background(), scheduledMessageValidateRequest{scheduledMessageWriteRequest: write}); err == nil {
			t.Fatalf("client %+v passed validate runtime gate", client)
		}
		if _, err := api.create(context.Background(), scheduledMessageCreateRequest{scheduledMessageWriteRequest: write}); err == nil {
			t.Fatalf("client %+v passed create runtime gate", client)
		}
		if _, err := api.update(context.Background(), "sch_1", scheduledMessageUpdateRequest{scheduledMessageWriteRequest: write}); err == nil {
			t.Fatalf("client %+v passed update runtime gate", client)
		}
	}
}
