|
|
@ -1,5 +1,6 @@ |
|
|
|
import { fireEvent, render, screen } from '@testing-library/react'; |
|
|
|
import { fireEvent, render, screen } from '@testing-library/react'; |
|
|
|
import React from 'react'; |
|
|
|
import React from 'react'; |
|
|
|
|
|
|
|
import { openMenu } from 'react-select-event'; |
|
|
|
|
|
|
|
|
|
|
|
import { DataSourceInstanceSettings } from '@grafana/data'; |
|
|
|
import { DataSourceInstanceSettings } from '@grafana/data'; |
|
|
|
import { selectors } from '@grafana/e2e-selectors'; |
|
|
|
import { selectors } from '@grafana/e2e-selectors'; |
|
|
@ -13,11 +14,16 @@ const mockDS = mockDataSource({ |
|
|
|
type: DataSourceType.Alertmanager, |
|
|
|
type: DataSourceType.Alertmanager, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const mockVariable = mockDataSource({ |
|
|
|
|
|
|
|
name: '${dsVariable}', |
|
|
|
|
|
|
|
type: 'datasource', |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
jest.mock('@grafana/runtime/src/services/dataSourceSrv', () => { |
|
|
|
jest.mock('@grafana/runtime/src/services/dataSourceSrv', () => { |
|
|
|
return { |
|
|
|
return { |
|
|
|
getDataSourceSrv: () => ({ |
|
|
|
getDataSourceSrv: () => ({ |
|
|
|
get: () => Promise.resolve(mockDS), |
|
|
|
get: () => Promise.resolve(mockDS), |
|
|
|
getList: () => [mockDS], |
|
|
|
getList: ({ variables }: { variables: boolean }) => (variables ? [mockDS, mockVariable] : [mockDS]), |
|
|
|
getInstanceSettings: () => mockDS, |
|
|
|
getInstanceSettings: () => mockDS, |
|
|
|
}), |
|
|
|
}), |
|
|
|
}; |
|
|
|
}; |
|
|
@ -68,6 +74,14 @@ describe('QueryEditorRowHeader', () => { |
|
|
|
|
|
|
|
|
|
|
|
expect(screen.queryByLabelText(selectors.components.DataSourcePicker.container)).toBeNull(); |
|
|
|
expect(screen.queryByLabelText(selectors.components.DataSourcePicker.container)).toBeNull(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it('should render variables in the data source picker', async () => { |
|
|
|
|
|
|
|
renderScenario({ onChangeDataSource: () => {} }); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const dsSelect = screen.getByLabelText(selectors.components.DataSourcePicker.inputV2); |
|
|
|
|
|
|
|
openMenu(dsSelect); |
|
|
|
|
|
|
|
expect(await screen.findByText('${dsVariable}')).toBeInTheDocument(); |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
function renderScenario(overrides: Partial<Props>) { |
|
|
|
function renderScenario(overrides: Partial<Props>) { |
|
|
|