From fa9c77521cce2a55983333a0df326ec7beafb34d Mon Sep 17 00:00:00 2001 From: Mikkel Vester Petersen Date: Thu, 19 Nov 2020 14:19:41 +0100 Subject: [PATCH 1/3] Fix assertFails not recognising database permission denied error --- packages/rules-unit-testing/src/api/index.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/rules-unit-testing/src/api/index.ts b/packages/rules-unit-testing/src/api/index.ts index 680b195b09f..28626127f52 100644 --- a/packages/rules-unit-testing/src/api/index.ts +++ b/packages/rules-unit-testing/src/api/index.ts @@ -454,9 +454,14 @@ export function assertFails(pr: Promise): any { ); }, (err: any) => { + const errCode = (err && err.code && err.code.toLowerCase()) || ''; + const errMessage = + (err && err.message && err.message.toLowerCase()) || ''; const isPermissionDenied = - (err && err.message && err.message.indexOf('PERMISSION_DENIED') >= 0) || - (err && err.code === 'permission-denied'); + errCode === 'permission-denied' || + errCode === 'permission_denied' || + errMessage.indexOf('permission_denied') >= 0; + if (!isPermissionDenied) { return Promise.reject( new Error( From fd386fe125dfca465db5920d3725c98b47d6c50a Mon Sep 17 00:00:00 2001 From: Mikkel Vester Petersen Date: Thu, 19 Nov 2020 15:04:45 +0100 Subject: [PATCH 2/3] Add rules-unit-testing changeset --- .changeset/early-dots-peel.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/early-dots-peel.md diff --git a/.changeset/early-dots-peel.md b/.changeset/early-dots-peel.md new file mode 100644 index 00000000000..2b059fbabff --- /dev/null +++ b/.changeset/early-dots-peel.md @@ -0,0 +1,5 @@ +--- +"@firebase/rules-unit-testing": patch +--- + +Fix assertFails not recognising database permission denied error From 878fec26907921f148e7e940c304ed5495c94f47 Mon Sep 17 00:00:00 2001 From: Mikkel Vester Petersen Date: Fri, 20 Nov 2020 11:25:50 +0100 Subject: [PATCH 3/3] Add assertFails test when code is PERMISSION_DENIED --- .../rules-unit-testing/test/database.test.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/rules-unit-testing/test/database.test.ts b/packages/rules-unit-testing/test/database.test.ts index d5929ee8666..95bb16a8db7 100644 --- a/packages/rules-unit-testing/test/database.test.ts +++ b/packages/rules-unit-testing/test/database.test.ts @@ -103,6 +103,31 @@ describe('Testing Module Tests', function () { .catch(() => {}); }); + it('assertFails() if code is PERMISSION_DENIED', async function () { + const success = Promise.resolve('success'); + const permissionDenied = Promise.reject({ + code: 'PERMISSION_DENIED' + }); + const otherFailure = Promise.reject('failure'); + await firebase + .assertFails(success) + .then(() => { + throw new Error('Expected success to fail.'); + }) + .catch(() => {}); + + await firebase.assertFails(permissionDenied).catch(() => { + throw new Error('Expected permissionDenied to succeed.'); + }); + + await firebase + .assertFails(otherFailure) + .then(() => { + throw new Error('Expected otherFailure to fail.'); + }) + .catch(() => {}); + }); + it('initializeTestApp() with auth=null does not set access token', async function () { const app = firebase.initializeTestApp({ projectId: 'foo',