package aislegopher import ( "context" "net/url" "testing" ) func TestGetItemFromURL_InvalidHost(t *testing.T) { u, _ := url.Parse("https://example.com/p/slug/123") _, err := GetItemFromURL(context.Background(), nil, u) if err != ErrInvalidURL { t.Errorf("expected ErrInvalidURL, got %v", err) } } func TestGetItemFromURL_InvalidPath_NoP(t *testing.T) { u, _ := url.Parse("https://aislegopher.com/x/slug/123") _, err := GetItemFromURL(context.Background(), nil, u) if err != ErrInvalidURL { t.Errorf("expected ErrInvalidURL, got %v", err) } } func TestGetItemFromURL_InvalidPath_TooShort(t *testing.T) { u, _ := url.Parse("https://aislegopher.com/p/slug") _, err := GetItemFromURL(context.Background(), nil, u) if err != ErrInvalidURL { t.Errorf("expected ErrInvalidURL, got %v", err) } } func TestGetItemFromURL_InvalidPath_TooLong(t *testing.T) { u, _ := url.Parse("https://aislegopher.com/p/slug/123/extra") _, err := GetItemFromURL(context.Background(), nil, u) if err != ErrInvalidURL { t.Errorf("expected ErrInvalidURL, got %v", err) } }