import { beforeEach, describe, expect, test } from "vitest";
import { DatabaseCircuitBreakerAdapter } from "@daiso-tech/core/circuit-breaker/database-circuit-breaker-adapter";
import { ConsecutiveBreaker } from "@daiso-tech/core/circuit-breaker/policies";
import { consecutiveBreakerTestSuite } from "@daiso-tech/core/circuit-breaker/test-utilities";
import { constantBackoff } from "@daiso-tech/core/backoff-policies";
import { MemoryCircuitBreakerStorageAdapter } from "@daiso-tech/core/circuit-breaker/memory-circuit-breaker-storage-adapter";
describe("consecutive-breaker class: DatabaseCircuitBreakerAdapter", () => {
consecutiveBreakerTestSuite({
createAdapter: () => {
const adapter = new DatabaseCircuitBreakerAdapter({
adapter: new MemoryCircuitBreakerStorageAdapter(),
backoffPolicy: constantBackoff(
consecutiveBreakerTestSuite.backoffPolicySettings,
),
circuitBreakerPolicy: new ConsecutiveBreaker(
consecutiveBreakerTestSuite.circuitBreakerPolicySettings,
),
});
return adapter;
},
beforeEach,
describe,
expect,
test,
});
});
IMPORT_PATH:
"@daiso-tech/core/circuit-breaker/test-utilities"