[v10.2.x] Plugins: Don't auto prepend app sub url to plugin asset paths (#82146)

Plugins: Don't auto prepend app sub url to plugin asset paths (#81658)

* don't prepend app sub url to paths

* simplify logo path

* fix(plugins): dynamically prepend appSubUrl for System module resolving to work

* fix(sandbox): support dynamic appSuburl prepend when loading plugin module.js

* fix tests

* update test name

* fix tests

* update fe + add some tests

* refactor(plugins): move wrangleurl to utils, rename to resolveModulePath, update usage

* chore: fix a typo

* test(plugins): add missing name to utils test

* reset test flag

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
(cherry picked from commit 99feb928cf)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
This commit is contained in:
grafana-delivery-bot[bot]
2024-02-08 12:33:49 +01:00
committed by GitHub
co-authored by Will Browne
parent 147e7b0613
commit dfb6c28197
11 changed files with 288 additions and 251 deletions
@@ -109,25 +109,17 @@ func Test_configureAppChildPlugin(t *testing.T) {
},
Class: plugins.ClassCore,
FS: fakes.NewFakePluginFiles("c:\\grafana\\public\\app\\plugins\\app\\testdata-app"),
BaseURL: "/public/app/plugins/app/testdata-app",
BaseURL: "public/app/plugins/app/testdata-app",
}
configureAppChildPlugin(&config.Cfg{}, parent, child)
configureAppChildPlugin(parent, child)
require.Equal(t, "core:plugin/testdata-app/datasources/datasource", child.Module)
require.Equal(t, "testdata-app", child.IncludedInAppID)
require.Equal(t, "/public/app/plugins/app/testdata-app", child.BaseURL)
t.Run("App sub URL has no effect on Core plugins", func(t *testing.T) {
configureAppChildPlugin(&config.Cfg{GrafanaAppSubURL: "/grafana"}, parent, child)
require.Equal(t, "core:plugin/testdata-app/datasources/datasource", child.Module)
require.Equal(t, "testdata-app", child.IncludedInAppID)
require.Equal(t, "/public/app/plugins/app/testdata-app", child.BaseURL)
})
require.Equal(t, "public/app/plugins/app/testdata-app", child.BaseURL)
})
t.Run("When setting paths based on external plugin with app sub URL", func(t *testing.T) {
t.Run("When setting paths based on external plugin", func(t *testing.T) {
child := &plugins.Plugin{
FS: fakes.NewFakePluginFiles("/plugins/parent-app/child-panel"),
}
@@ -138,14 +130,14 @@ func Test_configureAppChildPlugin(t *testing.T) {
},
Class: plugins.ClassExternal,
FS: fakes.NewFakePluginFiles("/plugins/parent-app"),
BaseURL: "/grafana/plugins/parent-app",
BaseURL: "plugins/parent-app",
}
configureAppChildPlugin(&config.Cfg{GrafanaAppSubURL: "/grafana"}, parent, child)
configureAppChildPlugin(parent, child)
require.Equal(t, "/grafana/public/plugins/testdata-app/child-panel/module.js", child.Module)
require.Equal(t, "public/plugins/testdata-app/child-panel/module.js", child.Module)
require.Equal(t, "testdata-app", child.IncludedInAppID)
require.Equal(t, "/grafana/plugins/parent-app", child.BaseURL)
require.Equal(t, "plugins/parent-app", child.BaseURL)
})
}