feat: stream and reconcile challenge dataset

This commit is contained in:
2026-08-20 19:52:01 +03:30
parent 961980d18c
commit cc7a4e4718
3 changed files with 280 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
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)
}
})
}
}