From c308b3bac40806147c30cbab86a8aaf9166b98db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=A4ggmark?= Date: Wed, 3 Dec 2025 13:16:30 +0100 Subject: [PATCH] chore: fix broken tests --- packages/grafana-data/src/types/plugin.ts | 7 -- .../features/plugins/pluginPreloader.test.ts | 87 ++++++++++++++----- 2 files changed, 67 insertions(+), 27 deletions(-) diff --git a/packages/grafana-data/src/types/plugin.ts b/packages/grafana-data/src/types/plugin.ts index f91c2196dbd..67fd375416b 100644 --- a/packages/grafana-data/src/types/plugin.ts +++ b/packages/grafana-data/src/types/plugin.ts @@ -269,9 +269,6 @@ export class GrafanaPlugin { } } export interface PluginMetasResponse { - kind: string; - apiVersion: APIVersion; - metadata: StatusClass; items: Item[]; } @@ -280,11 +277,7 @@ export enum APIVersion { } export interface Item { - kind: Kind; - apiVersion: APIVersion; - metadata: PurpleMetadata; spec: Spec; - status: StatusClass; } export enum Kind { diff --git a/public/app/features/plugins/pluginPreloader.test.ts b/public/app/features/plugins/pluginPreloader.test.ts index 9dc6d55fd4c..aeda446ceaa 100644 --- a/public/app/features/plugins/pluginPreloader.test.ts +++ b/public/app/features/plugins/pluginPreloader.test.ts @@ -9,6 +9,8 @@ import { type PluginExtensions, AppPlugin, OrgRole, + Spec, + PluginSignatureStatus, } from '@grafana/data'; import { ContextSrv, setContextSrv } from 'app/core/services/context_srv'; import { getPluginSettings } from 'app/features/plugins/pluginSettings'; @@ -27,26 +29,71 @@ jest.mock('./importer/pluginImporter', () => ({ const getPluginSettingsMock = jest.mocked(getPluginSettings); const importAppPluginMock = jest.mocked(pluginImporter.importApp); -const createMockAppPluginConfig = (overrides: Partial = {}): AppPluginConfig => ({ - id: 'test-plugin', - path: '/path/to/plugin', - version: '1.0.0', - preload: true, - angular: { detected: false, hideDeprecation: false } as AngularMeta, - loadingStrategy: PluginLoadingStrategy.fetch, - dependencies: { - grafanaVersion: '*', - plugins: [], - extensions: { exposedComponents: [] }, - } as PluginDependencies, - extensions: { - addedComponents: [], - addedLinks: [], - addedFunctions: [], - exposedComponents: [], - extensionPoints: [], - } as PluginExtensions, - ...overrides, +const createMockAppPluginConfig = (overrides: Partial = {}): Spec => { + const app: AppPluginConfig = { + id: 'test-plugin', + path: '/path/to/plugin', + version: '1.0.0', + preload: true, + angular: { detected: false, hideDeprecation: false } as AngularMeta, + loadingStrategy: PluginLoadingStrategy.fetch, + dependencies: { + grafanaVersion: '*', + plugins: [], + extensions: { exposedComponents: [] }, + } as PluginDependencies, + extensions: { + addedComponents: [], + addedLinks: [], + addedFunctions: [], + exposedComponents: [], + extensionPoints: [], + } as PluginExtensions, + ...overrides, + }; + + return createMockSpec({ path: app.path, loadingStrategy: app.loadingStrategy }, { id: app.id }); +}; + +const createMockSpec = (module: Partial = {}, pluginJson: Partial = {}): Spec => ({ + module: { + path: '/path/to/plugin', + loadingStrategy: PluginLoadingStrategy.fetch, + ...module, + }, + pluginJson: { + id: 'test-plugin', + name: 'Test Plugin', + type: 'app', + info: { + version: '1.0.0', + keywords: [], + logos: { large: '', small: '' }, + updated: '', + }, + preload: true, + dependencies: { + grafanaVersion: '*', + grafanaDependency: '', + plugins: [], + extensions: { exposedComponents: [] }, + }, + extensions: { + addedComponents: [], + addedLinks: [], + addedFunctions: [], + exposedComponents: [], + extensionPoints: [], + }, + ...pluginJson, + }, + angular: { + detected: false, + }, + baseURL: '/path/to/plugin', + signature: { + status: PluginSignatureStatus.missing, + }, }); const createMockPluginMeta = (overrides: Partial = {}): PluginMeta => ({