import { describe, expect, test, beforeEach } from "vitest";
import { MemorySemaphoreAdapter } from "@daiso-tech/core/semaphore/adapters";
import { SemaphoreProvider } from "@daiso-tech/core/semaphore";
import { EventBus } from "@daiso-tech/core/event-bus";
import { MemoryEventBusAdapter } from "@daiso-tech/core/event-bus/adapters";
import { semaphoreProviderTestSuite } from "@daiso-tech/core/semaphore/test-utilities";
import { Serde } from "@daiso-tech/core/serde";
import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
import type { ISemaphoreData } from "@daiso-tech/core/semaphore/contracts";
describe("class: SemaphoreProvider", () => {
semaphoreProviderTestSuite({
createSemaphoreProvider: () => {
const serde = new Serde(new SuperJsonSerdeAdapter());
const semaphoreProvider = new SemaphoreProvider({
serde,
adapter: new MemorySemaphoreAdapter(),
});
return { semaphoreProvider, serde };
},
beforeEach,
describe,
expect,
test,
serde,
});
});
The
semaphoreProviderTestSuite
function simplifies the process of testing your custom implementation ofISemaphore
withvitest
.IMPORT_PATH:
"@daiso-tech/core/semaphore/test-utilities"