mirror of
https://github.com/bitwarden/browser
synced 2025-12-15 15:53:27 +00:00
Allow string 'true' instead of true (#14816)
This commit is contained in:
@@ -92,6 +92,27 @@ describe("FidoAuthenticatorService", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("createCredential", () => {
|
describe("createCredential", () => {
|
||||||
|
describe("Mapping params should handle variations in input formats", () => {
|
||||||
|
it.each([
|
||||||
|
[true, true],
|
||||||
|
[false, false],
|
||||||
|
["false", false],
|
||||||
|
["", false],
|
||||||
|
["true", true],
|
||||||
|
])("requireResidentKey should handle %s as boolean %s", async (input, expected) => {
|
||||||
|
const params = createParams({
|
||||||
|
authenticatorSelection: { requireResidentKey: input as any },
|
||||||
|
extensions: { credProps: true },
|
||||||
|
});
|
||||||
|
|
||||||
|
authenticator.makeCredential.mockResolvedValue(createAuthenticatorMakeResult());
|
||||||
|
|
||||||
|
const result = await client.createCredential(params, windowReference);
|
||||||
|
|
||||||
|
expect(result.extensions.credProps?.rk).toBe(expected);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe("input parameters validation", () => {
|
describe("input parameters validation", () => {
|
||||||
// Spec: If sameOriginWithAncestors is false, return a "NotAllowedError" DOMException.
|
// Spec: If sameOriginWithAncestors is false, return a "NotAllowedError" DOMException.
|
||||||
it("should throw error if sameOriginWithAncestors is false", async () => {
|
it("should throw error if sameOriginWithAncestors is false", async () => {
|
||||||
|
|||||||
@@ -483,11 +483,15 @@ function mapToMakeCredentialParams({
|
|||||||
type: credential.type,
|
type: credential.type,
|
||||||
})) ?? [];
|
})) ?? [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Quirk: Accounts for the fact that some RP's mistakenly submits 'requireResidentKey' as a string
|
||||||
|
*/
|
||||||
const requireResidentKey =
|
const requireResidentKey =
|
||||||
params.authenticatorSelection?.residentKey === "required" ||
|
params.authenticatorSelection?.residentKey === "required" ||
|
||||||
params.authenticatorSelection?.residentKey === "preferred" ||
|
params.authenticatorSelection?.residentKey === "preferred" ||
|
||||||
(params.authenticatorSelection?.residentKey === undefined &&
|
(params.authenticatorSelection?.residentKey === undefined &&
|
||||||
params.authenticatorSelection?.requireResidentKey === true);
|
(params.authenticatorSelection?.requireResidentKey === true ||
|
||||||
|
(params.authenticatorSelection?.requireResidentKey as unknown as string) === "true"));
|
||||||
|
|
||||||
const requireUserVerification =
|
const requireUserVerification =
|
||||||
params.authenticatorSelection?.userVerification === "required" ||
|
params.authenticatorSelection?.userVerification === "required" ||
|
||||||
|
|||||||
Reference in New Issue
Block a user