diff --git a/internal/reader/readability/readability.go b/internal/reader/readability/readability.go index d3d4fca9..bdc85fe2 100644 --- a/internal/reader/readability/readability.go +++ b/internal/reader/readability/readability.go @@ -400,8 +400,8 @@ func transformMisusedDivsIntoParagraphs(document *goquery.Document) { "table", "ul": return default: - node := s.Get(0) - node.Data = "p" + currentNode := s.Get(0) + currentNode.Data = "p" } } }) diff --git a/internal/reader/readability/readability_test.go b/internal/reader/readability/readability_test.go index de4a434c..14e099cf 100644 --- a/internal/reader/readability/readability_test.go +++ b/internal/reader/readability/readability_test.go @@ -2479,3 +2479,16 @@ func TestCandidateStringEdgeCases(t *testing.T) { } }) } + +func TestExtractContentWithBrokenReader(t *testing.T) { + if _, _, err := ExtractContent(&brokenReader{}); err == nil { + t.Error("Expected ExtractContent to return an error with broken reader") + } +} + +// brokenReader implements io.Reader but always returns an error +type brokenReader struct{} + +func (br *brokenReader) Read(p []byte) (n int, err error) { + return 0, fmt.Errorf("simulated read error") +}