33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import { expect, test } from "bun:test";
|
|
import { publicKeyCreationOptions, publicKeyRequestOptions } from "../src/passkeys/index.ts";
|
|
|
|
test("passkey option conversion accepts canonical Base64URL values", () => {
|
|
const creation = publicKeyCreationOptions({
|
|
challenge: "AQID",
|
|
rp: { id: "example.test", name: "Example" },
|
|
user: { id: "BAUG", name: "user", displayName: "User" },
|
|
timeout: 60_000,
|
|
attestation: "none",
|
|
});
|
|
expect(Array.from(creation.challenge as Uint8Array)).toEqual([1, 2, 3]);
|
|
|
|
const request = publicKeyRequestOptions({
|
|
challenge: "BAUG",
|
|
rpId: "example.test",
|
|
timeout: 60_000,
|
|
userVerification: "preferred",
|
|
});
|
|
expect(Array.from(request.challenge as Uint8Array)).toEqual([4, 5, 6]);
|
|
});
|
|
|
|
test("passkey option conversion rejects malformed Base64URL values", () => {
|
|
expect(() =>
|
|
publicKeyRequestOptions({
|
|
challenge: "AQID=",
|
|
rpId: "example.test",
|
|
timeout: 60_000,
|
|
userVerification: "required",
|
|
}),
|
|
).toThrow("canonical Base64URL");
|
|
});
|