package app import ( "fmt" "net/http" "strings" "testing" ) func TestBrowserFetchDomainAllowedMatchesSubdomain(t *testing.T) { t.Parallel() if !browserFetchDomainAllowed("https://mbd.baidu.com/bh/m/detail/ar_10234112381636647949", []string{"baidu.com"}) { t.Fatalf("expected baidu.com to allow mbd.baidu.com") } if browserFetchDomainAllowed("https://notbaidu.com/article", []string{"baidu.com"}) { t.Fatalf("expected baidu.com not to allow notbaidu.com") } } func TestClassifiedSourceFetchErrorIncludesBrowserFallbackFailure(t *testing.T) { t.Parallel() err := classifySourceFetchError("https://mbd.baidu.com/article", fmt.Errorf( "webpage parser failed: status=%d body=invalid link; browser fetch fallback failed: domain is not allowed", http.StatusInternalServerError, )) message := err.Error() for _, expected := range []string{ "source website fetch restricted status=500", "webpage parser failed", "browser fetch fallback failed: domain is not allowed", } { if !strings.Contains(message, expected) { t.Fatalf("classified error = %q, want %q", message, expected) } } }