grafana/public/app/plugins/datasource/phlare/datasource.test.ts
Joey Tawadrous b8618723d0
Phlare: Transition from LogQL/PromQL to Phlare should keep the query (#60217)
* Transition from LogQL/PromQL to Phlare keeps the query

* Tests
2023-01-03 10:25:16 +00:00

67 lines
1.7 KiB
TypeScript

import { AbstractLabelOperator, DataSourceInstanceSettings, PluginMetaInfo, PluginType } from '@grafana/data';
import { PhlareDataSource } from './datasource';
describe('Phlare data source', () => {
let ds: PhlareDataSource;
beforeEach(() => {
ds = new PhlareDataSource(defaultSettings);
});
describe('importing queries', () => {
it('keeps all labels and values', async () => {
const queries = await ds.importFromAbstractQueries([
{
refId: 'A',
labelMatchers: [
{ name: 'foo', operator: AbstractLabelOperator.Equal, value: 'bar' },
{ name: 'foo2', operator: AbstractLabelOperator.Equal, value: 'bar2' },
],
},
]);
expect(queries[0].labelSelector).toBe('{foo="bar", foo2="bar2"}');
});
});
describe('exporting queries', () => {
it('keeps all labels and values', async () => {
const queries = await ds.exportToAbstractQueries([
{
refId: 'A',
labelSelector: '{foo="bar", foo2="bar2"}',
queryType: 'both',
profileTypeId: '',
groupBy: [''],
},
]);
expect(queries).toMatchObject([
{
refId: 'A',
labelMatchers: [
{ name: 'foo', operator: AbstractLabelOperator.Equal, value: 'bar' },
{ name: 'foo2', operator: AbstractLabelOperator.Equal, value: 'bar2' },
],
},
]);
});
});
});
const defaultSettings: DataSourceInstanceSettings = {
id: 0,
uid: 'phlare',
type: 'profiling',
name: 'phlare',
access: 'proxy',
meta: {
id: 'phlare',
name: 'phlare',
type: PluginType.datasource,
info: {} as PluginMetaInfo,
module: '',
baseUrl: '',
},
jsonData: {},
readOnly: false,
};