mirror of
https://github.com/grafana/grafana.git
synced 2024-11-24 09:50:29 -06:00
6096f46774
* feat: add extensions to the backend plugin model * feat: update the frontend plugin types * feat(pluginContext): return a `null` if there is no context found This will be necessary to understand if a certain hook is running inside a plugin context or not. * feat: add utility functions for checking extension configs * tests: fix failing tests due to the type updates * feat(AddedComponentsRegistry): validate plugin meta-info * feat(AddedLinksRegistry): validate meta-info * feat(ExposedComponentsRegistry): validate meta-info * feat(usePluginComponent): add meta-info validation * feat(usePluginComponents): add meta-info validation * feat(usePluginLinks): add meta-info validation * fix: only validate meta-info in registries if dev mode is enabled * tests: add unit tests for the restrictions functionality * tests: fix Go tests * fix(tests): revert accidental changes * fix: run goimports * fix: api tests * add nested app so that meta data can bested e2e tested * refactor(types): extract the ExtensionInfo into a separate type * refactor(extensions/utils): use Array.prototype.some() instead of .find() * refactor(usePluginLinks): update warning message * feat(usePluginExtensions()): validate plugin meta-info * Wip * fix(e2e): E2E tests for extensions * fix(extensions): allow multiple "/" slashes in the extension point id * fix(extensions/validators): stop validating the plugin id pattern --------- Co-authored-by: Erik Sundell <erik.sundell87@gmail.com> |
||
---|---|---|
.. | ||
frontend-sandbox-app-test | ||
frontend-sandbox-datasource-test | ||
frontend-sandbox-panel-test | ||
grafana-extensionstest-app | ||
README.md |
Test plugins
The e2e test server automatically scans and looks for plugins in this directory.
To add a new test plugin:
- If provisioning is required you may update the YAML config file in
/devenv
. - Add the plugin ID to the
allow_loading_unsigned_plugins
setting in the test server's configuration file.
Building a test plugin with webpack
If you wish to build a test plugin with webpack, you may take a look at how the grafana-extensionstest-app is wired. A few things to keep in mind:
- the package name needs to be prefixed with
@test-plugins/
- extend the webpack config from
@grafana/plugin-configs
and use custom webpack config to only copy the necessary files (see example here) - keep dependency versions in sync with what's in core
Local development
1: Install frontend dependencies:
yarn install --immutable
2: Build and watch the core frontend
yarn start
3: Build and watch the test plugins
yarn e2e:plugin:build:dev
4: Build the backend
make build-go
5: Start the Grafana e2e test server with the provisioned test plugin
PORT=3000 ./scripts/grafana-server/start-server