123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import { EventBus } from "./eventBus";
- declare global {
- interface EventMapper {
- "": any;
- }
- }
- describe("eventBus", () => {
- const MockEvent: any = test;
- test("事件订阅", () => {
- const bus = new EventBus();
- const fn = jest.fn();
- const disposer = bus.on(MockEvent, fn);
- bus.emit(MockEvent, "foo");
- expect(fn).lastCalledWith("foo");
- disposer();
- bus.emit(MockEvent, "bar");
- expect(fn).toHaveBeenCalledTimes(1);
- });
- test("单次事件订阅", () => {
- const bus = new EventBus();
- const fn = jest.fn();
- bus.once(MockEvent, fn);
- bus.emit(MockEvent, "foo");
- bus.emit(MockEvent, "bar");
- expect(fn).lastCalledWith("foo");
- expect(fn).toHaveBeenCalledTimes(1);
- });
- test("新增订阅者", () => {
- const bus = new EventBus();
- const fn = jest.fn();
- bus.onSubscriber(MockEvent, (listener) => {
- listener("foo");
- });
- bus.on(MockEvent, fn);
- expect(fn).lastCalledWith("foo");
- });
- });
|