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) } }) } }