Skip to content

Commit

Permalink
add: add tsts for 3d facemapp error case
Browse files Browse the repository at this point in the history
  • Loading branch information
yaroslav-fedyshyn-nordwhale committed Jul 15, 2020
1 parent 53f00f6 commit 9880d4b
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/server/verification/api/__tests__/__util__/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export default zoomServiceMock => {
const serviceErrorMessage = 'Request failed with status code 500'
const failedEnrollmentMessage = 'The FaceMap was not enrolled because Liveness could not be determined.'
const failedLivenessMessage = '3D FaceMaps that are used with Search APIs must have had Liveness Proven.'
const enrollmentDisposedMessage = 'The entry in the database for this enrollmentIdentifier was successfully deleted'
const enrollmentFoundMessage = 'A FaceMap was found for that enrollmentIdentifier.'
const enrollmentNotFoundMessage = 'No entry found in the database for this enrollmentIdentifier.'
Expand Down Expand Up @@ -65,6 +66,21 @@ export default zoomServiceMock => {
}
})

const mockLivenessError = () =>
zoomServiceMock.onPost('/search').reply(400, {
meta: {
code: 400,
ok: false,
m: { zb: 2256, st: 1594565626.252231, bt: null, bp: null, zw: 2545, zp: 2528 },
subCode: 'unableToProcess',
mode: 'dev',
message: '3D FaceMaps that are used with Search APIs must have had Liveness Proven.'
},
data: {
isLive: false
}
})

const mockSuccessEnrollment = enrollmentIdentifier =>
zoomServiceMock.onPost('/enrollment').reply(200, {
meta: {
Expand Down Expand Up @@ -175,7 +191,9 @@ export default zoomServiceMock => {

mockSuccessEnrollment,
mockFailedEnrollment,
mockLivenessError,
failedEnrollmentMessage,
failedLivenessMessage,

mockEnrollmentFound,
mockEnrollmentNotFound,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,20 @@ describe('ZoomProvider', () => {
expect(onEnrollmentProcessing).toHaveBeenNthCalledWith(2, { isEnrolled: false, isLive: false })
})

test('enroll() throws 3D Facemap liveness error', async () => {
helper.mockEmptyResultsFaceSearch()
helper.mockLivenessError()

const onEnrollmentProcessing = jest.fn()
const wrappedResponse = expect(ZoomProvider.enroll(enrollmentIdentifier, payload, onEnrollmentProcessing)).rejects

await wrappedResponse.toThrow(helper.failedLivenessMessage)
await wrappedResponse.toHaveProperty('response')
await wrappedResponse.toHaveProperty('response.isLive', false)

expect(onEnrollmentProcessing).toHaveBeenNthCalledWith(1, { isLive: false })
})

test('enroll() throws on any Zoom service error and terminates without returning any response or calling callback', async () => {
zoomServiceMock
.onPost('/search')
Expand Down

0 comments on commit 9880d4b

Please sign in to comment.