Files
aniplay-api/src/libs/lazy.spec.ts
Rushil Perera 1140ffa8b8 refactor!: migrate away from bun
- migrate package management to pnpm
- migrate test suite to vitest
- also remove Anify integration
2025-12-16 07:50:38 -05:00

46 lines
968 B
TypeScript

import { describe, expect, it } from "vitest";
import { lazy } from "./lazy";
describe("lazy", () => {
it("lazy value returned when get is called", () => {
const value = lazy(() => "value");
expect(value.get()).toBe("value");
});
it("lazy function not called if get isn't called", () => {
let setValue = false;
lazy(() => {
setValue = true;
return "value";
});
expect(setValue).toBe(false);
});
it("lazy function called if get is called", () => {
let setValue = false;
lazy(() => {
setValue = true;
return "value";
}).get();
expect(setValue).toBe(true);
});
it("lazy function called only once if get is called multiple times", () => {
let count = 0;
const value = lazy(() => {
count++;
return "value";
});
const NUM_TIMES_CALLED = 1_000_000;
for (let i = 0; i < NUM_TIMES_CALLED; i++) {
value.get();
}
expect(count).toBe(1);
});
});