mirror of
https://github.com/sosedoff/pgweb.git
synced 2024-12-15 11:52:12 +03:00
74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
package client
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_PrepareBigints(t *testing.T) {
|
|
result := Result{
|
|
Columns: []string{"value"},
|
|
Rows: []Row{
|
|
Row{int(1234)},
|
|
Row{int64(9223372036854775807)},
|
|
Row{int64(-9223372036854775808)},
|
|
Row{float64(9223372036854775808.9223372036854775808)},
|
|
Row{float64(999999999999999.9)},
|
|
},
|
|
}
|
|
|
|
result.PrepareBigints()
|
|
|
|
assert.Equal(t, 1234, result.Rows[0][0])
|
|
assert.Equal(t, "9223372036854775807", result.Rows[1][0])
|
|
assert.Equal(t, "-9223372036854775808", result.Rows[2][0])
|
|
assert.Equal(t, "9.223372036854776e+18", result.Rows[3][0])
|
|
assert.Equal(t, "9.999999999999999e+14", result.Rows[4][0])
|
|
}
|
|
|
|
func Test_CSV(t *testing.T) {
|
|
result := Result{
|
|
Columns: []string{"id", "name", "email"},
|
|
Rows: []Row{
|
|
Row{1, "John", "john@example.com"},
|
|
Row{2, "Bob", "bob@example.com"},
|
|
},
|
|
}
|
|
|
|
expected := "id,name,email\n1,John,john@example.com\n2,Bob,bob@example.com\n"
|
|
output := string(result.CSV())
|
|
|
|
assert.Equal(t, expected, output)
|
|
}
|
|
|
|
func Test_JSON(t *testing.T) {
|
|
result := Result{
|
|
Columns: []string{"id", "name", "email"},
|
|
Rows: []Row{
|
|
Row{1, "John", "john@example.com"},
|
|
Row{2, "Bob", "bob@example.com"},
|
|
},
|
|
}
|
|
|
|
obj := []struct {
|
|
Id int
|
|
Name string
|
|
Email string
|
|
}{}
|
|
|
|
expected := []struct {
|
|
Id int
|
|
Name string
|
|
Email string
|
|
}{
|
|
{1, "John", "john@example.com"},
|
|
{2, "Bob", "bob@example.com"},
|
|
}
|
|
|
|
assert.NoError(t, json.Unmarshal(result.JSON(), &obj))
|
|
assert.Equal(t, 2, len(obj))
|
|
assert.Equal(t, expected, obj)
|
|
}
|