diff --git a/public/app/features/plugins/admin/api.ts b/public/app/features/plugins/admin/api.ts index f79968d47ae..4520989603f 100644 --- a/public/app/features/plugins/admin/api.ts +++ b/public/app/features/plugins/admin/api.ts @@ -39,6 +39,7 @@ export async function getPluginDetails(id: string): Promise=9.0.0', statusContext: 'stable', @@ -118,4 +134,20 @@ describe('PluginDetailsPanel', () => { const panel = screen.getByTestId('plugin-details-panel'); expect(panel).toHaveStyle({ width: '300px' }); }); + + it('should render license, documentation, repository, raise issue links', () => { + render(); + const repositoryLink = screen.getByText('Repository'); + const licenseLink = screen.getByText('License'); + const documentationLink = screen.getByText('Documentation'); + const raiseIssueLink = screen.getByText('Raise issue'); + expect(repositoryLink).toBeInTheDocument(); + expect(repositoryLink).toHaveAttribute('href', 'https://github.com/grafana/test-plugin'); + expect(licenseLink).toBeInTheDocument(); + expect(licenseLink).toHaveAttribute('href', 'https://github.com/grafana/test-plugin/blob/main/LICENSE'); + expect(documentationLink).toBeInTheDocument(); + expect(documentationLink).toHaveAttribute('href', 'https://test-plugin.com/docs'); + expect(raiseIssueLink).toBeInTheDocument(); + expect(raiseIssueLink).toHaveAttribute('href', 'https://github.com/grafana/test-plugin/issues/new'); + }); }); diff --git a/public/app/features/plugins/admin/components/PluginDetailsPanel.tsx b/public/app/features/plugins/admin/components/PluginDetailsPanel.tsx index 7d7612dc814..8440b37c76d 100644 --- a/public/app/features/plugins/admin/components/PluginDetailsPanel.tsx +++ b/public/app/features/plugins/admin/components/PluginDetailsPanel.tsx @@ -99,8 +99,14 @@ export function PluginDetailsPanel(props: Props): React.ReactElement | null { Repository )} - {plugin.raiseAnIssueUrl && ( - + {plugin.details?.raiseAnIssueUrl && ( + Raise an issue )} diff --git a/public/app/features/plugins/admin/helpers.ts b/public/app/features/plugins/admin/helpers.ts index 28386a73cbd..8b0bfe80cfd 100644 --- a/public/app/features/plugins/admin/helpers.ts +++ b/public/app/features/plugins/admin/helpers.ts @@ -122,7 +122,6 @@ export function mapRemoteToCatalog(plugin: RemotePlugin, error?: PluginError): C versionSignatureType, versionSignedByOrgName, url, - raiseAnIssueUrl, } = plugin; const isDisabled = !!error || isDisabledSecretsPlugin(typeCode); @@ -161,7 +160,6 @@ export function mapRemoteToCatalog(plugin: RemotePlugin, error?: PluginError): C isFullyInstalled: isDisabled, latestVersion: plugin.version, url, - raiseAnIssueUrl, }; } @@ -178,7 +176,6 @@ export function mapLocalToCatalog(plugin: LocalPlugin, error?: PluginError): Cat hasUpdate, accessControl, angularDetected, - raiseAnIssueUrl, } = plugin; const isDisabled = !!error || isDisabledSecretsPlugin(type); @@ -213,7 +210,6 @@ export function mapLocalToCatalog(plugin: LocalPlugin, error?: PluginError): Cat isFullyInstalled: true, iam: plugin.iam, latestVersion: plugin.latestVersion, - raiseAnIssueUrl, }; } @@ -278,7 +274,6 @@ export function mapToCatalogPlugin(local?: LocalPlugin, remote?: RemotePlugin, e iam: local?.iam, latestVersion: local?.latestVersion || remote?.version || '', url: remote?.url || '', - raiseAnIssueUrl: remote?.raiseAnIssueUrl || local?.raiseAnIssueUrl, }; } diff --git a/public/app/features/plugins/admin/types.ts b/public/app/features/plugins/admin/types.ts index 96e1d2451d2..4476c824216 100644 --- a/public/app/features/plugins/admin/types.ts +++ b/public/app/features/plugins/admin/types.ts @@ -65,7 +65,6 @@ export interface CatalogPlugin extends WithAccessControlMetadata { iam?: IdentityAccessManagement; isProvisioned?: boolean; url?: string; - raiseAnIssueUrl?: string; } export interface CatalogPluginDetails { @@ -83,6 +82,7 @@ export interface CatalogPluginDetails { lastCommitDate?: string; licenseUrl?: string; documentationUrl?: string; + raiseAnIssueUrl?: string; signatureType?: PluginSignatureType; signature?: PluginSignatureStatus; } @@ -197,7 +197,6 @@ export type LocalPlugin = WithAccessControlMetadata & { dependencies: PluginDependencies; angularDetected: boolean; iam?: IdentityAccessManagement; - raiseAnIssueUrl?: string; }; interface IdentityAccessManagement {