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> |
||
---|---|---|
.. | ||
components | ||
img | ||
pages | ||
plugins | ||
tests | ||
utils | ||
.gitignore | ||
CHANGELOG.md | ||
constants.ts | ||
module.tsx | ||
package.json | ||
plugin.json | ||
README.md | ||
testIds.ts | ||
tsconfig.json | ||
webpack.config.ts |
Extensions test plugins
This is an app plugin containing nested app plugins that are used for testing the plugins ui extensions APIs.
Further reading:
Build
To build this plugin run yarn e2e:plugin:build
.
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
Note that this plugin extends the @grafana/plugin-configs
configs which is why it has no src directory and uses a custom webpack config to copy necessary files.
Run Playwright tests
yarn playwright --project extensions-test-app