@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
49 lines (39 loc) • 1.53 kB
text/typescript
import * as cacheModule from "@ledgerhq/live-network/cache";
import { makeBridgeCacheSystem } from "./cache";
import { getCryptoCurrencyById } from "../currencies";
import { setEnv } from "@ledgerhq/live-env";
describe("Bridge Cache", () => {
beforeEach(() => {
jest.clearAllMocks();
});
beforeAll(() => {
setEnv("MOCK", "1");
setEnv("PLAYWRIGHT_RUN", true);
});
afterAll(() => {
setEnv("MOCK", "");
setEnv("PLAYWRIGHT_RUN", false);
});
it("does not re-generate the LRU cache by default", async () => {
const makeLRUCache = jest.spyOn(cacheModule, "makeLRUCache");
const { prepareCurrency } = makeBridgeCacheSystem({
saveData: () => Promise.resolve(),
getData: () => Promise.resolve(null),
});
await prepareCurrency(getCryptoCurrencyById("solana"));
expect(makeLRUCache).toHaveBeenCalledTimes(1);
await prepareCurrency(getCryptoCurrencyById("solana"));
expect(makeLRUCache).toHaveBeenCalledTimes(1);
}, 10000);
it("forces the LRU cache to be re-generated", async () => {
const makeLRUCache = jest.spyOn(cacheModule, "makeLRUCache");
const { prepareCurrency } = makeBridgeCacheSystem({
saveData: () => Promise.resolve(),
getData: () => Promise.resolve(null),
});
await prepareCurrency(getCryptoCurrencyById("solana"));
expect(makeLRUCache).toHaveBeenCalledTimes(1);
await prepareCurrency(getCryptoCurrencyById("solana"), { forceUpdate: true });
expect(makeLRUCache).toHaveBeenCalledTimes(2);
}, 10000);
});