43 lines
662 B
Go
43 lines
662 B
Go
package script
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestCSVWriter(t *testing.T) {
|
|
path := "testdata/output_csv.csv"
|
|
|
|
os.Remove(path)
|
|
defer os.Remove(path)
|
|
|
|
w, err := newCSVwriter(path)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
want := []byte("one,two,three\none,two,three\n")
|
|
|
|
row := []string{"one", "two", "three"}
|
|
|
|
for range 2 {
|
|
if err := w.Write(row); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
if err := w.Close(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
b, err := os.ReadFile(path)
|
|
if err != nil {
|
|
t.Fatalf("err reading output file: %s", err)
|
|
}
|
|
|
|
if !bytes.Equal(want, b) {
|
|
t.Errorf("incorrect result, want: %s, have: %s", string(want), string(b))
|
|
}
|
|
}
|