Function lockProviderTestSuite

  • The lockProviderTestSuite function simplifies the process of testing your custom implementation of ILock with vitest.

    IMPORT_PATH: "@daiso-tech/core/lock/implementations/test-utilities"

    Parameters

    Returns void

    import { beforeEach, describe, expect, test } from "vitest";
    import { MemoryLockAdapter } from "@daiso-tech/core/lock/implementations/adapters";
    import { LockProvider } from "@daiso-tech/core/lock/implementations/derivables";
    import { EventBus } from "@daiso-tech/core/event-bus/implementations/derivables";
    import { MemoryEventBusAdapter } from "@daiso-tech/core/event-bus/implementations/adapters";
    import { lockProviderTestSuite } from "@daiso-tech/core/lock/implementations/test-utilities";
    import { Serde } from "@daiso-tech/core/serde/implementations/derivables";
    import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/implementations/adapters";
    import type { ILockData } from "@daiso-tech/core/lock/contracts";

    describe("class: LockProvider", () => {
    const eventBus = new EventBus({
    adapter: new MemoryEventBusAdapter({
    rootGroup: "@global",
    }),
    });
    const serde = new Serde(new SuperJsonSerdeAdapter());
    let map: Map<string, ILockData>;
    beforeEach(() => {
    map = new Map();
    });
    lockProviderTestSuite({
    createLockProvider: () => {
    const lockProvider = new LockProvider({
    serde,
    adapter: new MemoryLockAdapter({
    rootGroup: "@a",
    map,
    }),
    eventBus,
    });
    return lockProvider;
    },
    beforeEach,
    describe,
    expect,
    test,
    serde,
    });
    });