devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
73 lines (72 loc) • 2.7 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/global_cache.test.js)
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
describe,
expect,
it,
jest
} from "@jest/globals";
import {
Cache
} from "./global_cache";
describe("global cache", (() => {
it("should be empty at initialization", (() => {
const cache = new Cache;
expect(cache.size).toBe(0)
}));
it("should get non-existed value", (() => {
const cache = new Cache;
expect(cache.get("test0")).toBe(void 0)
}));
it("should get existed value", (() => {
const cache = new Cache;
cache.memo("test0", (() => "callbackValue"));
expect(cache.get("test0")).toBe("callbackValue")
}));
it("should memo value", (() => {
const cache = new Cache;
const valueCallback = jest.fn().mockReturnValue(1).mockReturnValueOnce(2);
const memoValue = cache.memo("test", valueCallback);
expect(cache.get("test")).toBe(memoValue);
expect(cache.size).toBe(1)
}));
it("should memo twice for deleted value", (() => {
const cache = new Cache;
const valueCallback1 = jest.fn().mockReturnValue(1).mockReturnValueOnce(2);
const valueCallback2 = jest.fn().mockReturnValue(1).mockReturnValueOnce(2);
const memoValue1 = cache.memo("test1", valueCallback1);
const memoValue2 = cache.memo("test2", valueCallback2);
cache.delete("test1");
expect(cache.size).toBe(1);
expect(cache.memo("test1", valueCallback1)).not.toBe(memoValue1);
expect(cache.memo("test2", valueCallback2)).toBe(memoValue2);
expect(cache.size).toBe(2)
}));
it("should delete existed value", (() => {
const cache = new Cache;
cache.memo("test1", (() => "callbackValue1"));
cache.delete("test1");
expect(cache.get("test1")).toBe(void 0);
expect(cache.size).toBe(0)
}));
it("should delete non-existed value", (() => {
const cache = new Cache;
cache.memo("test1", (() => "callbackValue1"));
cache.memo("test2", (() => "callbackValue2"));
cache.delete("non-existed");
expect(cache.size).toBe(2)
}));
it("should clear all values", (() => {
const cache = new Cache;
cache.memo("test0", (() => "callbackValue"));
cache.memo("test1", (() => "callbackValue"));
cache.clear();
expect(cache.size).toBe(0)
}))
}));