Initial Commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { describe, expect, it } from "@suaveplan/testing/runner";
|
||||
import { TWOPC_CODES, TwoPcError } from "../error-codes/error-codes.js";
|
||||
import { DEFAULT_TIMEOUT_MS, TIMEOUT_CEILING_MS } from "../options/options.js";
|
||||
import { assertTimeoutBelowCeiling } from "./timeout-ceiling.js";
|
||||
|
||||
function expectCeilingError(fn: () => void): TwoPcError {
|
||||
try {
|
||||
fn();
|
||||
} catch (err) {
|
||||
expect(err).toBeInstanceOf(TwoPcError);
|
||||
const e = err as TwoPcError;
|
||||
expect(e.twoPcCode).toBe(TWOPC_CODES.TIMEOUT_CEILING_EXCEEDED);
|
||||
return e;
|
||||
}
|
||||
throw new Error("expected TWOPC_TIMEOUT_CEILING_EXCEEDED");
|
||||
}
|
||||
|
||||
describe("assertTimeoutBelowCeiling", () => {
|
||||
it("accepts the default timeoutMs (5000)", { timeout: 5000 }, () => {
|
||||
expect(() =>
|
||||
assertTimeoutBelowCeiling(DEFAULT_TIMEOUT_MS)
|
||||
).not.toThrow();
|
||||
});
|
||||
|
||||
it("accepts a value equal to the ceiling", { timeout: 5000 }, () => {
|
||||
expect(() =>
|
||||
assertTimeoutBelowCeiling(TIMEOUT_CEILING_MS)
|
||||
).not.toThrow();
|
||||
});
|
||||
|
||||
it("rejects timeoutMs above the ceiling", { timeout: 5000 }, () => {
|
||||
expectCeilingError(() =>
|
||||
assertTimeoutBelowCeiling(TIMEOUT_CEILING_MS + 1)
|
||||
);
|
||||
});
|
||||
|
||||
it("rejects zero", { timeout: 5000 }, () => {
|
||||
expectCeilingError(() => assertTimeoutBelowCeiling(0));
|
||||
});
|
||||
|
||||
it("rejects negative values", { timeout: 5000 }, () => {
|
||||
expectCeilingError(() => assertTimeoutBelowCeiling(-1));
|
||||
});
|
||||
|
||||
it("rejects NaN", { timeout: 5000 }, () => {
|
||||
expectCeilingError(() => assertTimeoutBelowCeiling(Number.NaN));
|
||||
});
|
||||
|
||||
it("rejects Infinity", { timeout: 5000 }, () => {
|
||||
expectCeilingError(() =>
|
||||
assertTimeoutBelowCeiling(Number.POSITIVE_INFINITY)
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user