1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { MutableDataFrame } from '@grafana/data';
- import { getDerivedFields } from './getDerivedFields';
- jest.mock('@grafana/runtime', () => ({
- // @ts-ignore
- ...jest.requireActual('@grafana/runtime'),
- getDataSourceSrv: () => {
- return {
- getInstanceSettings: () => {
- return { name: 'Loki1' };
- },
- };
- },
- }));
- describe('getDerivedFields', () => {
- it('adds links to fields', () => {
- const df = new MutableDataFrame({ fields: [{ name: 'line', values: ['nothing', 'trace1=1234', 'trace2=foo'] }] });
- const newFields = getDerivedFields(df, [
- {
- matcherRegex: 'trace1=(\\w+)',
- name: 'trace1',
- url: 'http://localhost/${__value.raw}',
- },
- {
- matcherRegex: 'trace2=(\\w+)',
- name: 'trace2',
- url: 'test',
- datasourceUid: 'uid',
- },
- {
- matcherRegex: 'trace2=(\\w+)',
- name: 'trace2',
- url: 'test',
- datasourceUid: 'uid2',
- urlDisplayLabel: 'Custom Label',
- },
- ]);
- expect(newFields.length).toBe(2);
- const trace1 = newFields.find((f) => f.name === 'trace1');
- expect(trace1!.values.toArray()).toEqual([null, '1234', null]);
- expect(trace1!.config.links![0]).toEqual({
- url: 'http://localhost/${__value.raw}',
- title: '',
- });
- const trace2 = newFields.find((f) => f.name === 'trace2');
- expect(trace2!.values.toArray()).toEqual([null, null, 'foo']);
- expect(trace2!.config.links!.length).toBe(2);
- expect(trace2!.config.links![0]).toEqual({
- title: '',
- internal: { datasourceName: 'Loki1', datasourceUid: 'uid', query: { query: 'test' } },
- url: '',
- });
- expect(trace2!.config.links![1]).toEqual({
- title: 'Custom Label',
- internal: { datasourceName: 'Loki1', datasourceUid: 'uid2', query: { query: 'test' } },
- url: '',
- });
- });
- });
|