mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* 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>
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
export const testIds = {
|
|
container: 'main-app-body',
|
|
actions: {
|
|
button: 'action-button',
|
|
},
|
|
modal: {
|
|
container: 'container',
|
|
open: 'open-link',
|
|
},
|
|
appA: {
|
|
container: 'a-app-body',
|
|
},
|
|
appB: {
|
|
modal: 'b-app-modal',
|
|
reusableComponent: 'b-app-configure-extension-component',
|
|
reusableAddedComponent: 'b-app-add-component',
|
|
exposedComponent: 'b-app-exposed-component',
|
|
},
|
|
appC: {
|
|
container: 'c-app-body',
|
|
section1: 'use-plugin-links',
|
|
section2: 'use-plugin-extensions',
|
|
},
|
|
legacyGettersPage: {
|
|
container: 'data-testid pg-legacy-getters-container',
|
|
section1: 'get-plugin-extensions',
|
|
section2: 'configure-extension-link-get-plugin-link-extensions',
|
|
section3: 'configure-extension-component-get-plugin-component-extensions',
|
|
},
|
|
legacyHooksPage: {
|
|
container: 'data-testid pg-legacy-hooks-container',
|
|
section1: 'use-plugin-extensions',
|
|
section2: 'configure-extension-link-use-plugin-link-extensions',
|
|
section3: 'configure-extension-component-use-plugin-component-extensions',
|
|
},
|
|
exposedComponentsPage: {
|
|
container: 'data-testid pg-exposed-components-container',
|
|
},
|
|
addedComponentsPage: {
|
|
container: 'data-testid pg-added-components-container',
|
|
},
|
|
addedLinksPage: {
|
|
container: 'data-testid pg-added-links-container',
|
|
section1: 'use-plugin-links',
|
|
},
|
|
};
|