mirror of
https://github.com/grafana/grafana.git
synced 2026-09-05 04:40:13 -05:00
Navigation: share logic between buildBreadcrumbs and usePageTitle (#58819)
* simplify usePageTitle logic a bit * use buildBreadcrumbs logic in usePageTitle * always add home item to navTree, fix some tests * fix remaining unit tests
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
import { screen, render } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
|
||||
import { configureStore } from '../../../store/configureStore';
|
||||
|
||||
import { NestedScene } from './NestedScene';
|
||||
import { Scene } from './Scene';
|
||||
@@ -7,6 +10,7 @@ import { SceneCanvasText } from './SceneCanvasText';
|
||||
import { SceneFlexLayout } from './layout/SceneFlexLayout';
|
||||
|
||||
function setup() {
|
||||
const store = configureStore();
|
||||
const scene = new Scene({
|
||||
title: 'Hello',
|
||||
layout: new SceneFlexLayout({
|
||||
@@ -23,7 +27,11 @@ function setup() {
|
||||
}),
|
||||
});
|
||||
|
||||
render(<scene.Component model={scene} />);
|
||||
render(
|
||||
<Provider store={store}>
|
||||
<scene.Component model={scene} />
|
||||
</Provider>
|
||||
);
|
||||
}
|
||||
|
||||
describe('NestedScene', () => {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
|
||||
import { configureStore } from '../../../../store/configureStore';
|
||||
import { SceneObjectBase } from '../../core/SceneObjectBase';
|
||||
import { SceneComponentProps, SceneLayoutChildState } from '../../core/types';
|
||||
import { Scene } from '../Scene';
|
||||
@@ -21,6 +23,11 @@ class TestObject extends SceneObjectBase<SceneLayoutChildState> {
|
||||
};
|
||||
}
|
||||
|
||||
function renderWithProvider(element: JSX.Element) {
|
||||
const store = configureStore();
|
||||
return render(<Provider store={store}>{element}</Provider>);
|
||||
}
|
||||
|
||||
describe('SceneGridLayout', () => {
|
||||
describe('rendering', () => {
|
||||
it('should render all grid children', async () => {
|
||||
@@ -34,7 +41,7 @@ describe('SceneGridLayout', () => {
|
||||
}),
|
||||
});
|
||||
|
||||
render(<scene.Component model={scene} />);
|
||||
renderWithProvider(<scene.Component model={scene} />);
|
||||
|
||||
expect(screen.queryAllByTestId('test-object')).toHaveLength(2);
|
||||
});
|
||||
@@ -57,7 +64,7 @@ describe('SceneGridLayout', () => {
|
||||
}),
|
||||
});
|
||||
|
||||
render(<scene.Component model={scene} />);
|
||||
renderWithProvider(<scene.Component model={scene} />);
|
||||
|
||||
expect(screen.queryAllByTestId('test-object')).toHaveLength(2);
|
||||
});
|
||||
@@ -80,7 +87,7 @@ describe('SceneGridLayout', () => {
|
||||
}),
|
||||
});
|
||||
|
||||
render(<scene.Component model={scene} />);
|
||||
renderWithProvider(<scene.Component model={scene} />);
|
||||
|
||||
expect(screen.queryAllByTestId('test-object')).toHaveLength(3);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user