diff --git a/cmd/kwil-cli/csv/csv.go b/cmd/kwil-cli/csv/csv.go index 643a0cb5b..47cfd6b98 100644 --- a/cmd/kwil-cli/csv/csv.go +++ b/cmd/kwil-cli/csv/csv.go @@ -73,6 +73,9 @@ func cleanHeader(header string) string { // remove leading and trailing quotes str = strings.Trim(str, "\"") + // remove leading and trailing spaces + str = strings.TrimSpace(str) + return str } @@ -82,6 +85,7 @@ func cleanHeader(header string) string { // action input name. func (c *CSV) BuildInputs(inputNames map[string]string) ([]map[string]string, error) { resultMap := make([]map[string]string, 0) + err := c.ForEachRecord(func(record []CSVCell) error { input := make(map[string]string) @@ -140,7 +144,6 @@ type CSVCell struct { func (c *CSV) buildCSVCells(record []string) []CSVCell { csvVals := make([]CSVCell, len(record)) for i, column := range record { - csvVals[i] = CSVCell{ Column: &c.Header[i], Value: column, diff --git a/cmd/kwil-cli/csv/csv_test.go b/cmd/kwil-cli/csv/csv_test.go index 08b402461..f9a7ea1f4 100644 --- a/cmd/kwil-cli/csv/csv_test.go +++ b/cmd/kwil-cli/csv/csv_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/kwilteam/kwil-db/cmd/kwil-cli/csv" + "github.com/stretchr/testify/require" ) func Test_CSV(t *testing.T) { @@ -110,3 +111,22 @@ func Test_ReadDoubleQuotes(t *testing.T) { t.Fatal(`expected 2 columns, got: `, len(res[0])) } } + +func Test_JSON(t *testing.T) { + jsonCsv, err := os.Open("./json.csv") + if err != nil { + t.Fatal(err) + } + + c, err := csv.Read(jsonCsv, csv.ContainsHeader) + if err != nil { + t.Fatal(err) + } + + require.Equal(t, c.Header, []string{"col1", "col2"}) + + require.Equal(t, 1, len(c.Records)) + require.Equal(t, 2, len(c.Records[0])) + require.Equal(t, "test", c.Records[0][0]) + require.Equal(t, `{"id":"6814e549-34f2-42db-9db3-61659b12708d","type":"human","level":"human","status":"approved"}`, c.Records[0][1]) +} diff --git a/cmd/kwil-cli/csv/json.csv b/cmd/kwil-cli/csv/json.csv new file mode 100644 index 000000000..80620ad1d --- /dev/null +++ b/cmd/kwil-cli/csv/json.csv @@ -0,0 +1,2 @@ +col1, col2 +test,"{""id"":""6814e549-34f2-42db-9db3-61659b12708d"",""type"":""human"",""level"":""human"",""status"":""approved""}" \ No newline at end of file