@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
80 lines (56 loc) • 1.99 kB
text/typescript
import { MasterCellAsyncRenderManager } from "../MasterCellAsyncRenderManager";
describe("MasterCellAsyncRenderManager", () => {
it("run callback for 1 async element", () => {
// setup
const callback = jest.fn();
const manager = new MasterCellAsyncRenderManager(callback);
// run
manager.start();
// verify
expect(callback).not.toBeCalled();
manager.emitAsyncElementRegistrate();
expect(callback).not.toBeCalled();
manager.emitAsyncElementLayout();
expect(callback).toBeCalled();
});
it("run callback for 2 async element", () => {
// setup
const callback = jest.fn();
const manager = new MasterCellAsyncRenderManager(callback);
// run
manager.start();
// verify
expect(callback).not.toBeCalled();
manager.emitAsyncElementRegistrate();
manager.emitAsyncElementRegistrate();
expect(callback).not.toBeCalled();
manager.emitAsyncElementLayout();
manager.emitAsyncElementLayout();
expect(callback).toBeCalled();
});
it("run callback when cell_layout happens(zero async elements)", () => {
// setup
const callback = jest.fn();
const manager = new MasterCellAsyncRenderManager(callback);
// run
manager.start();
expect(callback).not.toBeCalled();
// verify
manager.onCellLayout();
expect(callback).toBeCalled();
});
it("should return decrementAsyncElementRegistrationCount, call decrementAsyncElementRegistrationCount should decrement count", () => {
// setup
const callback = jest.fn();
const manager = new MasterCellAsyncRenderManager(callback);
// run
manager.start();
// verify
expect(callback).not.toBeCalled();
const unsubscribe = manager.emitAsyncElementRegistrate();
expect(manager.asyncElementRegistrationCount).toBe(1);
expect(unsubscribe).toBe(manager.decrementAsyncElementRegistrationCount);
unsubscribe();
expect(manager.asyncElementRegistrationCount).toBe(0);
});
});