package pool

import (
	"testing"
)

func TestAuthenticateSetsLoginRequestID(t *testing.T) {
	p := &Proxy{
		config: &Config{Wallet: "48test", Password: "x"},
		stopCh: make(chan struct{}),
	}
	// authenticate will fail without real conn, but should bump loginRequestID before write fails
	_ = p.authenticate()
	if p.loginRequestID != 1 {
		t.Fatalf("expected loginRequestID=1, got %d", p.loginRequestID)
	}
	_ = p.authenticate()
	if p.loginRequestID != 2 {
		t.Fatalf("expected loginRequestID=2 after second login, got %d", p.loginRequestID)
	}
}

func TestHandleResponseLoginByTrackedID(t *testing.T) {
	p := &Proxy{
		config:         &Config{Wallet: "48test"},
		stopCh:         make(chan struct{}),
		loginRequestID: 42,
	}
	// Should not panic; login branch taken when ID matches
	p.handleResponse(StratumResponse{
		ID:     42,
		Result: []byte(`{"id":"pool-session","status":"OK"}`),
	})
}
