From e23da1e268ff20f995eae5783f82106ca9dc6230 Mon Sep 17 00:00:00 2001 From: Yuchen Shi Date: Thu, 5 Nov 2020 09:07:22 -0800 Subject: [PATCH 1/4] Handle lookup returning empty array of users. --- src/auth/auth-api-request.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/auth/auth-api-request.ts b/src/auth/auth-api-request.ts index f57fdc3fcc..753f06e48f 100644 --- a/src/auth/auth-api-request.ts +++ b/src/auth/auth-api-request.ts @@ -629,7 +629,7 @@ export const FIREBASE_AUTH_GET_ACCOUNT_INFO = new ApiSettings('/accounts:lookup' }) // Set response validator. .setResponseValidator((response: any) => { - if (!response.users) { + if (!response.users || !response.users.length) { throw new FirebaseAuthError(AuthClientErrorCode.USER_NOT_FOUND); } }); From 7e1425e3afde7fe020853be0adecb3763687a24a Mon Sep 17 00:00:00 2001 From: Yuchen Shi Date: Thu, 5 Nov 2020 09:33:38 -0800 Subject: [PATCH 2/4] Update tests. --- test/unit/auth/auth-api-request.spec.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/unit/auth/auth-api-request.spec.ts b/test/unit/auth/auth-api-request.spec.ts index 4c621fe215..6225b37495 100644 --- a/test/unit/auth/auth-api-request.spec.ts +++ b/test/unit/auth/auth-api-request.spec.ts @@ -369,17 +369,23 @@ describe('FIREBASE_AUTH_GET_ACCOUNT_INFO', () => { describe('responseValidator', () => { const responseValidator = FIREBASE_AUTH_GET_ACCOUNT_INFO.getResponseValidator(); it('should succeed with users returned', () => { - const validResponse: object = { users: [] }; + const validResponse: object = { users: [{ localId: "foo" }] }; expect(() => { return responseValidator(validResponse); }).not.to.throw(); }); - it('should fail when users is not returned', () => { + it('should fail when users is empty', () => { const invalidResponse = {}; expect(() => { responseValidator(invalidResponse); }).to.throw(); }); + it('should fail when users is not returned', () => { + const invalidResponse = { users: [] }; + expect(() => { + responseValidator(invalidResponse); + }).to.throw(); + }); }); }); From ea853ec2dc9d6242ef9132bfa399faee5daa3e48 Mon Sep 17 00:00:00 2001 From: Yuchen Shi Date: Thu, 5 Nov 2020 09:52:57 -0800 Subject: [PATCH 3/4] Use single quotes. --- test/unit/auth/auth-api-request.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/auth/auth-api-request.spec.ts b/test/unit/auth/auth-api-request.spec.ts index 6225b37495..4253b73aa3 100644 --- a/test/unit/auth/auth-api-request.spec.ts +++ b/test/unit/auth/auth-api-request.spec.ts @@ -369,7 +369,7 @@ describe('FIREBASE_AUTH_GET_ACCOUNT_INFO', () => { describe('responseValidator', () => { const responseValidator = FIREBASE_AUTH_GET_ACCOUNT_INFO.getResponseValidator(); it('should succeed with users returned', () => { - const validResponse: object = { users: [{ localId: "foo" }] }; + const validResponse: object = { users: [{ localId: 'foo' }] }; expect(() => { return responseValidator(validResponse); }).not.to.throw(); From e2e783711ec13f350e9079d0442f5a9be95ab9c8 Mon Sep 17 00:00:00 2001 From: Yuchen Shi Date: Fri, 6 Nov 2020 12:42:45 -0800 Subject: [PATCH 4/4] Update auth-api-request.spec.ts --- test/unit/auth/auth-api-request.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/auth/auth-api-request.spec.ts b/test/unit/auth/auth-api-request.spec.ts index 4253b73aa3..0a86231e53 100644 --- a/test/unit/auth/auth-api-request.spec.ts +++ b/test/unit/auth/auth-api-request.spec.ts @@ -374,13 +374,13 @@ describe('FIREBASE_AUTH_GET_ACCOUNT_INFO', () => { return responseValidator(validResponse); }).not.to.throw(); }); - it('should fail when users is empty', () => { + it('should fail when the response object is empty', () => { const invalidResponse = {}; expect(() => { responseValidator(invalidResponse); }).to.throw(); }); - it('should fail when users is not returned', () => { + it('should fail when the response object has an empty list of users', () => { const invalidResponse = { users: [] }; expect(() => { responseValidator(invalidResponse);