import { describe, expect, it } from "vite-plus/test";import * as PlatformError from "effect/PlatformError"; import { SecretStorePersistError } from "./ServerSecretStore.ts";import { mapDpopFailureReason, mapDpopReplayStoreError } from "./dpop.ts"; const storeFailure = (tag: "AlreadyExists" | "PermissionDenied") => new SecretStorePersistError({ resource: "DPoP proof", cause: PlatformError.systemError({ _tag: tag, module: "FileSystem", method: "open", pathOrDescriptor: "dpop-proof.bin", }), }); describe("mapDpopReplayStoreError", () => { it("reports replay conflicts as invalid credentials", () => { const cause = storeFailure("AlreadyExists"); const error = mapDpopReplayStoreError(cause); expect(error._tag).toBe("ServerAuthInvalidCredentialError"); if (error._tag === "ServerAuthInvalidCredentialError") { expect(error.cause).toBe(cause); expect(error.dpopFailureReason).toBe("replay"); } }); it("reports replay-store availability failures as internal errors", () => { const error = mapDpopReplayStoreError(storeFailure("PermissionDenied")); expect(error._tag).toBe("ServerAuthDpopReplayStateRecordError"); if (error._tag === "ServerAuthDpopReplayStateRecordError") { expect(error.message).toBe("Failed to record DPoP proof replay state."); } });}); describe("mapDpopFailureReason", () => { it("maps verifier failures to safe client-facing categories", () => { const mappings = [ ["time_window", "time_window"], ["key_mismatch", "key_mismatch"], ["method_mismatch", "request_mismatch"], ["url_mismatch", "request_mismatch"], ["access_token_hash_mismatch", "token_mismatch"], ["missing_proof", "invalid_proof"], ["malformed_proof", "invalid_proof"], ["invalid_signature", "invalid_proof"], ["invalid_proof", "invalid_proof"], ] as const; for (const [code, expected] of mappings) { expect(mapDpopFailureReason(code)).toBe(expected); } });});
import { describe, expect, it } from "vite-plus/test";
import * as PlatformError from "effect/PlatformError";
import { SecretStorePersistError } from "./ServerSecretStore.ts";
import { mapDpopFailureReason, mapDpopReplayStoreError } from "./dpop.ts";
const storeFailure = (tag: "AlreadyExists" | "PermissionDenied") =>
new SecretStorePersistError({
resource: "DPoP proof",
cause: PlatformError.systemError({
_tag: tag,
module: "FileSystem",
method: "open",
pathOrDescriptor: "dpop-proof.bin",
}),
});
describe("mapDpopReplayStoreError", () => {
it("reports replay conflicts as invalid credentials", () => {
const cause = storeFailure("AlreadyExists");
const error = mapDpopReplayStoreError(cause);
expect(error._tag).toBe("ServerAuthInvalidCredentialError");
if (error._tag === "ServerAuthInvalidCredentialError") {
expect(error.cause).toBe(cause);
expect(error.dpopFailureReason).toBe("replay");
}
});
it("reports replay-store availability failures as internal errors", () => {
const error = mapDpopReplayStoreError(storeFailure("PermissionDenied"));
expect(error._tag).toBe("ServerAuthDpopReplayStateRecordError");
if (error._tag === "ServerAuthDpopReplayStateRecordError") {
expect(error.message).toBe("Failed to record DPoP proof replay state.");
}
});
});
describe("mapDpopFailureReason", () => {
it("maps verifier failures to safe client-facing categories", () => {
const mappings = [
["time_window", "time_window"],
["key_mismatch", "key_mismatch"],
["method_mismatch", "request_mismatch"],
["url_mismatch", "request_mismatch"],
["access_token_hash_mismatch", "token_mismatch"],
["missing_proof", "invalid_proof"],
["malformed_proof", "invalid_proof"],
["invalid_signature", "invalid_proof"],
["invalid_proof", "invalid_proof"],
] as const;
for (const [code, expected] of mappings) {
expect(mapDpopFailureReason(code)).toBe(expected);
}
});
});