UNPKG

boldsign

Version:

NodeJS client for boldsign

368 lines 18.2 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const api_1 = require("../../api"); const model_1 = require("../../model"); const config_1 = __importDefault(require("../config")); const fs = __importStar(require("fs")); const perf_hooks_1 = require("perf_hooks"); describe('Full Integration & Performance Test Suite', () => { let senderIdentitiesApi; let brandingApi; let contactsApi; let customFieldApi; let documentApi; let templateApi; let teamsApi; let userApi; let brandId; let createdUserId; let teamName; let createdCustomFieldId; let createdSenderIdentityId; let createdDocumentId; let createdTemplateId; let emailId; let customFieldName; const generateRandomEmail = () => `sdktesting${Math.floor(1000 + Math.random() * 9000)}@syncfusion.com`; const generateRandomNumber = () => Math.floor(1000 + Math.random() * 9000).toString(); beforeAll(() => { const apiKey = config_1.default.apiKey; const baseUrl = config_1.default.baseUrl; if (!apiKey || !baseUrl) { throw new Error("Environment variables 'API_KEY' or 'HOST_URL' are not set."); } brandingApi = new api_1.BrandingApi(baseUrl); brandingApi.setApiKey(apiKey); contactsApi = new api_1.ContactsApi(baseUrl); contactsApi.setApiKey(apiKey); customFieldApi = new api_1.CustomFieldApi(baseUrl); customFieldApi.setApiKey(apiKey); documentApi = new api_1.DocumentApi(baseUrl); documentApi.setApiKey(apiKey); templateApi = new api_1.TemplateApi(baseUrl); templateApi.setApiKey(apiKey); senderIdentitiesApi = new api_1.SenderIdentitiesApi(baseUrl); senderIdentitiesApi.setApiKey(apiKey); teamsApi = new api_1.TeamsApi(baseUrl); teamsApi.setApiKey(apiKey); userApi = new api_1.UserApi(baseUrl); userApi.setApiKey(apiKey); emailId = generateRandomEmail(); customFieldName = `Test Custom Field ${generateRandomNumber()}`; teamName = `sdktestingteam${generateRandomNumber()}`; }); test('Performance Test 1: Create a brand', () => __awaiter(void 0, void 0, void 0, function* () { const brandLogo = fs.createReadStream("tests/documents/logo.jpg"); const start = perf_hooks_1.performance.now(); try { const response = yield brandingApi.createBrand("NodeSDK_Perf", brandLogo, "Blue", "Black", "White", "{SenderName} from Syncfusion"); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Brand creation took ${duration.toFixed(10)} ms`); brandId = response.brandId; expect(brandId).toBeDefined(); expect(duration).toBeLessThan(10000); } catch (error) { console.error("Error during brand creation:", error.message); expect(error).toBeUndefined(); } }), 20000); test('Performance Test 2: Create a contact', () => __awaiter(void 0, void 0, void 0, function* () { const contactDetails = new model_1.ContactDetails(); contactDetails.name = "sdktesting"; contactDetails.email = emailId; const start = perf_hooks_1.performance.now(); try { const response = yield contactsApi.createContact([contactDetails]); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Contact creationcontac took ${duration.toFixed(10)} ms`); expect(response).toBeDefined(); expect(duration).toBeLessThan(10000); } catch (error) { console.error("Error during contact creation:", error); expect(error).toBeUndefined(); } }), 20000); test('Performance Test 3: Create a custom field', () => __awaiter(void 0, void 0, void 0, function* () { const formField = new model_1.CustomFormField(); formField.fieldType = model_1.CustomFormField.FieldTypeEnum.Signature; formField.placeHolder = "string"; formField.isRequired = true; const customFieldDetails = new model_1.BrandCustomFieldDetails(); customFieldDetails.fieldName = customFieldName; customFieldDetails.fieldDescription = "string"; customFieldDetails.fieldOrder = 2; customFieldDetails.brandId = brandId; customFieldDetails.sharedField = true; customFieldDetails.formField = formField; const start = perf_hooks_1.performance.now(); try { const response = yield customFieldApi.createCustomField(customFieldDetails); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Custom field creation took ${duration.toFixed(10)} ms`); createdCustomFieldId = response.customFieldId; expect(createdCustomFieldId).toBeDefined(); expect(duration).toBeLessThan(10000); } catch (error) { console.error("Error during custom field creation:", error.message); expect(error).toBeUndefined(); } }), 20000); test('Performance Test 4: Send document for signing', () => __awaiter(void 0, void 0, void 0, function* () { const signer = new model_1.DocumentSigner(); signer.name = 'Test Signer'; signer.emailAddress = 'mohammedmushraf.abuthakir+6@syncfusion.com'; signer.signerOrder = 1; signer.signerType = model_1.DocumentSigner.SignerTypeEnum.Signer; signer.authenticationType = model_1.DocumentSigner.AuthenticationTypeEnum.AccessCode; signer.authenticationCode = '123456'; signer.authenticationSettings = { authenticationFrequency: model_1.AuthenticationSettings.AuthenticationFrequencyEnum.EveryAccess }; const formField = new model_1.FormField(); formField.name = 'Sign'; formField.fieldType = model_1.FormField.FieldTypeEnum.Signature; formField.font = model_1.FormField.FontEnum.Helvetica; formField.pageNumber = 1; formField.isRequired = true; formField.bounds = new model_1.Rectangle(); signer.formFields = [formField]; signer.privateMessage = 'This is a private message for signer'; const sendRequest = new model_1.SendForSign(); sendRequest.title = 'Document SDK API'; sendRequest.files = [fs.createReadStream('tests/documents/agreement.pdf')]; sendRequest.enablePrintAndSign = true; sendRequest.signers = [signer]; sendRequest.message = 'Please sign this document'; const start = perf_hooks_1.performance.now(); try { const response = yield documentApi.sendDocument(sendRequest); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Document sending took ${duration.toFixed(10)} ms`); createdDocumentId = response.documentId; expect(createdDocumentId).toBeDefined(); expect(duration).toBeLessThan(10000); } catch (error) { console.error("Error during document sending:", error); expect(error).toBeUndefined(); } }), 20000); test('Performance Test 5: Create a template', () => __awaiter(void 0, void 0, void 0, function* () { const signatureField = new model_1.FormField(); signatureField.fieldType = model_1.FormField.FieldTypeEnum.Signature; signatureField.pageNumber = 1; const bounds = new model_1.Rectangle(); bounds.x = 50; bounds.y = 100; bounds.width = 150; bounds.height = 50; signatureField.bounds = bounds; const role = new model_1.TemplateRole(); role.index = 1; role.name = "Signer"; role.defaultSignerName = "John Doe"; role.defaultSignerEmail = "johndoe@example.com"; role.signerOrder = 1; role.signerType = model_1.TemplateRole.SignerTypeEnum.Signer; role.formFields = [signatureField]; const createTemplateRequest = new model_1.CreateTemplateRequest(); createTemplateRequest.title = "Testing node sdk"; createTemplateRequest.description = "Testing integration test case"; createTemplateRequest.documentTitle = "Node sdk test case"; createTemplateRequest.documentMessage = "Please check and sign"; createTemplateRequest.roles = [role]; createTemplateRequest.enableReassign = true; createTemplateRequest.enableSigningOrder = true; createTemplateRequest.allowNewRoles = true; createTemplateRequest.allowMessageEditing = true; createTemplateRequest.allowNewFiles = true; createTemplateRequest.files = [fs.createReadStream("tests/documents/agreement.pdf")]; const start = perf_hooks_1.performance.now(); try { const response = yield templateApi.createTemplate(createTemplateRequest); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Template creation took ${duration.toFixed(10)} ms`); createdTemplateId = response.templateId; expect(createdTemplateId).toBeDefined(); expect(duration).toBeLessThan(10000); } catch (error) { console.error("Error during template creation:", error.message); expect(error).toBeUndefined(); } }), 20000); test('Performanc Test 6: should send document for signing using template', () => __awaiter(void 0, void 0, void 0, function* () { const start = perf_hooks_1.performance.now(); const formField = new model_1.FormField(); formField.fieldType = model_1.FormField.FieldTypeEnum.Signature; formField.pageNumber = 1; const bounds = new model_1.Rectangle(); bounds.x = 100; bounds.y = 50; bounds.width = 100; bounds.height = 100; formField.bounds = bounds; const role = new model_1.Role(); role.roleIndex = 50; role.signerName = "Divya"; role.signerEmail = "divya.boopathy+20@syncfusion.com"; role.signerOrder = 1; role.enableEmailOTP = false; role.signerType = model_1.Role.SignerTypeEnum.Signer; role.authenticationType = model_1.Role.AuthenticationTypeEnum.AccessCode; role.authenticationCode = '123456'; role.authenticationSettings = { authenticationFrequency: model_1.AuthenticationSettings.AuthenticationFrequencyEnum.EveryAccess }; role.signerRole = "Manager"; role.privateMessage = "Please check and sign the document"; role.formFields = [formField]; const sendForSignFromTemplate = new model_1.SendForSignFromTemplateForm(); const files = fs.createReadStream("tests/documents/agreement.pdf"); sendForSignFromTemplate.files = [files]; sendForSignFromTemplate.title = "Invitation form"; sendForSignFromTemplate.message = "Kindly review and sign this."; sendForSignFromTemplate.roles = [role]; sendForSignFromTemplate.disableEmails = false; sendForSignFromTemplate.disableSMS = false; sendForSignFromTemplate.hideDocumentId = true; sendForSignFromTemplate.labels = ["Invitation", "Form", "Test"]; const reminderSettings = new model_1.ReminderSettings(); reminderSettings.reminderDays = 3; reminderSettings.reminderCount = 5; reminderSettings.enableAutoReminder = false; sendForSignFromTemplate.reminderSettings = reminderSettings; sendForSignFromTemplate.expiryValue = 60; sendForSignFromTemplate.disableExpiryAlert = true; sendForSignFromTemplate.enablePrintAndSign = true; sendForSignFromTemplate.enableReassign = true; sendForSignFromTemplate.enableSigningOrder = true; try { const response = yield templateApi.sendUsingTemplate(createdTemplateId, sendForSignFromTemplate); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Send document from template took ${duration.toFixed(10)} ms`); expect(duration).toBeLessThan(10000); console.log("Document sent for signing using template successfully:", response); expect(response).toBeDefined(); } catch (error) { console.error("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Performance Test 7: should create sender identity successfully', () => __awaiter(void 0, void 0, void 0, function* () { const start = perf_hooks_1.performance.now(); const createSenderIdentityRequest = new model_1.CreateSenderIdentityRequest(); createSenderIdentityRequest.name = "SenderIdentity API"; createSenderIdentityRequest.email = emailId; createSenderIdentityRequest.redirectUrl = "https://boldsign.com"; try { const response = yield senderIdentitiesApi.createSenderIdentities(createSenderIdentityRequest); console.log("Sender Identity created successfully:", response); createdSenderIdentityId = response; console.log("Created Sender Identity ID:", createdSenderIdentityId); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Sender Identity creation took ${duration.toFixed(10)} ms`); expect(duration).toBeLessThan(10000); expect(response).toBeDefined(); } catch (error) { console.log("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Performance test 8: should create team successfully', () => __awaiter(void 0, void 0, void 0, function* () { const start = perf_hooks_1.performance.now(); const createTeamRequest = new model_1.CreateTeamRequest(); createTeamRequest.teamName = teamName; try { const createTeamResponse = yield teamsApi.createTeam(createTeamRequest); console.log('Team created successfully:', createTeamResponse); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`Teams creation took ${duration.toFixed(10)} ms`); expect(duration).toBeLessThan(10000); expect(createTeamResponse).toBeDefined(); } catch (error) { console.error('Error occurred while creating team:', error.message); expect(error.message).toBeUndefined(); } }), 20000); test('Performance test 9:should create user successfully', () => __awaiter(void 0, void 0, void 0, function* () { const start = perf_hooks_1.performance.now(); const createUserRequest = new model_1.CreateUser(); createUserRequest.emailId = emailId; createUserRequest.userRole = model_1.CreateUser.UserRoleEnum.Member; try { const response = yield userApi.createUser([createUserRequest]); console.log("User created successfully:", response); console.log("Created User ID:", createdUserId); const end = perf_hooks_1.performance.now(); const duration = end - start; console.log(`User creation took ${duration.toFixed(10)} ms`); expect(duration).toBeLessThan(10000); expect(response).toBeDefined(); } catch (error) { console.error("Error occurred while calling the API:", error.message); expect(error.message).toBeUndefined(); } }), 20000); }); //# sourceMappingURL=performanceApiTest.spec.js.map