Skip to content

Commit 0bf2702

Browse files
Update jest to v30 (major) (#4875)
* Update jest to v30 * Update snapshots & imports Signed-off-by: Michael Telatynski <[email protected]> * Make jest happier Signed-off-by: Michael Telatynski <[email protected]> * Fix tests Signed-off-by: Michael Telatynski <[email protected]> --------- Signed-off-by: Michael Telatynski <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <[email protected]>
1 parent c7a75c8 commit 0bf2702

File tree

9 files changed

+952
-1019
lines changed

9 files changed

+952
-1019
lines changed

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@
8484
"@stylistic/eslint-plugin": "^5.0.0",
8585
"@types/content-type": "^1.1.5",
8686
"@types/debug": "^4.1.7",
87-
"@types/jest": "^29.0.0",
87+
"@types/jest": "^30.0.0",
8888
"@types/node": "18",
8989
"@types/sdp-transform": "^2.4.5",
9090
"@typescript-eslint/eslint-plugin": "^8.0.0",
9191
"@typescript-eslint/parser": "^8.0.0",
92-
"babel-jest": "^29.0.0",
92+
"babel-jest": "^30.0.0",
9393
"babel-plugin-search-and-replace": "^1.1.1",
9494
"debug": "^4.3.4",
9595
"eslint": "8.57.1",
@@ -107,10 +107,10 @@
107107
"fetch-mock": "11.1.5",
108108
"fetch-mock-jest": "^1.5.1",
109109
"husky": "^9.0.0",
110-
"jest": "^29.0.0",
111-
"jest-environment-jsdom": "^29.0.0",
110+
"jest": "^30.0.0",
111+
"jest-environment-jsdom": "^30.0.0",
112112
"jest-localstorage-mock": "^2.4.6",
113-
"jest-mock": "^29.0.0",
113+
"jest-mock": "^30.0.0",
114114
"knip": "^5.0.0",
115115
"lint-staged": "^16.0.0",
116116
"matrix-mock-request": "^2.5.0",

spec/unit/http-api/__snapshots__/index.spec.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[`MatrixHttpApi should return expected object from \`getContentUri\` 1`] = `
44
{

spec/unit/http-api/fetch.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ describe("FetchHttpApi", () => {
375375
refreshToken,
376376
onlyData: true,
377377
});
378-
await expect(api.authedRequest(Method.Post, "/account/password")).rejects.toThrow(
378+
await expect(api.authedRequest(Method.Post, "/account/password")).rejects.toEqual(
379379
unknownTokenErr,
380380
);
381381
expect(tokenRefreshFunction).toHaveBeenCalledWith(refreshToken);
@@ -397,7 +397,7 @@ describe("FetchHttpApi", () => {
397397
refreshToken,
398398
onlyData: true,
399399
});
400-
await expect(api.authedRequest(Method.Post, "/account/password")).rejects.toThrow(
400+
await expect(api.authedRequest(Method.Post, "/account/password")).rejects.toEqual(
401401
unknownTokenErr,
402402
);
403403
expect(tokenRefreshFunction).toHaveBeenCalledWith(refreshToken);

spec/unit/models/poll.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,17 @@ describe("Poll", () => {
127127

128128
it("waits for existing relations request to finish when getting responses", async () => {
129129
const poll = new Poll(basePollStartEvent, mockClient, room);
130+
// @ts-expect-error TS2769
131+
const spy = jest.spyOn(poll, "fetchResponses");
130132
const firstResponsePromise = poll.getResponses();
131133
const secondResponsePromise = poll.getResponses();
132134
await firstResponsePromise;
133-
expect(firstResponsePromise).toEqual(secondResponsePromise);
134135
await secondResponsePromise;
136+
expect(spy).toHaveBeenCalledTimes(1);
135137
expect(mockClient.relations).toHaveBeenCalledTimes(1);
136138
});
137139

138-
it("filters relations for relevent response events", async () => {
140+
it("filters relations for relevant response events", async () => {
139141
const replyEvent = makeRelatedEvent({ type: "m.room.message" });
140142
const stableResponseEvent = makeRelatedEvent({ type: M_POLL_RESPONSE.stable! });
141143
const unstableResponseEvent = makeRelatedEvent({ type: M_POLL_RESPONSE.unstable });

spec/unit/rust-crypto/PerSessionKeyBackupDownloader.spec.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
import { type Mocked, type SpyInstance } from "jest-mock";
17+
import { type Mocked } from "jest-mock";
1818
import * as RustSdkCryptoJs from "@matrix-org/matrix-sdk-crypto-wasm";
1919
import { type OlmMachine } from "@matrix-org/matrix-sdk-crypto-wasm";
2020
import fetchMock from "fetch-mock-jest";
@@ -211,14 +211,14 @@ describe("PerSessionKeyBackupDownloader", () => {
211211
fetchMock.get(`path:/_matrix/client/v3/room_keys/keys/!roomA/sessionA1`, mockCipherKey);
212212

213213
// @ts-ignore access to private function
214-
const spy: SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
214+
const spy: jest.SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
215215

216216
const expectImported = expectSessionImported("!roomA", "sessionA1");
217217

218218
downloader.onDecryptionKeyMissingError("!roomA", "sessionA0");
219219
await jest.runAllTimersAsync();
220220
expect(spy).toHaveBeenCalledTimes(1);
221-
expect(spy).toHaveLastReturnedWith(Promise.resolve({ ok: false, error: "MISSING_DECRYPTION_KEY" }));
221+
await expect(spy.mock.results[0].value).rejects.toThrow("MISSING_DECRYPTION_KEY");
222222

223223
downloader.onDecryptionKeyMissingError("!roomA", "sessionA1");
224224
await jest.runAllTimersAsync();
@@ -237,7 +237,7 @@ describe("PerSessionKeyBackupDownloader", () => {
237237
});
238238

239239
// @ts-ignore access to private function
240-
const spy: SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
240+
const spy: jest.SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
241241

242242
downloader.onDecryptionKeyMissingError("!roomA", "sessionA0");
243243
await jest.runAllTimersAsync();
@@ -297,7 +297,7 @@ describe("PerSessionKeyBackupDownloader", () => {
297297
});
298298

299299
describe("Given no usable backup available", () => {
300-
let getConfigSpy: SpyInstance;
300+
let getConfigSpy: jest.SpyInstance;
301301

302302
beforeEach(async () => {
303303
mockRustBackupManager.getActiveBackupVersion.mockResolvedValue(null);
@@ -318,7 +318,7 @@ describe("PerSessionKeyBackupDownloader", () => {
318318
await jest.runAllTimersAsync();
319319

320320
expect(getConfigSpy).toHaveBeenCalledTimes(1);
321-
expect(getConfigSpy).toHaveReturnedWith(Promise.resolve(null));
321+
await expect(getConfigSpy.mock.results[0].value).resolves.toEqual(null);
322322

323323
// isKeyBackupDownloadConfigured remains false
324324
expect(downloader.isKeyBackupDownloadConfigured()).toBe(false);
@@ -336,7 +336,7 @@ describe("PerSessionKeyBackupDownloader", () => {
336336
await jest.runAllTimersAsync();
337337

338338
expect(getConfigSpy).toHaveBeenCalledTimes(1);
339-
expect(getConfigSpy).toHaveReturnedWith(Promise.resolve(null));
339+
await expect(getConfigSpy.mock.results[0].value).resolves.toEqual(null);
340340

341341
// isKeyBackupDownloadConfigured remains false
342342
expect(downloader.isKeyBackupDownloadConfigured()).toBe(false);
@@ -355,7 +355,7 @@ describe("PerSessionKeyBackupDownloader", () => {
355355
await jest.runAllTimersAsync();
356356

357357
expect(getConfigSpy).toHaveBeenCalledTimes(1);
358-
expect(getConfigSpy).toHaveReturnedWith(Promise.resolve(null));
358+
await expect(getConfigSpy.mock.results[0].value).resolves.toEqual(null);
359359

360360
// isKeyBackupDownloadConfigured remains false
361361
expect(downloader.isKeyBackupDownloadConfigured()).toBe(false);
@@ -377,7 +377,7 @@ describe("PerSessionKeyBackupDownloader", () => {
377377
await jest.runAllTimersAsync();
378378

379379
expect(getConfigSpy).toHaveBeenCalledTimes(1);
380-
expect(getConfigSpy).toHaveReturnedWith(Promise.resolve(null));
380+
await expect(getConfigSpy.mock.results[0].value).resolves.toEqual(null);
381381

382382
// isKeyBackupDownloadConfigured remains false
383383
expect(downloader.isKeyBackupDownloadConfigured()).toBe(false);
@@ -399,7 +399,7 @@ describe("PerSessionKeyBackupDownloader", () => {
399399
await jest.runAllTimersAsync();
400400

401401
expect(getConfigSpy).toHaveBeenCalledTimes(1);
402-
expect(getConfigSpy).toHaveReturnedWith(Promise.resolve(null));
402+
await expect(getConfigSpy.mock.results[0].value).resolves.toEqual(null);
403403

404404
// isKeyBackupDownloadConfigured remains false
405405
expect(downloader.isKeyBackupDownloadConfigured()).toBe(false);
@@ -488,7 +488,7 @@ describe("PerSessionKeyBackupDownloader", () => {
488488
const originalImplementation = downloader.queryKeyBackup.bind(downloader);
489489

490490
// @ts-ignore access to private function
491-
const keyQuerySpy: SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
491+
const keyQuerySpy: jest.SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
492492
const rateDeferred = Promise.withResolvers<void>();
493493

494494
keyQuerySpy.mockImplementation(
@@ -542,7 +542,7 @@ describe("PerSessionKeyBackupDownloader", () => {
542542
const originalImplementation = downloader.queryKeyBackup.bind(downloader);
543543

544544
// @ts-ignore
545-
const keyQuerySpy: SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
545+
const keyQuerySpy: jest.SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
546546
const errorDeferred = Promise.withResolvers<void>();
547547

548548
keyQuerySpy.mockImplementation(
@@ -606,7 +606,7 @@ describe("PerSessionKeyBackupDownloader", () => {
606606
});
607607

608608
// @ts-ignore access to private function
609-
const keyQuerySpy: SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
609+
const keyQuerySpy: jest.SpyInstance = jest.spyOn(downloader, "queryKeyBackup");
610610

611611
downloader.onDecryptionKeyMissingError("!roomA", "sessionA0");
612612
downloader.onDecryptionKeyMissingError("!roomA", "sessionA1");

spec/unit/rust-crypto/__snapshots__/rust-crypto.spec.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[`RustCrypto importing and exporting room keys should import and export keys 1`] = `
44
{

spec/unit/webrtc/groupCall.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,12 +187,14 @@ describe("Group Call", function () {
187187
});
188188

189189
it("does not start initializing local call feed twice", () => {
190-
const promise1 = groupCall.initLocalCallFeed();
190+
// @ts-expect-error TS2769
191+
const spy = jest.spyOn(groupCall, "initLocalCallFeedInternal");
192+
groupCall.initLocalCallFeed();
191193
// @ts-ignore Mock
192194
groupCall.state = GroupCallState.LocalCallFeedUninitialized;
193-
const promise2 = groupCall.initLocalCallFeed();
195+
groupCall.initLocalCallFeed();
194196

195-
expect(promise1).toEqual(promise2);
197+
expect(spy).toHaveBeenCalledTimes(1);
196198
});
197199

198200
it("sets state to local call feed uninitialized when getUserMedia() fails", async () => {

spec/unit/webrtc/stats/__snapshots__/callFeedStatsReporter.spec.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[`CallFeedStatsReporter should builds CallFeedReport 1`] = `
44
{

0 commit comments

Comments
 (0)