From 10a19c7a5db55e97714554c56e1448378dfd376c Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 25 Jun 2023 10:45:31 -0700 Subject: Add tests --- .../browser/src/methods/startRegistration.test.ts | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'packages/browser/src/methods') diff --git a/packages/browser/src/methods/startRegistration.test.ts b/packages/browser/src/methods/startRegistration.test.ts index debaba3..f8c0e5a 100644 --- a/packages/browser/src/methods/startRegistration.test.ts +++ b/packages/browser/src/methods/startRegistration.test.ts @@ -250,6 +250,33 @@ test('should return authenticatorAttachment if present', async () => { expect(response.authenticatorAttachment).toEqual('cross-platform'); }); +test('should return convenience values if present', async () => { + /** + * I call them "convenience values" because the getters for public key algorithm, + * public key bytes, and authenticator data are alternative ways to access information + * that's already buried in the response. + */ + // Mock extension return values from authenticator + mockNavigatorCreate.mockImplementation((): Promise => { + return new Promise(resolve => { + resolve({ + response: { + getPublicKeyAlgorithm: () => 777, + getPublicKey: () => new Uint8Array([0, 0, 0, 0]).buffer, + getAuthenticatorData: () => new Uint8Array([0, 0, 0, 0]).buffer, + }, + getClientExtensionResults: () => { }, + }); + }); + }); + + const response = await startRegistration(goodOpts1); + + expect(response.response.publicKeyAlgorithm).toEqual(777); + expect(response.response.publicKey).toEqual('AAAAAA'); + expect(response.response.authenticatorData).toEqual('AAAAAA'); +}); + describe('WebAuthnError', () => { describe('AbortError', () => { const AbortError = generateCustomError('AbortError'); -- cgit v1.2.3