//go:build e2e

package testkit

import (
	"testing"

	"github.com/tidbcloud/AgentTeam/e2e/assertions"
	"github.com/tidbcloud/AgentTeam/e2e/client"
)

// RequireWorkspace returns the configured workspace or the first accessible workspace.
func RequireWorkspace(t *testing.T, session Session) client.Workspace {
	t.Helper()

	cfg := LoadConfig(t)
	if cfg.WorkspaceID != "" {
		return client.Workspace{ID: cfg.WorkspaceID}
	}

	ctx, cancel := APIContext(t)
	defer cancel()

	workspaces, status, raw, err := session.API.ListWorkspaces(ctx)
	if err != nil {
		t.Fatalf("list workspaces: %v", err)
	}
	assertions.RequireStatus(t, status, DefaultHTTPStatusOK, raw)
	if len(workspaces) == 0 {
		t.Fatalf("expected at least one workspace")
	}
	return workspaces[0]
}
