package api

import (
	"context"
	"os"
	"strings"
	"testing"
)

func TestLoginAndMeIntegration(t *testing.T) {
	email := strings.TrimSpace(os.Getenv("LEADB2B_TEST_EMAIL"))
	password := os.Getenv("LEADB2B_TEST_PASSWORD")
	base := strings.TrimRight(os.Getenv("GLOBALAPI_BASE"), "/")
	key := strings.TrimSpace(os.Getenv("GLOBALAPI_KEY"))
	if email == "" || password == "" || key == "" {
		t.Skip("set LEADB2B_TEST_EMAIL, LEADB2B_TEST_PASSWORD, GLOBALAPI_KEY to run")
	}
	if base == "" {
		base = "https://leads.globals.tech"
	}
	client := NewClient(base, key)
	auth := NewAuthService(client)
	ctx := context.Background()
	tok, err := auth.Login(ctx, LoginRequest{Email: email, Password: password})
	if err != nil {
		t.Fatalf("login: %v", err)
	}
	if tok.AccessToken == "" {
		t.Fatal("empty access_token")
	}
	me, err := auth.Me(ctx, tok.AccessToken)
	if err != nil {
		t.Fatalf("me: %v", err)
	}
	if me.Account.Email != email {
		t.Fatalf("email=%q", me.Account.Email)
	}
}
