diff --git a/public/app/plugins/datasource/prometheus/components/PromLink.test.tsx b/public/app/plugins/datasource/prometheus/components/PromLink.test.tsx index 7087b7d79de..1f05f8a9bae 100644 --- a/public/app/plugins/datasource/prometheus/components/PromLink.test.tsx +++ b/public/app/plugins/datasource/prometheus/components/PromLink.test.tsx @@ -64,4 +64,16 @@ describe('PromLink', () => { 'prom2/graph?g0.expr=up&g0.range_input=0s&g0.end_input=undefined&g0.step_input=15&g0.tab=0' ); }); + it('should create sanitized link', async () => { + render( +
+ +
+ ); + expect(screen.getByText('Prometheus')).toHaveAttribute('href', 'about:blank'); + }); }); diff --git a/public/app/plugins/datasource/prometheus/components/PromLink.tsx b/public/app/plugins/datasource/prometheus/components/PromLink.tsx index e18f6bc5796..abe22ea3eb8 100644 --- a/public/app/plugins/datasource/prometheus/components/PromLink.tsx +++ b/public/app/plugins/datasource/prometheus/components/PromLink.tsx @@ -3,7 +3,7 @@ import React, { FC, useEffect, useState, memo } from 'react'; import { PrometheusDatasource } from '../datasource'; import { PromQuery } from '../types'; -import { DataQueryRequest, PanelData } from '@grafana/data'; +import { DataQueryRequest, PanelData, textUtil } from '@grafana/data'; interface Props { datasource: PrometheusDatasource; @@ -54,7 +54,7 @@ const PromLink: FC = ({ panelData, query, datasource }) => { }, [datasource, panelData, query]); return ( - + Prometheus );