Files
zarinpal-analytics-backend/internal/importer/importer_test.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)
}
})
}
}