Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Prevent rust-crypto setting from leaking to other tests (#10464)
Browse files Browse the repository at this point in the history
Follow-up to #9759.

Because the MatrixClientPeg pushes the use_rust_crypto setting back into the SettingsStore, the setting was leaking out to other tests despite getValue's mock being restored.

The solution is to mock out setValue as well.
  • Loading branch information
richvdh committed Mar 27, 2023
1 parent 513eb0f commit d821323
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions test/MatrixClientPeg-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import fetchMockJest from "fetch-mock-jest";
import { advanceDateAndTime, stubClient } from "./test-utils";
import { IMatrixClientPeg, MatrixClientPeg as peg } from "../src/MatrixClientPeg";
import SettingsStore from "../src/settings/SettingsStore";
import { SettingLevel } from "../src/settings/SettingLevel";

jest.useFakeTimers();

Expand Down Expand Up @@ -121,12 +122,17 @@ describe("MatrixClientPeg", () => {
},
);

const mockSetValue = jest.spyOn(SettingsStore, "setValue").mockResolvedValue(undefined);

const mockInitCrypto = jest.spyOn(testPeg.get(), "initCrypto").mockResolvedValue(undefined);
const mockInitRustCrypto = jest.spyOn(testPeg.get(), "initRustCrypto").mockResolvedValue(undefined);

await testPeg.start();
expect(mockInitCrypto).not.toHaveBeenCalled();
expect(mockInitRustCrypto).toHaveBeenCalledTimes(1);

// we should have stashed the setting in the settings store
expect(mockSetValue).toHaveBeenCalledWith("feature_rust_crypto", null, SettingLevel.DEVICE, true);
});
});
});

0 comments on commit d821323

Please sign in to comment.