useLokiLabels.test.ts 925 B

123456789101112131415161718192021222324
  1. import { renderHook, act } from 'react-hooks-testing-library';
  2. import LanguageProvider from 'app/plugins/datasource/loki/language_provider';
  3. import { useLokiLabels } from './useLokiLabels';
  4. describe('useLokiLabels hook', () => {
  5. const datasource = {
  6. metadataRequest: () => ({ data: { data: [] } }),
  7. };
  8. const languageProvider = new LanguageProvider(datasource);
  9. const logLabelOptionsMock = ['Holy mock!'];
  10. languageProvider.refreshLogLabels = () => {
  11. languageProvider.logLabelOptions = logLabelOptionsMock;
  12. return Promise.resolve();
  13. };
  14. it('should refresh labels', async () => {
  15. const { result, waitForNextUpdate } = renderHook(() => useLokiLabels(languageProvider, true, []));
  16. act(() => result.current.refreshLabels());
  17. expect(result.current.logLabelOptions).toEqual([]);
  18. await waitForNextUpdate();
  19. expect(result.current.logLabelOptions).toEqual(logLabelOptionsMock);
  20. });
  21. });