package html_test
import (
"bytes"
"fmt"
"os"
"testing"
"github.com/google/go-cmp/cmp"
"code.sajari.com/docconv"
)
func TestConvertHTML_readabilityUseClasses(t *testing.T) {
tests := []struct {
readabilityUseClasses string
want string
}{
// The default value set by this package.
{
readabilityUseClasses: "",
want: ``,
},
// Enable output with readability true.
{
readabilityUseClasses: "good",
want: `1
word
This is a full sentence.
`,
},
}
for _, tt := range tests {
t.Run(fmt.Sprintf("%q", tt.readabilityUseClasses), func(t *testing.T) {
old := docconv.HTMLReadabilityOptionsValues.ReadabilityUseClasses
t.Cleanup(func() {
docconv.HTMLReadabilityOptionsValues.ReadabilityUseClasses = old
})
docconv.HTMLReadabilityOptionsValues.ReadabilityUseClasses = tt.readabilityUseClasses
data, err := os.ReadFile("testdata/test.html")
must(t, err)
got, _, err := docconv.ConvertHTML(bytes.NewReader(data), true)
must(t, err)
diff := cmp.Diff(tt.want, got)
if diff != "" {
t.Errorf("result mismatch (-want +got):\n%v", diff)
}
})
}
}
func must(t *testing.T, err error) {
t.Helper()
if err != nil {
t.Fatal(err)
}
}