45 lines
952 B
Go
45 lines
952 B
Go
package importer
|
|
|
|
import (
|
|
"compress/gzip"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestValidateHeader(t *testing.T) {
|
|
t.Parallel()
|
|
tests := []struct {
|
|
name string
|
|
header string
|
|
wantErr bool
|
|
}{
|
|
{name: "approved header", header: strings.Join(expectedHeader, ",")},
|
|
{name: "unknown column", header: "wrong", wantErr: true},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
path := filepath.Join(t.TempDir(), "input.csv.gz")
|
|
file, err := os.Create(path)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
writer := gzip.NewWriter(file)
|
|
if _, err := writer.Write([]byte(tt.header + "\n")); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := writer.Close(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := file.Close(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = validateHeader(path)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Fatalf("validateHeader() error = %v, wantErr %v", err, tt.wantErr)
|
|
}
|
|
})
|
|
}
|
|
}
|