From 0f145082ad7f6c7b538a30743f8f472cfc0860e0 Mon Sep 17 00:00:00 2001 From: Niklas Fasching Date: Sat, 18 Jun 2022 15:06:48 +0200 Subject: [PATCH] Refactor writer tests Until now we're not using t.Run to create a sub test for each fixture - for the current bug I want to only run a single file as I'm a print debugger and don't care for the noise of logs from other tests. While at it, it made sense to merge the implementations. --- org/html_writer_test.go | 15 +-------------- org/org_writer_test.go | 35 +++++++++++++++++++---------------- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/org/html_writer_test.go b/org/html_writer_test.go index 969360c..bccb464 100644 --- a/org/html_writer_test.go +++ b/org/html_writer_test.go @@ -16,20 +16,7 @@ func (w *ExtendedHTMLWriter) WriteText(t Text) { } func TestHTMLWriter(t *testing.T) { - for _, path := range orgTestFiles() { - expected := fileString(path[:len(path)-len(".org")] + ".html") - reader, writer := strings.NewReader(fileString(path)), NewHTMLWriter() - actual, err := New().Silent().Parse(reader, path).Write(writer) - if err != nil { - t.Errorf("%s\n got error: %s", path, err) - continue - } - if actual != expected { - t.Errorf("%s:\n%s'", path, diff(actual, expected)) - } else { - t.Logf("%s: passed!", path) - } - } + testWriter(t, func() Writer { return NewHTMLWriter() }, ".html") } func TestExtendedHTMLWriter(t *testing.T) { diff --git a/org/org_writer_test.go b/org/org_writer_test.go index 9582152..539ef8c 100644 --- a/org/org_writer_test.go +++ b/org/org_writer_test.go @@ -21,20 +21,7 @@ func (w *ExtendedOrgWriter) WriteText(t Text) { } func TestOrgWriter(t *testing.T) { - for _, path := range orgTestFiles() { - expected := fileString(path[:len(path)-len(".org")] + ".pretty_org") - reader, writer := strings.NewReader(fileString(path)), NewOrgWriter() - actual, err := New().Silent().Parse(reader, path).Write(writer) - if err != nil { - t.Errorf("%s\n got error: %s", path, err) - continue - } - if actual != expected { - t.Errorf("%s:\n%s'", path, diff(actual, expected)) - } else { - t.Logf("%s: passed!", path) - } - } + testWriter(t, func() Writer { return NewOrgWriter() }, ".pretty_org") } func TestExtendedOrgWriter(t *testing.T) { @@ -48,6 +35,22 @@ func TestExtendedOrgWriter(t *testing.T) { } } +func testWriter(t *testing.T, newWriter func() Writer, ext string) { + for _, path := range orgTestFiles() { + tmpPath := path[:len(path)-len(".org")] + t.Run(filepath.Base(tmpPath), func(t *testing.T) { + expected := fileString(t, tmpPath+ext) + reader := strings.NewReader(fileString(t, path)) + actual, err := New().Silent().Parse(reader, path).Write(newWriter()) + if err != nil { + t.Fatalf("%s\n got error: %s", path, err) + } else if actual != expected { + t.Fatalf("%s:\n%s'", path, "") + } + }) + } +} + func orgTestFiles() []string { dir := "./testdata" files, err := ioutil.ReadDir(dir) @@ -65,10 +68,10 @@ func orgTestFiles() []string { return orgFiles } -func fileString(path string) string { +func fileString(t *testing.T, path string) string { bs, err := ioutil.ReadFile(path) if err != nil { - panic(fmt.Sprintf("Could not read file %s: %s", path, err)) + t.Fatalf("Could not read file %s: %s", path, err) } return string(bs) }