MixedDataSource.test.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { DatasourceSrvMock, MockDataSourceApi } from 'test/mocks/datasource_srv';
  2. import { getDataSourceSrv } from '@grafana/runtime';
  3. import { getQueryOptions } from 'test/helpers/getQueryOptions';
  4. import { DataSourceInstanceSettings } from '@grafana/ui';
  5. import { MixedDatasource } from './module';
  6. const defaultDS = new MockDataSourceApi('DefaultDS', { data: ['DDD'] });
  7. const datasourceSrv = new DatasourceSrvMock(defaultDS, {
  8. '-- Mixed --': new MixedDatasource({ name: 'mixed', id: 5 } as DataSourceInstanceSettings),
  9. A: new MockDataSourceApi('DSA', { data: ['AAAA'] }),
  10. B: new MockDataSourceApi('DSB', { data: ['BBBB'] }),
  11. C: new MockDataSourceApi('DSC', { data: ['CCCC'] }),
  12. });
  13. jest.mock('@grafana/runtime', () => ({
  14. getDataSourceSrv: () => {
  15. return datasourceSrv;
  16. },
  17. }));
  18. describe('MixedDatasource', () => {
  19. const requestMixed = getQueryOptions({
  20. targets: [
  21. { refId: 'QA', datasource: 'A' }, // 1
  22. { refId: 'QB', datasource: 'B' }, // 2
  23. { refId: 'QC', datasource: 'C' }, // 3
  24. ],
  25. });
  26. it('direct query should return results', async () => {
  27. const ds = await getDataSourceSrv().get('-- Mixed --');
  28. const res = await ds.query(requestMixed);
  29. expect(res.data).toEqual(['AAAA', 'BBBB', 'CCCC']);
  30. });
  31. });