grafana/e2e/test-plugins/grafana-extensionstest-app
Levente Balogh 6096f46774
Plugin Extensions: Require meta-data to be defined in plugin.json during development mode (#93429)
* 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>
2024-10-04 08:41:26 +02:00
..
components Plugin Extensions: E2E test addLink and legacy APIs (#92394) 2024-08-26 16:01:32 +02:00
img E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00
pages Plugin Extensions: Require meta-data to be defined in plugin.json during development mode (#93429) 2024-10-04 08:41:26 +02:00
plugins Plugin Extensions: Require meta-data to be defined in plugin.json during development mode (#93429) 2024-10-04 08:41:26 +02:00
tests Plugin Extensions: Require meta-data to be defined in plugin.json during development mode (#93429) 2024-10-04 08:41:26 +02:00
utils E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00
.gitignore E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00
CHANGELOG.md E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00
constants.ts Plugin Extensions: E2E test addLink and legacy APIs (#92394) 2024-08-26 16:01:32 +02:00
module.tsx E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00
package.json Chore: Bump webpack for e2e test plugins (#93831) 2024-09-30 10:06:54 +02:00
plugin.json Plugin Extensions: Require meta-data to be defined in plugin.json during development mode (#93429) 2024-10-04 08:41:26 +02:00
README.md Plugin Extensions: E2E test addLink and legacy APIs (#92394) 2024-08-26 16:01:32 +02:00
testIds.ts Plugin Extensions: Require meta-data to be defined in plugin.json during development mode (#93429) 2024-10-04 08:41:26 +02:00
tsconfig.json E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00
webpack.config.ts E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00

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