import { beforeEach, describe, expect, test } from "vitest";
import { DatabaseCircuitBreakerAdapter } from "@daiso-tech/core/circuit-breaker/database-circuit-breaker-adapter";
import { SamplingBreaker } from "@daiso-tech/core/circuit-breaker/policies";
import { samplingBreakerTestSuite } 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("sampling-breaker class: DatabaseCircuitBreakerAdapter", () => {
samplingBreakerTestSuite({
createAdapter: () => {
const adapter = new DatabaseCircuitBreakerAdapter({
adapter: new MemoryCircuitBreakerStorageAdapter(),
backoffPolicy: constantBackoff(
samplingBreakerTestSuite.backoffPolicySettings,
),
circuitBreakerPolicy: new SamplingBreaker(
samplingBreakerTestSuite.circuitBreakerPolicySettings,
),
});
return adapter;
},
beforeEach,
describe,
expect,
test,
});
});
IMPORT_PATH:
"@daiso-tech/core/circuit-breaker/test-utilities"