Rendering: Add light theme for errors (#41616)
* Add light theme for error rendering * Fix lint * Update images and add rendering_limit_x images
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
package rendering
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
@@ -58,3 +62,80 @@ func TestGetUrl(t *testing.T) {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestRenderErrorImage(t *testing.T) {
|
||||
path, err := filepath.Abs("../../../")
|
||||
require.NoError(t, err)
|
||||
|
||||
rs := RenderingService{
|
||||
Cfg: &setting.Cfg{
|
||||
HomePath: path,
|
||||
},
|
||||
}
|
||||
t.Run("No theme set returns error image with dark theme", func(t *testing.T) {
|
||||
result, err := rs.RenderErrorImage("", nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, result.FilePath, path+"/public/img/rendering_error_dark.png")
|
||||
})
|
||||
|
||||
t.Run("Timeout error returns timeout error image", func(t *testing.T) {
|
||||
result, err := rs.RenderErrorImage(ThemeLight, ErrTimeout)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, result.FilePath, path+"/public/img/rendering_timeout_light.png")
|
||||
})
|
||||
|
||||
t.Run("Generic error returns error image", func(t *testing.T) {
|
||||
result, err := rs.RenderErrorImage(ThemeLight, errors.New("an error"))
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, result.FilePath, path+"/public/img/rendering_error_light.png")
|
||||
})
|
||||
|
||||
t.Run("Unknown image path returns error", func(t *testing.T) {
|
||||
result, err := rs.RenderErrorImage("abc", errors.New("random error"))
|
||||
assert.Error(t, err)
|
||||
assert.Nil(t, result)
|
||||
})
|
||||
}
|
||||
|
||||
func TestRenderLimitImage(t *testing.T) {
|
||||
path, err := filepath.Abs("../../../")
|
||||
require.NoError(t, err)
|
||||
|
||||
rs := RenderingService{
|
||||
Cfg: &setting.Cfg{
|
||||
HomePath: path,
|
||||
},
|
||||
inProgressCount: 2,
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
theme Theme
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
name: "Light theme returns light image",
|
||||
theme: ThemeLight,
|
||||
expected: path + "/public/img/rendering_limit_light.png",
|
||||
},
|
||||
{
|
||||
name: "Dark theme returns dark image",
|
||||
theme: ThemeDark,
|
||||
expected: path + "/public/img/rendering_limit_dark.png",
|
||||
},
|
||||
{
|
||||
name: "No theme returns dark image",
|
||||
theme: "",
|
||||
expected: path + "/public/img/rendering_limit_dark.png",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
opts := Opts{Theme: tc.theme, ConcurrentLimit: 1}
|
||||
result, err := rs.Render(context.Background(), opts)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, tc.expected, result.FilePath)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user