Skip to content

Commit 0e849df

Browse files
authored
Jest: Upgrade jest to fix issue with logging scene objects (#1426)
1 parent 98ff87a commit 0e849df

File tree

14 files changed

+1847
-360
lines changed

14 files changed

+1847
-360
lines changed

package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@
6060
"@grafana/eslint-config": "^8.1.0",
6161
"@grafana/tsconfig": "^1.3.0-rc1",
6262
"@stylistic/eslint-plugin-ts": "3.1.0",
63-
"@swc/core": "^1.2.162",
64-
"@swc/jest": "^0.2.36",
63+
"@swc/core": "^1.15.24",
64+
"@swc/jest": "^0.2.39",
6565
"@testing-library/dom": "9.3.4",
6666
"@testing-library/jest-dom": "6.4.2",
6767
"@testing-library/react": "14.2.1",
6868
"@testing-library/react-hooks": "8.0.1",
6969
"@testing-library/user-event": "14.5.2",
70-
"@types/jest": "29.5.12",
70+
"@types/jest": "30.0.0",
7171
"@typescript-eslint/eslint-plugin": "^8.34.0",
7272
"@typescript-eslint/parser": "^8.34.0",
7373
"auto": "^11.0.7",
@@ -80,9 +80,9 @@
8080
"eslint-plugin-react": "^7.37.5",
8181
"eslint-plugin-react-hooks": "^5.2.0",
8282
"husky": "^8.0.3",
83-
"jest": "29.7.0",
84-
"jest-environment-jsdom": "29.7.0",
85-
"jest-matcher-utils": "29.7.0",
83+
"jest": "30.3.0",
84+
"jest-environment-jsdom": "30.3.0",
85+
"jest-matcher-utils": "30.3.0",
8686
"lerna": "^9.0.0",
8787
"lint-staged": "^13.2.0",
8888
"prettier": "2.5.1",
@@ -91,7 +91,7 @@
9191
"rollup-plugin-dts": "^6.2.0",
9292
"rollup-plugin-esbuild": "^6.2.1",
9393
"rollup-plugin-node-externals": "^8.0.0",
94-
"ts-jest": "29.1.2",
94+
"ts-jest": "29.4.9",
9595
"ts-node": "10.9.2",
9696
"turbo": "^2.5.8",
9797
"typescript": "^5.4.3"

packages/scenes-app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"@swc/jest": "^0.2.36",
3030
"@testing-library/jest-dom": "^6.4.2",
3131
"@testing-library/react": "^12.1.3",
32-
"@types/jest": "^29.5.12",
32+
"@types/jest": "^30.0.0",
3333
"@types/node": "^20.11.30",
3434
"@typescript-eslint/eslint-plugin": "^8.34.0",
3535
"@typescript-eslint/parser": "^8.34.0",
@@ -43,7 +43,7 @@
4343
"eslint-plugin-react-hooks": "^5.2.0",
4444
"eslint-webpack-plugin": "5.0.2",
4545
"fork-ts-checker-webpack-plugin": "^7.2.0",
46-
"jest": "29.7.0",
46+
"jest": "30.3.0",
4747
"prettier": "^2.5.0",
4848
"raw-loader": "^4.0.2",
4949
"replace-in-file-webpack-plugin": "^1.0.6",

packages/scenes/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
"@types/uuid": "8.3.4",
8888
"eslint": "^9.28.0",
8989
"i18next-parser": "9.3.0",
90-
"jest": "29.7.0",
90+
"jest": "30.3.0",
9191
"jest-canvas-mock": "^2.5.2",
9292
"react-router-dom": "^6.28.0",
9393
"rimraf": "^3.0.2",

packages/scenes/src/components/SceneRefreshPicker.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ describe('SceneRefreshPicker', () => {
5858
.useFakeTimers({
5959
doNotFake: ['setTimeout'],
6060
})
61-
.setSystemTime(new Date('2023-01-01'));
61+
.setSystemTime(new Date('2023-01-01').valueOf());
6262
});
6363

6464
it('updates time range on provided interval', async () => {

packages/scenes/src/components/VizPanel/VizPanel.test.tsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,15 @@ describe('VizPanel', () => {
278278
},
279279
];
280280
});
281+
282+
global.ResizeObserver = class {
283+
// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility
284+
observe() {}
285+
// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility
286+
unobserve() {}
287+
// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility
288+
disconnect() {}
289+
};
281290
});
282291

