package custody

import "testing"

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

	provider := NewLocalProvider()
	wallet, err := provider.CreateWallet(t.Context(), CreateWalletParams{UserID: "user-1", Name: "Vault"})
	if err != nil {
		t.Fatalf("create wallet: %v", err)
	}
	if wallet.Provider == "" || wallet.ExternalWalletID == "" {
		t.Fatalf("expected wallet metadata, got %+v", wallet)
	}

	address, err := provider.CreateDepositAddress(t.Context(), CreateDepositAddressParams{
		ExternalWalletID: wallet.ExternalWalletID,
		Symbol:           "ETH",
		Network:          "ethereum",
	})
	if err != nil {
		t.Fatalf("create address: %v", err)
	}
	if len(address.Address) < 10 {
		t.Fatalf("expected generated address, got %+v", address)
	}
}
