UNPKG

boldsign

Version:

NodeJS client for boldsign

114 lines (108 loc) 5.07 kB
import { IdentityVerificationApi } from '../../api/identityVerificationApi'; import { DocumentApi } from '../../api/documentApi'; import {DocumentSigner,FormField,Rectangle,SendForSign,IdentityVerificationSettings,EmbeddedFileDetails,VerificationDataRequest,DownloadImageRequest} from '../../model'; import * as fs from 'fs'; import config from '../config'; describe('Document API Test Suite', () => { let identityVerificationApi: IdentityVerificationApi; let documentApi: DocumentApi; let createdDocumentId; beforeAll(() => { createdDocumentId = null; const apiKey = config.apiKey; const baseUrl = config.baseUrl; if (!apiKey || !baseUrl) { throw new Error("Environment variables 'API_KEY' or 'HOST_URL' are not set."); } documentApi = new DocumentApi(baseUrl); documentApi.setApiKey(apiKey); identityVerificationApi = new IdentityVerificationApi(baseUrl); identityVerificationApi.setApiKey(apiKey); }); test('Test1:should send a document with identity verification', async () => { try { const signer = new DocumentSigner(); signer.name = 'Test Signer'; signer.emailAddress = 'sivaramani.sivaraj@syncfusion.com'; signer.signerOrder = 1; signer.signerType = DocumentSigner.SignerTypeEnum.Signer; signer.authenticationType = DocumentSigner.AuthenticationTypeEnum.IdVerification; const formField = new FormField(); formField.name = 'Sign'; formField.fieldType = FormField.FieldTypeEnum.Signature; formField.font = FormField.FontEnum.Helvetica; formField.pageNumber = 1; formField.isRequired = true; const bounds = new Rectangle(); bounds.x = 50; bounds.y = 50; bounds.width = 200; bounds.height = 50; formField.bounds = bounds; signer.formFields = [formField]; signer.privateMessage = 'This is a private message for signer'; const idVerificationSettings = new IdentityVerificationSettings(); idVerificationSettings.type = IdentityVerificationSettings.TypeEnum.EveryAccess; idVerificationSettings.maximumRetryCount = 2; const sendDocumentRequest = new SendForSign(); sendDocumentRequest.title = 'Document SDK API - ID Verification'; sendDocumentRequest.files = [fs.createReadStream('tests/documents/agreement.pdf')]; sendDocumentRequest.enablePrintAndSign = true; sendDocumentRequest.signers = [signer]; sendDocumentRequest.message = 'Please verify your identity and sign this document'; const response = await documentApi.sendDocument(sendDocumentRequest); expect(response.documentId).toBeDefined(); createdDocumentId = response.documentId; console.log('Document sent with ID verification. Document ID:', createdDocumentId); } catch (error) { console.error('Error occurred while sending document with identity verification:', error); expect(error).toBeUndefined(); } }, 7000000); test('Test2:should fail to create an embedded verification URL with invalid document ID', async () => { const manualVerification: EmbeddedFileDetails = { emailId: 'sivaramani.sivaraj@syncfusion.com', countryCode: '+91', phoneNumber: '8807799764', redirectUrl: 'https://www.boldsign.com', order: 1 }; try { const response = await identityVerificationApi.createEmbeddedVerificationUrl(createdDocumentId, manualVerification); fail('Expected 400 Bad Request error, but the API call succeeded.'); } catch (error: any) { console.error(error); expect(error).toBeDefined(); } }, 700000); test('Test3:should fail when requesting verification report with invalid or unauthorized data', async () => { const requestData: VerificationDataRequest = { emailId: 'sivaramani.sivaraj@syncfusion.com', countryCode: '+91', phoneNumber: '8807799764', order: 1 }; try { await identityVerificationApi.report(createdDocumentId, requestData); fail('Expected 403 Forbidden error, but the API call succeeded.'); } catch (error: any) { expect(error).toBeDefined(); } }, 700000); test('Test4:should fail invalid file ID in image download request', async () => { const imageRequest: DownloadImageRequest = { emailId: 'sivaramani.sivaraj@syncfusion.com', countryCode: '+91', phoneNumber: '8807799764', fileId: 'invalid-file-id', order: 1 }; try { const imageResponse = await identityVerificationApi.image(createdDocumentId, imageRequest); console.log('Unexpectedly received image response:', imageResponse); fail('Expected 403 Forbidden error, but the API call succeeded.'); } catch (error: any) { expect(error).toBeDefined(); } }, 700000); })