283292
describe('when activated', () => {
@@ -858,15 +867,6 @@ describe('VizPanel', () => {
858867
beforeEach(() => {
859868
panelRenderCount = 0;
860869
panelProps = undefined;
861-
862-
global.ResizeObserver = class {
863-
// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility
864-
observe() {}
865-
// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility
866-
unobserve() {}
867-
// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility
868-
disconnect() {}
869-
};
870870
});
871871

872872
let panel: VizPanel<OptionsPlugin1, FieldConfigPlugin1>;
@@ -1067,7 +1067,8 @@ describe('VizPanel', () => {
10671067
expect(panel.state.showMenuAlways).toBe(false);
10681068
render(<panel.Component model={panel} />);
10691069

1070-
const menuButton = screen.queryByRole('button', { name: /menu/i });
1070+
// For some reason queryByRole('button', { name: /menu/i }) is not finding the element, even it's there in the DOM, with title Menu same as the test on above
1071+
const menuButton = screen.getByTitle('Menu');
10711072
expect(menuButton).toHaveClass('show-on-hover');
10721073
});
10731074
});

packages/scenes/src/core/PanelBuilders/__snapshots__/VizPanelBuilder.test.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Jest Snapshot v1, https://goo.gl/fbAQLP
1+
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
22

33
exports[`VizPanelBuilder options and field config standard panels defaults provides barchart defaults 1`] = `
44
{

packages/scenes/src/core/SceneTimeRange.test.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { SceneReactObject } from '../components/SceneReactObject';
88
import { defaultTimeZone as browserTimeZone } from '@grafana/schema';
99

1010
function simulateDelay(newDateString: string, scene: EmbeddedScene) {
11-
jest.setSystemTime(new Date(newDateString));
11+
jest.setSystemTime(new Date(newDateString).valueOf());
1212
scene.activate();
1313
}
1414

@@ -111,14 +111,14 @@ describe('SceneTimeRange', () => {
111111
to: toUtc('2020-01-02'),
112112
raw: { from: toUtc('2020-01-01'), to: toUtc('2020-01-02') },
113113
});
114-
expect(stateSpy).toBeCalledTimes(1);
114+
expect(stateSpy).toHaveBeenCalledTimes(1);
115115

116116
timeRange.onTimeRangeChange({
117117
from: toUtc('2020-01-01'),
118118
to: toUtc('2020-01-02'),
119119
raw: { from: toUtc('2020-01-01'), to: toUtc('2020-01-02') },
120120
});
121-
expect(stateSpy).toBeCalledTimes(1);
121+
expect(stateSpy).toHaveBeenCalledTimes(1);
122122
});
123123

124124
it('should not allow invalid date values', () => {
@@ -214,7 +214,7 @@ describe('SceneTimeRange', () => {
214214
const mockedNow = '2021-01-01T10:00:00.000Z';
215215
beforeAll(() => {
216216
jest.useFakeTimers();
217-
jest.setSystemTime(new Date(mockedNow));
217+
jest.setSystemTime(new Date(mockedNow).valueOf());
218218
});
219219

220220
it('when created should evaluate time range applying the delay value to now', () => {
@@ -298,7 +298,7 @@ describe('SceneTimeRange', () => {
298298

299299
beforeEach(() => {
300300
jest.useFakeTimers();
301-
jest.setSystemTime(new Date(mockedNow));
301+
jest.setSystemTime(new Date(mockedNow).valueOf());
302302
});
303303

304304
it('should NOT invalidate stale time range that does not meet refresh threshold', () => {

packages/scenes/src/querying/__snapshots__/SceneQueryRunner.test.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Jest Snapshot v1, https://goo.gl/fbAQLP
1+
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
22

33
exports[`SceneQueryRunner when running query should build DataQueryRequest object 2`] = `
44
{

packages/scenes/src/querying/layers/SceneDataLayerBase.test.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ describe('SceneDataLayerBase', () => {
2424

2525
layer.activate();
2626

27-
expect(runLayerSpy).toBeCalledTimes(0);
27+
expect(runLayerSpy).toHaveBeenCalledTimes(0);
2828
});
2929

3030
it('should run query when there is no data', () => {
@@ -35,7 +35,7 @@ describe('SceneDataLayerBase', () => {
3535
});
3636
layer.activate();
3737

38-
expect(runLayerSpy).toBeCalledTimes(1);
38+
expect(runLayerSpy).toHaveBeenCalledTimes(1);
3939
});
4040

4141
it('should not run query there is data', () => {
@@ -53,7 +53,7 @@ describe('SceneDataLayerBase', () => {
5353

5454
layer.activate();
5555

56-
expect(runLayerSpy).toBeCalledTimes(0);
56+
expect(runLayerSpy).toHaveBeenCalledTimes(0);
5757
});
5858
});
5959

@@ -67,8 +67,8 @@ describe('SceneDataLayerBase', () => {
6767
});
6868
layer.activate();
6969

70-
expect(enableSpy).toBeCalledTimes(1);
71-
expect(disableSpy).not.toBeCalled();
70+
expect(enableSpy).toHaveBeenCalledTimes(1);
71+
expect(disableSpy).not.toHaveBeenCalled();
7272
});
7373

7474
it('should call onDisable handler when activated', () => {
@@ -82,8 +82,8 @@ describe('SceneDataLayerBase', () => {
8282

8383
deactivate();
8484

85-
expect(enableSpy).toBeCalledTimes(1);
86-
expect(disableSpy).toBeCalledTimes(1);
85+
expect(enableSpy).toHaveBeenCalledTimes(1);
86+
expect(disableSpy).toHaveBeenCalledTimes(1);
8787
});
8888
});
8989

@@ -97,8 +97,8 @@ describe('SceneDataLayerBase', () => {
9797
});
9898
layer.activate();
9999

100-
expect(enableSpy).not.toBeCalled();
101-
expect(disableSpy).not.toBeCalled();
100+
expect(enableSpy).not.toHaveBeenCalled();
101+
expect(disableSpy).not.toHaveBeenCalled();
102102
});
103103

