WebUI: add a JSON helper function

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino
2024-02-04 18:16:10 +01:00
parent c23d779280
commit e5836c8118
7 changed files with 239 additions and 120 deletions

View File

@@ -2195,6 +2195,33 @@ func TestRecoverer(t *testing.T) {
assert.Equal(t, http.StatusInternalServerError, rr.Code, rr.Body.String())
}
func TestStreamJSONArray(t *testing.T) {
dataGetter := func(limit, offset int) ([]byte, int, error) {
return nil, 0, nil
}
rr := httptest.NewRecorder()
streamJSONArray(rr, 10, dataGetter)
assert.Equal(t, `[]`, rr.Body.String())
data := []int{}
for i := 0; i < 10; i++ {
data = append(data, i)
}
dataGetter = func(limit, offset int) ([]byte, int, error) {
if offset >= len(data) {
return nil, 0, nil
}
val := data[offset]
data, err := json.Marshal([]int{val})
return data, 1, err
}
rr = httptest.NewRecorder()
streamJSONArray(rr, 1, dataGetter)
assert.Equal(t, `[0,1,2,3,4,5,6,7,8,9]`, rr.Body.String())
}
func TestCompressorAbortHandler(t *testing.T) {
defer func() {
rcv := recover()
@@ -2209,6 +2236,15 @@ func TestCompressorAbortHandler(t *testing.T) {
renderCompressedFiles(&failingWriter{}, connection, "", nil, share)
}
func TestStreamDataAbortHandler(t *testing.T) {
defer func() {
rcv := recover()
assert.Equal(t, http.ErrAbortHandler, rcv)
}()
streamData(&failingWriter{}, []byte(`["a":"b"]`))
}
func TestZipErrors(t *testing.T) {
user := dataprovider.User{
BaseUser: sdk.BaseUser{