grafana/e2e/test-plugins/README.md
Erik Sundell d8ec95e9b1
E2E: Add support for building test plugins (#91873)
* build test apps with webpack

* add extensions test app

* update e2e tests

* remove non-build test apps using amd

* use @grafana/plugin-configs rather than create-plugin config

* Update e2e/plugin-e2e/plugin-e2e-api-tests/as-admin-user/extensions/usePluginComponents.spec.ts

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* Update package.json

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* use run dir variable instead of hardcoded path

* add dummy licence file

* add separate step for building test plugins

* support nested plugins

* remove react-router-dom from the externals array

* remove add_mode dev

* lint starlark

* pass license path as env variable

* fix the path

* chore(e2e-plugins): clean up dependencies to match core versions

* refactor(e2e-plugins): prefer extending webpack plugins-config

* docs(e2e-plugins): add basic info to extensions test plugin readme

* update readme

* change dir name from custom plugins to test plugins

* change root readme

* update lockfile

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-08-23 09:00:03 +02:00

1.4 KiB

Test plugins

The e2e test server automatically scans and looks for plugins in this directory.

To add a new test plugin:

  1. If provisioning is required you may update the YAML config file in /devenv.
  2. 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