#44449: fix RenderingService.IsAvailable()

pull/45259/head
Artur Wierzbicki 3 years ago
parent cb461d931f
commit 1db8ff6f65
  1. 2
      pkg/services/rendering/rendering.go
  2. 17
      pkg/services/rendering/rendering_test.go

@ -167,7 +167,7 @@ func (rs *RenderingService) remoteAvailable() bool {
} }
func (rs *RenderingService) IsAvailable() bool { func (rs *RenderingService) IsAvailable() bool {
return rs.remoteAvailable() || rs.pluginAvailable() return (rs.remoteAvailable() && rs.Version() != "") || rs.pluginAvailable()
} }
func (rs *RenderingService) Version() string { func (rs *RenderingService) Version() string {

@ -149,10 +149,23 @@ func TestRenderLimitImage(t *testing.T) {
func TestRenderingServiceGetRemotePluginVersion(t *testing.T) { func TestRenderingServiceGetRemotePluginVersion(t *testing.T) {
cfg := setting.NewCfg() cfg := setting.NewCfg()
rs := &RenderingService{ rs := &RenderingService{
Cfg: cfg, Cfg: cfg,
log: log.New("rendering-test"), RendererPluginManager: &dummyPluginManager{},
log: log.New("rendering-test"),
} }
t.Run("When renderer url is set but version is missing", func(t *testing.T) {
rs.Cfg.RendererUrl = "http://localhost:8081/render"
rs.version = ""
require.Equal(t, false, rs.IsAvailable())
})
t.Run("When renderer url is set and version is present", func(t *testing.T) {
rs.Cfg.RendererUrl = "http://localhost:8081/render"
rs.version = "1.0.0"
require.Equal(t, true, rs.IsAvailable())
})
t.Run("When renderer responds with correct version should return that version", func(t *testing.T) { t.Run("When renderer responds with correct version should return that version", func(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")

Loading…
Cancel
Save