|
|
@ -11,6 +11,8 @@ import ( |
|
|
|
"path/filepath" |
|
|
|
"path/filepath" |
|
|
|
"testing" |
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/grafana/grafana/pkg/infra/log/logtest" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
"github.com/stretchr/testify/require" |
|
|
|
"github.com/stretchr/testify/require" |
|
|
|
|
|
|
|
|
|
|
@ -55,7 +57,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
pluginID: p, |
|
|
|
pluginID: p, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
l := &logger{} |
|
|
|
l := &logtest.Fake{} |
|
|
|
|
|
|
|
|
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
@ -64,7 +66,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
|
|
|
|
|
|
|
|
require.Equal(t, 200, sc.resp.Code) |
|
|
|
require.Equal(t, 200, sc.resp.Code) |
|
|
|
assert.Equal(t, expectedBody, sc.resp.Body.String()) |
|
|
|
assert.Equal(t, expectedBody, sc.resp.Body.String()) |
|
|
|
assert.Empty(t, l.warnings) |
|
|
|
assert.Zero(t, l.WarnLogs.Calls) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
@ -80,7 +82,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
pluginID: p, |
|
|
|
pluginID: p, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
l := &logger{} |
|
|
|
l := &logtest.Fake{} |
|
|
|
|
|
|
|
|
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, tmpFileInParentDir.Name()) |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, tmpFileInParentDir.Name()) |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
@ -103,7 +105,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
pluginID: p, |
|
|
|
pluginID: p, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
l := &logger{} |
|
|
|
l := &logtest.Fake{} |
|
|
|
|
|
|
|
|
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
@ -112,7 +114,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
|
|
|
|
|
|
|
|
require.Equal(t, 200, sc.resp.Code) |
|
|
|
require.Equal(t, 200, sc.resp.Code) |
|
|
|
assert.Equal(t, expectedBody, sc.resp.Body.String()) |
|
|
|
assert.Equal(t, expectedBody, sc.resp.Body.String()) |
|
|
|
assert.Empty(t, l.warnings) |
|
|
|
assert.Zero(t, l.WarnLogs.Calls) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
@ -128,7 +130,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
pluginID: p, |
|
|
|
pluginID: p, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
l := &logger{} |
|
|
|
l := &logtest.Fake{} |
|
|
|
|
|
|
|
|
|
|
|
requestedFile := "nonExistent" |
|
|
|
requestedFile := "nonExistent" |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
@ -141,7 +143,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
require.NoError(t, err) |
|
|
|
require.NoError(t, err) |
|
|
|
require.Equal(t, 404, sc.resp.Code) |
|
|
|
require.Equal(t, 404, sc.resp.Code) |
|
|
|
assert.Equal(t, "Plugin file not found", respJson["message"]) |
|
|
|
assert.Equal(t, "Plugin file not found", respJson["message"]) |
|
|
|
assert.Empty(t, l.warnings) |
|
|
|
assert.Zero(t, l.WarnLogs.Calls) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
@ -149,7 +151,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
service := &fakePluginStore{ |
|
|
|
service := &fakePluginStore{ |
|
|
|
plugins: map[string]plugins.PluginDTO{}, |
|
|
|
plugins: map[string]plugins.PluginDTO{}, |
|
|
|
} |
|
|
|
} |
|
|
|
l := &logger{} |
|
|
|
l := &logtest.Fake{} |
|
|
|
|
|
|
|
|
|
|
|
requestedFile := "nonExistent" |
|
|
|
requestedFile := "nonExistent" |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
@ -162,7 +164,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
require.NoError(t, err) |
|
|
|
require.NoError(t, err) |
|
|
|
assert.Equal(t, 404, sc.resp.Code) |
|
|
|
assert.Equal(t, 404, sc.resp.Code) |
|
|
|
assert.Equal(t, "Plugin not found", respJson["message"]) |
|
|
|
assert.Equal(t, "Plugin not found", respJson["message"]) |
|
|
|
assert.Empty(t, l.warnings) |
|
|
|
assert.Zero(t, l.WarnLogs.Calls) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
@ -174,7 +176,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
l := &logger{} |
|
|
|
l := &logtest.Fake{} |
|
|
|
|
|
|
|
|
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile) |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
|
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*", service, l, |
|
|
@ -183,7 +185,7 @@ func Test_GetPluginAssets(t *testing.T) { |
|
|
|
|
|
|
|
|
|
|
|
require.Equal(t, 200, sc.resp.Code) |
|
|
|
require.Equal(t, 200, sc.resp.Code) |
|
|
|
assert.Equal(t, expectedBody, sc.resp.Body.String()) |
|
|
|
assert.Equal(t, expectedBody, sc.resp.Body.String()) |
|
|
|
assert.Empty(t, l.warnings) |
|
|
|
assert.Zero(t, l.WarnLogs.Calls) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
@ -235,16 +237,6 @@ func pluginAssetScenario(t *testing.T, desc string, url string, urlPattern strin |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
type logger struct { |
|
|
|
|
|
|
|
log.Logger |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
warnings []string |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func (l *logger) Warn(msg string, ctx ...interface{}) { |
|
|
|
|
|
|
|
l.warnings = append(l.warnings, msg) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type fakePluginClient struct { |
|
|
|
type fakePluginClient struct { |
|
|
|
plugins.Client |
|
|
|
plugins.Client |
|
|
|
|
|
|
|
|
|
|
|