104104
it('should call onDisable handler when activated', () => {
@@ -112,8 +112,8 @@ describe('SceneDataLayerBase', () => {
112112

113113
deactivate();
114114

115-
expect(enableSpy).not.toBeCalled();
116-
expect(disableSpy).toBeCalledTimes(1);
115+
expect(enableSpy).not.toHaveBeenCalled();
116+
expect(disableSpy).toHaveBeenCalledTimes(1);
117117
});
118118
});
119119

@@ -140,7 +140,7 @@ describe('SceneDataLayerBase', () => {
140140
expect(result).toBeDefined();
141141
expect(result!.data.series).toEqual([]);
142142
expect(result!.data.state).toEqual(LoadingState.Done);
143-
expect(disableSpy).toBeCalledTimes(1);
143+
expect(disableSpy).toHaveBeenCalledTimes(1);
144144
});
145145
});
146146

@@ -157,7 +157,7 @@ describe('SceneDataLayerBase', () => {
157157

158158
layer.activate();
159159

160-
expect(enableSpy).not.toBeCalled();
160+
expect(enableSpy).not.toHaveBeenCalled();
161161

162162
layer.getResultsStream().subscribe((r) => {
163163
result = r;
@@ -166,7 +166,7 @@ describe('SceneDataLayerBase', () => {
166166

167167
layer.setState({ isEnabled: true });
168168

169-
expect(enableSpy).toBeCalledTimes(1);
169+
expect(enableSpy).toHaveBeenCalledTimes(1);
170170

171171
layer.completeRun();
172172

packages/scenes/src/querying/layers/annotations/AnnotationsDataLayer.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ describe.each(['11.1.2', '11.1.1'])('AnnotationsDataLayer', (v) => {
246246
expect(layer.state.data?.series).toBeDefined();
247247
expect(layer.state.data?.series?.[0].length).toBe(5);
248248

249-
expect(runRequestMock).toBeCalledTimes(2);
249+
expect(runRequestMock).toHaveBeenCalledTimes(2);
250250
const { scopedVars } = sentRequest!;
251251

252252
expect(scopedVars['__sceneObject']).toBeDefined();

0 commit comments

Comments
 (0)